linux常用分析命令

经常使用linux,总少不了需要对系统分析的时候,比如查看系统资源是使用,查看硬盘分区使用量等情况。

1. free命令(显示内存使用情况,加-h更直观显示内容)

brisk@lan:~$ free -h
                     total       used       free     shared    buffers     cached
Mem:          999M       234M       764M       6.1M        16M       115M
-/+ buffers/cache:       103M       896M
Swap:         1.0G         0B       1.0G
2. vmstat命令(查看虚拟内存使用情况)

brisk@lan:~$ vmstat 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b    wpd     free     buff    cache   si   so     bi    bo   in   cs   us  sy id  wa  st
 0  0      0    769068  16524 131428  0   0     173   6    45 142  1    2  97  1    0

r : 运行和等待 CPU 时间片的进程数。若该值大于系统 CPU 个数,则说明 CPU 不足
b : 表示等待资源的进程数
swpd : 切换到内存交换区的内存大小(单位 KB)
free: 空闲的物理内存的大小,我的机器内存总共2G,剩余92M。
buff: Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存
cache:直接用来记忆我们打开的文件,给文件做缓冲,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用
si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so:每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
bi:块设备每秒接收的块数量(读磁盘)(kb/s)
bo:块设备每秒发送的块数量(写磁盘)(kb/s)
in:每秒CPU的中断次数,包括时间中断
cs:每秒上下文切换次数。
us:用户进程消耗 CPU 时间百分比
sy:内核进程消耗 CPU 时间百分比,sy 的值较高时,则说明内核消耗的 CPU 资源很多
id:空闲 CPU 时间百分比
wt:IO 等待 CPU 时间百分比

3. uptime命令(统计当前系统运行情况)

brisk@lan:~$ uptime
 06:15:36 up 19 min,  1 user,  load average: 0.00, 0.00, 0.05

4. netstat命令(查看当前网络信息)

brisk@lan:~$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 192.168.128.128:ssh     192.168.128.1:62731     ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  4      [ ]         DGRAM                    9318     /dev/log
unix  2      [ ]         DGRAM                    11068    
unix  3      [ ]         DGRAM                    9108     
unix  3      [ ]         STREAM     CONNECTED     9301     
unix  3      [ ]         STREAM     CONNECTED     11111    /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     9302     /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     11110    
unix  3      [ ]         STREAM     CONNECTED     9544     @/com/ubuntu/upstart
unix  3      [ ]         STREAM     CONNECTED     9268     /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     9092     
unix  3      [ ]         STREAM     CONNECTED     9248     
unix  3      [ ]         DGRAM                    9109     
unix  3      [ ]         STREAM     CONNECTED     9267     
unix  3      [ ]         STREAM     CONNECTED     11102    
unix  3      [ ]         STREAM     CONNECTED     9251     
unix  3      [ ]         STREAM     CONNECTED     9100     @/com/ubuntu/upstart
unix  3      [ ]         STREAM     CONNECTED     9249     
unix  3      [ ]         STREAM     CONNECTED     9534     
unix  3      [ ]         STREAM     CONNECTED     9273     @/com/ubuntu/upstart
unix  2      [ ]         DGRAM                    9400     
unix  3      [ ]         STREAM     CONNECTED     11103    

-a (all)显示所有选项,默认不显示LISTEN相关 (默认急速-a

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
5. top命令(很常用的资源信息显示命令,不过我现在更喜欢用htop代替top
brisk@lan:~$ top
Tasks: 172 total,   1 running, 171 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  3.0 sy,  0.0 ni, 86.6 id,  9.4 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem:   1023792 total,   287184 used,   736608 free,    32108 buffers
KiB Swap:  1046524 total,        0 used,  1046524 free.   139208 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                 
    7 root      20   0       0      0      0 S  0.3  0.0   0:00.86 rcu_sched               
  969 mysql     20   0  327720  48072   9600 S  0.3  4.7   0:03.27 mysqld                  
    1 root      20   0    4344   3512   2580 S  0.0  0.3   0:05.37 init                    
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kthreadd                
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.09 ksoftirqd/0             
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H            
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                  
    9 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0             
   10 root      rt   0       0      0      0 S  0.0  0.0   0:00.03 watchdog/0              
   11 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs               
   12 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                   
   13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 perf                    
   14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd              
   15 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback 
以上是参考文章http://mp.weixin.qq.com/s/N0pvvUMs9MPQGRBhlPyPBg 的,说得蛮详细的,下面是我补充的内容:

6. htop命令(比top更好操作的命令,非系统自带)


7. df命令 (查看每个磁盘分区目录情况,加-h更直观)

brisk@lan:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            490M  4.0K  490M   1% /dev
tmpfs           100M  952K  100M   1% /run
/dev/sda1        19G  1.6G   17G   9% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            500M     0  500M   0% /run/shm
none            100M     0  100M   0% /run/user

8.  ps命令(查看系统进程)

brisk@lan:~$ ps au
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       852  0.0  0.1   4656  1820 tty4     Ss+  05:56   0:00 /sbin/getty -8 38400 tty4
root       854  0.0  0.1   4656  1880 tty5     Ss+  05:56   0:00 /sbin/getty -8 38400 tty5
root       857  0.0  0.1   4656  1968 tty2     Ss+  05:56   0:00 /sbin/getty -8 38400 tty2
root       858  0.0  0.1   4656  1936 tty3     Ss+  05:56   0:00 /sbin/getty -8 38400 tty3
root       861  0.0  0.1   4656  1828 tty6     Ss+  05:56   0:00 /sbin/getty -8 38400 tty6
root      1126  0.0  0.1   4656  1812 tty1     Ss+  05:57   0:00 /sbin/getty -8 38400 tty1
brisk     1231  0.0  0.5   7400  5280 pts/1    Ss   05:57   0:00 -bash
brisk     1501  0.0  0.2   5128  2492 pts/1    T    06:31   0:00 htop
brisk     1603  0.0  0.2   5228  2372 pts/1    R+   06:42   0:00 ps au

哈哈,我用的最多还是htop命令。

评论/留言