Linux常用的一些命令

Linux常用的一些命令

cd : 切换目录

cd /  切换到根目录
cd ~  切换到home目录
cd ../切换到父目录

ls 或 ll : 显示当前目录下的文件以及目录

ls  显示当前目录下的文件以及目录的简略信息
ll 显示当前目录下的文件以及目录的详细信息

pwd : 查看当前目录的绝对路径信息

 

df 可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。

du 可以查看文件及文件夹的大小。

df -h  : 查看内存以及磁盘使用情况
# 如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。
#这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=
du -sh :系统只显示当前文件夹所占用的总空间
du -h --max-depth=1 / 
du -h --max-depth=1 /* 

 

ps 查看进程

 ps命令查找与进程相关的PID号:
    ps a 显示现行终端机下的所有程序,包括其他用户的程序。
    ps -A 显示所有程序。
    ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
    ps -e 此参数的效果和指定"A"参数相同。
    ps e 列出程序时,显示每个程序所使用的环境变量。
    ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
    ps -H 显示树状结构,表示程序间的相互关系。
    ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
    ps s 采用程序信号的格式显示程序状况。
    ps S 列出程序时,包括已中断的子程序资料。
    ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
    ps u 以用户为主的格式来显示程序状况。
    ps x 显示所有程序,不以终端机来区分。
   
    最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
    ps aux | grep program_filter_word,ps -ef |grep tomcat

ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。

结果:

[root@cetc102 ~]# ps
  PID TTY          TIME CMD
 7535 pts/1    00:00:00 bash
 7843 pts/1    00:00:00 ps

[root@cetc102 ~]# ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.1 193848  6964 ?        Ss   10:30   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    10:30   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    10:30   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   10:30   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    10:30   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    10:30   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    10:30   0:00 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<   10:30   0:00 [lru-add-drain]

[root@cetc102 ~]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 10:30 ?        00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2     0  0 10:30 ?        00:00:00 [kthreadd]
root         3     2  0 10:30 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 10:30 ?        00:00:00 [kworker/0:0H]
root         7     2  0 10:30 ?        00:00:00 [migration/0]
root         8     2  0 10:30 ?        00:00:00 [rcu_bh]
root         9     2  0 10:30 ?        00:00:00 [rcu_sched]
root        10     2  0 10:30 ?        00:00:00 [lru-add-drain]

 

kill : 结束进程命令

使用kill命令结束进程:kill pid   

常用:kill9 pid ,是强制结束进程  ,其中pid是进程号

Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME

 

查看端口占用情况

CentOS下可以用netstat或者lsof查看,Windows下也可以用netstat查看,不过参数会不同

Linux:
netstat -nap #会列出所有正在使用的端口及关联的进程/应用
lsof -i :portnumber #portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用

一、检查端口被哪个进程占用
netstat -lnp|grep 88   #80为端口号
netstat -nap|grep :22 #22为端口号 二、查看进程的详细信息
ps 1777 #1777为pid 三、杀掉进程 kill -9 1777 #杀掉编号为1777的进程(请根据实际情况输入) Windows系统: netstat -nao #会列出端口关联的的进程号,可以通过任务管理器查看是哪个任务 最后一列为程序PID,再通过tasklist命令:tasklist | findstr 2724 再通过任务管理结束掉这个程序就可以了

netstat -nap  查看进程端口占用情况,结果如下所示

[root@cetc102 ~]# netstat -nap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      5476/X              
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      5447/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4995/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      4994/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      5516/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      7523/sshd: root@pts 
tcp        0     52 192.168.3.147:22        192.168.3.78:50737      ESTABLISHED 7523/sshd: root@pts 
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::6000                 :::*                    LISTEN      5476/X              
tcp6       0      0 :::22                   :::*                    LISTEN      4995/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      4994/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      5516/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      7523/sshd: root@pts 
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           4383/avahi-daemon:  
udp        0      0 0.0.0.0:55007           0.0.0.0:*                           4383/avahi-daemon:  
udp        0      0 192.168.122.1:53        0.0.0.0:*                           5447/dnsmasq        
udp        0      0 0.0.0.0:67              0.0.0.0:*                           5447/dnsmasq        
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd           
udp        0      0 0.0.0.0:723             0.0.0.0:*                           4365/rpcbind        
udp6       0      0 :::111                  :::*                                1/systemd           
udp6       0      0 :::723                  :::*                                4365/rpcbind        
raw6       0      0 :::58                   :::*                    7           4483/NetworkManager 
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path
unix  3      [ ]         DGRAM                    10499    1/systemd            /run/systemd/notify
unix  2      [ ]         DGRAM                    10501    1/systemd            /run/systemd/cgroups-agent
unix  2      [ ACC ]     STREAM     LISTENING     19465    1/systemd            /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     44510    5993/gnome-session-  @/tmp/.ICE-unix/5993
unix  2      [ ACC ]     STREAM     LISTENING     43793    6183/ssh-agent       /tmp/ssh-aaJZT5QqWRLP/agent.5993
unix  2      [ ACC ]     STREAM     LISTENING     10510    1/systemd            /run/systemd/journal/stdout
unix  5      [ ]         DGRAM                    10513    1/systemd            /run/systemd/journal/socket

 

查看端口是否放开:telnet、nc(netcat)

telnet只能测试TCP
telnet SERVER_IP port
example:
telnet localhost 80

nc测试TCP:
nc -z SERVER_IP port
example:
nc -z 192.192.193.211 22

nc测试UDP
nc -uz SERVER_IP port
example:
nc -uz 192.192.193.211 22

 

查看进程、内存、CPU占用情况:

1.命令行输入top回车,然后按下大写M按照memory排序,按下大写P按照CPU排序。
[root@cetc102 ~]# top
top - 11:23:47 up 53 min,  3 users,  load average: 0.01, 0.03, 0.05
Tasks: 245 total,   1 running, 244 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.2 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3762336 total,   912940 free,   903752 used,  1945644 buff/cache
KiB Swap:  3932156 total,  3932156 free,        0 used.  2326104 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                            
 7430 cetc      20   0  759136  38708  24312 S   1.0  1.0   0:41.21 gnome-system-mo                                                                                    
 8151 root      20   0  162140   2404   1584 R   0.7  0.1   0:00.36 top                                                                                                
    9 root      20   0       0      0      0 S   0.3  0.0   0:01.28 rcu_sched                                                                                          
    1 root      20   0  193848   6964   4208 S   0.0  0.2   0:02.09 systemd                                                                                            
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                                                           
    3 root      20   0       0      0      0 S   0.0  0.0   0:00.04 ksoftirqd/0                                                                                        
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                                       
    7 root      rt   0       0      0      0 S   0.0  0.0   0:00.01 migration/0                                                                                        
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                             
   10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain                                                                                      


2. ps -ef | grep "进程名"
    ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 进程名
例如:
# ps -ef | grep mongodb | grep -v grep
root     18512     1  8 Feb28 ?        11:25:23 mongod -f mongodb.conf
# ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 18512 | grep -v grep
18512 mongod          mongod -f mongodb.conf       8.0 6243952 7924496 Feb28 root      0
 备注: 
pid:进程的ID
vsz:进程占用的虚拟内存
rsz:进程占用的物理内存

[root@cetc102 ~]# ps -ef | grep sleep | grep -v grep
root      8194  4470  0 11:26 ?        00:00:00 sleep 60

3. top -d 1 -p pid
例如:
# top -d 1 -p 18512
top - 13:18:41 up 9 days, 19:53,  3 users,  load average: 0.00, 0.00, 0.00
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  0.3%sy,  0.0%ni, 99.2%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   8191244k total,  7929432k used,   261812k free,   122160k buffers
Swap: 20479996k total,    16232k used, 20463764k free,  1316248k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                       
18512 root      20   0 7738m 6.0g 5472 S  1.0 76.3 685:26.98 mongodb     

4. pmap -x pid
例如:
# pmap -x 18512
18512:   mongod -f mongodb.conf
Address           Kbytes     RSS   Dirty Mode   Mapping
0000192c8d4c8000  655360       0       0 -----    [ anon ]
00007f9228ae4000       4       0       0 -----    [ anon ]

pmap -d pid

5.可以使用以下命令查使用内存最多的K个进程
方法1:ps -aux | sort -k4nr | head -K 
如果是10个进程,K=10,如果是最高的三个,K=3 
说明:ps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)

sort -k4nr中(k代表从第几个位置开始,后面的数字4即是其开始位置,结束位置如果没有,则默认到最后;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。
head -K(K指代行数,即输出前几位的结果)
|为管道符号,将查询出的结果导到下面的命令中进行下一步的操作。

  方法2-0:top (然后按下M,注意大写)

  方法2-1:top (然后按下m,注意小写) 

 

6. 可以使用下面命令查使用CPU最多的K个进程  

  方法1:ps -aux | sort -k3nr | head -K 

  方法2:top (然后按下P,注意大写)

查看内存使用情况:free -m

查看cpu使用情况: top看进程运行情况

查看磁盘以及分区情况: df -

查看网络情况: ifconfig

查看端口使用情况

    #1.方法一
    lsof -i:端口号

    #2.方法二
    netstat -apn|grep 端口号

服务器排查以及优化:

清理内存:
#1.【推荐】释放网页缓存(To free pagecache),
sync
echo 1 > /proc/sys/vm/drop_caches

#2.释放目录项和索引(To free dentries and inodes)
sync
echo 2 > /proc/sys/vm/drop_caches
#3.释放网页缓存,目录项和索引(To free pagecache, dentries and inodes):
sync
echo 3 > /proc/sys/vm/drop_caches

查看网络使用情况:

 

posted @ 2019-07-29 11:35  秦时明月0515  阅读(366)  评论(0编辑  收藏  举报