找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 6105|回复: 0

Linux Shell常用技巧(八)

[复制链接]
发表于 2012-4-21 10:20:22 | 显示全部楼层 |阅读模式
  1. 十八.  和系统运行状况相关的Shell命令:
  2.     1.  Linux的实时监测命令(watch):
  3.     watch 是一个非常实用的命令,可以帮你实时监测一个命令的运行结果,省得一遍又一遍的手动运行。该命令最为常用的两个选项是-d和-n,其中-n表示间隔多少秒执行一次"command",-d表示高亮发生变化的位置。下面列举几个在watch中常用的实时监视命令:
  4.     /> watch -d -n 1 'who'   #每隔一秒执行一次who命令,以监视服务器当前用户登录的状况
  5.     Every 1.0s: who       Sat Nov 12 12:37:18 2011
  6.    
  7.     stephen  tty1           2011-11-11 17:38 (:0)
  8.     stephen  pts/0         2011-11-11 17:39 (:0.0)
  9.     root       pts/1         2011-11-12 10:01 (192.168.149.1)
  10.     root       pts/2         2011-11-12 11:41 (192.168.149.1)
  11.     root       pts/3         2011-11-12 12:11 (192.168.149.1)
  12.     stephen  pts/4         2011-11-12 12:22 (:0.0)
  13.     此时通过其他Linux客户端工具以root的身份登录当前Linux服务器,再观察watch命令的运行变化。
  14.     Every 1.0s: who       Sat Nov 12 12:41:09 2011
  15.    
  16.     stephen  tty1          2011-11-11 17:38 (:0)
  17.     stephen  pts/0        2011-11-11 17:39 (:0.0)
  18.     root       pts/1        2011-11-12 10:01 (192.168.149.1)
  19.     root       pts/2        2011-11-12 11:41 (192.168.149.1)
  20.     root       pts/3        2011-11-12 12:40 (192.168.149.1)
  21.     stephen  pts/4        2011-11-12 12:22 (:0.0)
  22.     root       pts/5        2011-11-12 12:41 (192.168.149.1)
  23.     最后一行中被高亮的用户为新登录的root用户。此时按CTRL + C可以退出正在执行的watch监控进程。
  24.    
  25.     #watch可以同时运行多个命令,命令间用分号分隔。
  26.     #以下命令监控磁盘的使用状况,以及当前目录下文件的变化状况,包括文件的新增、删除和文件修改日期的更新等。
  27.     /> watch -d -n 1 'df -h; ls -l'
  28.     Every 1.0s: df -h; ls -l     Sat Nov 12 12:55:00 2011
  29.    
  30.     Filesystem            Size  Used Avail Use% Mounted on
  31.     /dev/sda1             5.8G  3.3G  2.2G  61% /
  32.     tmpfs                 504M  420K  504M   1% /dev/shm
  33.     total 20
  34.     -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2
  35.     -rw-r--r--. 1 root root   183 Nov 11 08:02 users
  36.     -rw-r--r--. 1 root root   279 Nov 11 08:45 users2
  37.     此时通过另一个Linux控制台窗口,在watch监视的目录下,如/home/stephen/test,执行下面的命令
  38.     /> touch aa         #在执行该命令之后,另一个执行watch命令的控制台将有如下变化
  39.     Every 1.0s: df -h; ls -l                                Sat Nov 12 12:57:08 2011
  40.    
  41.     Filesystem            Size  Used Avail Use% Mounted on
  42.     /dev/sda1             5.8G  3.3G  2.2G  61% /
  43.     tmpfs                 504M  420K  504M   1% /dev/shm
  44.     total 20
  45.     -rw-r--r--. 1 root root        0 Nov 12 12:56 aa
  46.     -rw-r--r--. 1 root root        0 Nov 12 10:02 datafile3
  47.     -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2
  48.     -rw-r--r--. 1 root root     183 Nov 11 08:02 users
  49.     -rw-r--r--. 1 root root     279 Nov 11 08:45 users2
  50.     其中黄色高亮的部分,为touch aa命令执行之后watch输出的高亮变化部分。
  51.    
  52.     2.  查看当前系统内存使用状况(free):
  53.     free命令有以下几个常用选项:
  54. 选项        说明
  55. -b        以字节为单位显示数据。
  56. -k        以千字节(KB)为单位显示数据(缺省值)。
  57. -m        以兆(MB)为单位显示数据。
  58. -s delay        该选项将使free持续不断的刷新,每次刷新之间的间隔为delay指定的秒数,如果含有小数点,将精确到毫秒,如0.5为500毫秒,1为一秒。
  59.     free命令输出的表格中包含以下几列:
  60. 列名        说明
  61. total        总计物理内存的大小。
  62. used        已使用的内存数量。
  63. free        可用的内存数量。
  64. Shared        多个进程共享的内存总额。
  65. Buffers/cached        磁盘缓存的大小。
  66.     见以下具体示例和输出说明:
  67.     /> free -k
  68.                         total         used          free     shared    buffers     cached
  69.     Mem:       1031320     671776     359544          0      88796     352564
  70.     -/+ buffers/cache:      230416     800904
  71.     Swap:        204792              0     204792
  72.     对于free命令的输出,我们只需关注红色高亮的输出行和绿色高亮的输出行,见如下具体解释:
  73.     红色输出行:该行使从操作系统的角度来看待输出数据的,used(671776)表示内核(Kernel)+Applications+buffers+cached。free(359544)表示系统还有多少内存可供使用。
  74.     绿色输出行:该行则是从应用程序的角度来看输出数据的。其free = 操作系统used + buffers + cached,既:
  75.     800904 = 359544 + 88796 + 352564
  76.     /> free -m
  77.                       total        used        free      shared    buffers     cached
  78.     Mem:          1007         656        351            0         86            344
  79.     -/+ buffers/cache:        225        782
  80.     Swap:          199             0        199
  81.     /> free -k -s 1.5  #以千字节(KB)为单位显示数据,同时每隔1.5刷新输出一次,直到按CTRL+C退出
  82.                       total        used       free     shared    buffers     cached
  83.     Mem:          1007         655        351          0           86        344
  84.     -/+ buffers/cache:        224        782
  85.     Swap:          199             0        199
  86.                       total        used       free     shared    buffers     cached
  87.     Mem:          1007         655        351          0           86        344
  88.     -/+ buffers/cache:        224        782
  89.     Swap:          199             0        199
  90.     3.  CPU的实时监控工具(mpstat):
  91.     该命令主要用于报告当前系统中所有CPU的实时运行状况。
  92.     #该命令将每隔2秒输出一次CPU的当前运行状况信息,一共输出5次,如果没有第二个数字参数,mpstat将每隔两秒执行一次,直到按CTRL+C退出。
  93.     /> mpstat 2 5  
  94.     Linux 2.6.32-71.el6.i686 (Stephen-PC)   11/12/2011      _i686_  (1 CPU)
  95.     04:03:00 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
  96.     04:03:02 PM  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00   99.50
  97.     04:03:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
  98.     04:03:06 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
  99.     04:03:08 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
  100.     04:03:10 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
  101.     Average:       all    0.00    0.00    0.10    0.00    0.00    0.00    0.00    0.00   99.90
  102.     第一行的末尾给出了当前系统中CPU的数量。后面的表格中则输出了系统当前CPU的使用状况,以下为每列的含义:
  103. 列名        说明
  104. %user        在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程  (usr/total)*100
  105. %nice        在internal时间段里,nice值为负进程的CPU时间(%)   (nice/total)*100
  106. %sys        在internal时间段里,内核时间(%)       (system/total)*100
  107. %iowait        在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
  108. %irq        在internal时间段里,硬中断时间(%)     (irq/total)*100
  109. %soft        在internal时间段里,软中断时间(%)     (softirq/total)*100
  110. %idle        在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100
  111.     计算公式:
  112.     total_cur=user+system+nice+idle+iowait+irq+softirq
  113.     total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq
  114.     user=user_cur – user_pre
  115.     total=total_cur-total_pre
  116.     其中_cur 表示当前值,_pre表示interval时间前的值。上表中的所有值可取到两位小数点。   
  117.     /> mpstat -P ALL 2 3  #-P ALL表示打印所有CPU的数据,这里也可以打印指定编号的CPU数据,如-P 0(CPU的编号是0开始的)
  118.     Linux 2.6.32-71.el6.i686 (Stephen-PC)   11/12/2011      _i686_  (1 CPU)
  119.     04:12:54 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
  120.     04:12:56 PM    all      0.00      0.00     0.50    0.00      0.00    0.00    0.00      0.00     99.50
  121.     04:12:56 PM      0     0.00      0.00     0.50    0.00      0.00    0.00    0.00      0.00     99.50
  122.     04:12:56 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
  123.     04:12:58 PM    all     0.00      0.00     0.00    0.00      0.00    0.00    0.00      0.00    100.00
  124.     04:12:58 PM     0     0.00      0.00     0.00    0.00      0.00    0.00    0.00      0.00    100.00
  125.     04:12:58 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
  126.     04:13:00 PM    all      0.00     0.00    0.00    0.00      0.00    0.00     0.00      0.00    100.00
  127.     04:13:00 PM     0      0.00     0.00    0.00    0.00      0.00    0.00     0.00      0.00    100.00
  128.     Average:       CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
  129.     Average:         all      0.00     0.00    0.17    0.00      0.00    0.00     0.00      0.00     99.83
  130.     Average:          0      0.00     0.00    0.17    0.00      0.00    0.00     0.00      0.00     99.83
  131.     4.  虚拟内存的实时监控工具(vmstat):
  132.     vmstat命令用来获得UNIX系统有关进程、虚存、页面交换空间及CPU活动的信息。这些信息反映了系统的负载情况。vmstat首次运行时显示自系统启动开始的各项统计信息,之后运行vmstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
  133.     /> vmstat 1 3    #这是vmstat最为常用的方式,其含义为每隔1秒输出一条,一共输出3条后程序退出。
  134.     procs  -----------memory----------   ---swap-- -----io---- --system-- -----cpu-----
  135.      r  b   swpd      free      buff   cache   si   so     bi    bo     in   cs  us  sy id  wa st
  136.      0  0        0 531760  67284 231212  108  0     0  260   111  148  1   5 86   8  0
  137.      0  0        0 531752  67284 231212    0    0     0     0     33   57   0   1 99   0  0
  138.      0  0        0 531752  67284 231212    0    0     0     0     40   73   0   0 100 0  0
  139.     /> vmstat 1       #其含义为每隔1秒输出一条,直到按CTRL+C后退出。
  140.     下面将给出输出表格中每一列的含义说明:
  141.     有关进程的信息有:(procs)
  142.     r:  在就绪状态等待的进程数。
  143.     b: 在等待状态等待的进程数。   
  144.     有关内存的信息有:(memory)
  145.     swpd:  正在使用的swap大小,单位为KB。
  146.     free:    空闲的内存空间。
  147.     buff:    已使用的buff大小,对块设备的读写进行缓冲。
  148.     cache: 已使用的cache大小,文件系统的cache。
  149.     有关页面交换空间的信息有:(swap)
  150.     si:  交换内存使用,由磁盘调入内存。
  151.     so: 交换内存使用,由内存调入磁盘。  
  152.     有关IO块设备的信息有:(io)
  153.     bi:  从块设备读入的数据总量(读磁盘) (KB/s)
  154.     bo: 写入到块设备的数据总理(写磁盘) (KB/s)   
  155.     有关故障的信息有:(system)
  156.     in: 在指定时间内的每秒中断次数。
  157.     sy: 在指定时间内每秒系统调用次数。
  158.     cs: 在指定时间内每秒上下文切换的次数。   
  159.     有关CPU的信息有:(cpu)
  160.     us:  在指定时间间隔内CPU在用户态的利用率。
  161.     sy:  在指定时间间隔内CPU在核心态的利用率。
  162.     id:  在指定时间间隔内CPU空闲时间比。
  163.     wa: 在指定时间间隔内CPU因为等待I/O而空闲的时间比。   
  164.     vmstat 可以用来确定一个系统的工作是受限于CPU还是受限于内存:如果CPU的sy和us值相加的百分比接近100%,或者运行队列(r)中等待的进程数总是不等于0,且经常大于4,同时id也经常小于40,则该系统受限于CPU;如果bi、bo的值总是不等于0,则该系统受限于内存。
  165.     5.  设备IO负载的实时监控工具(iostat):
  166.     iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
  167.     其中该命令中最为常用的使用方式如下:
  168.     /> iostat -d 1 3    #仅显示设备的IO负载,其中每隔1秒刷新并输出结果一次,输出3次后iostat退出。
  169.     Linux 2.6.32-71.el6.i686 (Stephen-PC)   11/16/2011      _i686_  (1 CPU)
  170.     Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
  171.     sda                 5.35       258.39        26.19     538210      54560
  172.     Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
  173.     sda                 0.00         0.00         0.00                  0          0
  174.     Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
  175.     sda                 0.00         0.00         0.00                  0          0
  176.     Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
  177.     sda                 0.00         0.00         0.00                  0          0
  178.     /> iostat -d 1  #和上面的命令一样,也是每隔1秒刷新并输出一次,但是该命令将一直输出,直到按CTRL+C退出。
  179.     下面将给出输出表格中每列的含义:
  180. 列名        说明
  181. Blk_read/s        每秒块(扇区)读取的数量。
  182. Blk_wrtn/s        每秒块(扇区)写入的数量。
  183. Blk_read        总共块(扇区)读取的数量。
  184. Blk_wrtn        总共块(扇区)写入的数量。
  185.     iostat还有一个比较常用的选项-x,该选项将用于显示和io相关的扩展数据。
  186.     /> iostat -dx 1 3
  187.     Device:  rrqm/s wrqm/s  r/s   w/s  rsec/s wsec/s avgrq-sz avgqu-sz   await  svctm  %util
  188.     sda            5.27   1.31 2.82 1.14 189.49  19.50    52.75     0.53     133.04  10.74   4.26
  189.     Device:  rrqm/s wrqm/s  r/s   w/s  rsec/s wsec/s avgrq-sz avgqu-sz   await  svctm  %util
  190.     sda            0.00   0.00 0.00 0.00   0.00   0.00        0.00     0.00         0.00   0.00   0.00
  191.     Device:  rrqm/s wrqm/s  r/s   w/s  rsec/s wsec/s avgrq-sz avgqu-sz   await  svctm  %util
  192.     sda            0.00   0.00 0.00 0.00   0.00   0.00        0.00     0.00         0.00   0.00   0.00
  193.     还可以在命令行参数中指定要监控的设备名,如:
  194.     /> iostat -dx sda 1 3   #指定监控的设备名称为sda,该命令的输出结果和上面命令完全相同。
  195.     下面给出扩展选项输出的表格中每列的含义:
  196. 列名        说明
  197. rrqm/s        队列中每秒钟合并的读请求数量
  198. wrqm/s        队列中每秒钟合并的写请求数量
  199. r/s        每秒钟完成的读请求数量
  200. w/s        每秒钟完成的写请求数量
  201. rsec/s        每秒钟读取的扇区数量
  202. wsec/s        每秒钟写入的扇区数量
  203. avgrq-sz        平均请求扇区的大小
  204. avgqu-sz        平均请求队列的长度
  205. await        平均每次请求的等待时间
  206. util        设备的利用率
  207.     下面是关键列的解释:
  208.     util是设备的利用率。如果它接近100%,通常说明设备能力趋于饱和。
  209.     await是平均每次请求的等待时间。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
  210.     avgqu-sz是平均请求队列的长度。毫无疑问,队列长度越短越好。                 
  211.      6.  当前运行进程的实时监控工具(pidstat):
  212.      pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
  213.     在正常的使用,通常都是通过在命令行选项中指定待监控的pid,之后在通过其他具体的参数来监控与该pid相关系统资源信息。
  214. 选项        说明
  215. -l        显示该进程和CPU相关的信息(command列中可以显示命令的完整路径名和命令的参数)。
  216. -d        显示该进程和设备IO相关的信息。
  217. -r        显示该进程和内存相关的信息。
  218. -w        显示该进程和任务时间片切换相关的信息。
  219. -t        显示在该进程内正在运行的线程相关的信息。
  220. -p        后面紧跟着带监控的进程id或ALL(表示所有进程),如不指定该选项,将监控当前系统正在运行的所有进程。
  221.     #监控pid为1(init)的进程的CPU资源使用情况,其中每隔3秒刷新并输出一次,3次后程序退出。
  222.     /> pidstat -p 1 2 3 -l
  223.     07:18:58 AM       PID    %usr %system  %guest    %CPU   CPU  Command
  224.     07:18:59 AM         1    0.00    0.00    0.00    0.00     0  /sbin/init
  225.     07:19:00 AM         1    0.00    0.00    0.00    0.00     0  /sbin/init
  226.     07:19:01 AM         1    0.00    0.00    0.00    0.00     0  /sbin/init
  227.     Average:               1    0.00    0.00    0.00    0.00     -  /sbin/init
  228.     %usr:      该进程在用户态的CPU使用率。
  229.     %system:该进程在内核态(系统级)的CPU使用率。
  230.     %CPU:     该进程的总CPU使用率,如果在SMP环境下,该值将除以CPU的数量,以表示每CPU的数据。
  231.     CPU:         该进程所依附的CPU编号(0表示第一个CPU)。
  232.     #监控pid为1(init)的进程的设备IO资源负载情况,其中每隔2秒刷新并输出一次,3次后程序退出。
  233.     /> pidstat -p 1 2 3 -d   
  234.     07:24:49 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
  235.     07:24:51 AM         1      0.00      0.00      0.00  init
  236.     07:24:53 AM         1      0.00      0.00      0.00  init
  237.     07:24:55 AM         1      0.00      0.00      0.00  init
  238.     Average:               1      0.00      0.00      0.00  init
  239.     kB_rd/s:   该进程每秒的字节读取数量(KB)。
  240.     kB_wr/s:   该进程每秒的字节写出数量(KB)。
  241.     kB_ccwr/s: 该进程每秒取消磁盘写入的数量(KB)。
  242.     #监控pid为1(init)的进程的内存使用情况,其中每隔2秒刷新并输出一次,3次后程序退出。
  243.     /> pidstat -p 1 2 3 -r
  244.     07:29:56 AM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
  245.     07:29:58 AM         1      0.00      0.00    2828   1368   0.13  init
  246.     07:30:00 AM         1      0.00      0.00    2828   1368   0.13  init
  247.     07:30:02 AM         1      0.00      0.00    2828   1368   0.13  init
  248.     Average:               1      0.00      0.00    2828   1368   0.13  init
  249.     %MEM:  该进程的内存使用百分比。
  250.     #监控pid为1(init)的进程任务切换情况,其中每隔2秒刷新并输出一次,3次后程序退出。
  251.     /> pidstat -p 1 2 3 -w
  252.     07:32:15 AM       PID   cswch/s nvcswch/s  Command
  253.     07:32:17 AM         1      0.00      0.00  init
  254.     07:32:19 AM         1      0.00      0.00  init
  255.     07:32:21 AM         1      0.00      0.00  init
  256.     Average:            1      0.00      0.00  init
  257.     cswch/s:    每秒任务主动(自愿的)切换上下文的次数。主动切换是指当某一任务处于阻塞等待时,将主动让出自己的CPU资源。
  258.     nvcswch/s: 每秒任务被动(不自愿的)切换上下文的次数。被动切换是指CPU分配给某一任务的时间片已经用完,因此将强迫该进程让出CPU的执行权。
  259.     #监控pid为1(init)的进程及其内部线程的内存(r选项)使用情况,其中每隔2秒刷新并输出一次,3次后程序退出。需要说明的是,如果-t选项后面不加任何其他选项,缺省监控的为CPU资源。结果中黄色高亮的部分表示进程和其内部线程是树状结构的显示方式。
  260.     /> pidstat -p 1 2 3 -tr
  261.     Linux 2.6.32-71.el6.i686 (Stephen-PC)   11/16/2011      _i686_  (1 CPU)
  262.     07:37:04 AM      TGID       TID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
  263.     07:37:06 AM         1         -      0.00      0.00        2828   1368      0.13  init
  264.     07:37:06 AM         -         1      0.00      0.00        2828   1368      0.13  |__init
  265.     07:37:06 AM      TGID       TID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
  266.     07:37:08 AM         1         -      0.00      0.00        2828   1368      0.13  init
  267.     07:37:08 AM         -         1      0.00      0.00        2828   1368      0.13  |__init
  268.     07:37:08 AM      TGID       TID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
  269.     07:37:10 AM         1         -      0.00      0.00        2828   1368      0.13  init
  270.     07:37:10 AM         -         1      0.00      0.00        2828   1368      0.13  |__init
  271.     Average:         TGID       TID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
  272.     Average:            1         -      0.00      0.00        2828   1368      0.13  init
  273.     Average:            -         1      0.00      0.00        2828   1368      0.13  |__init
  274.     TGID: 线程组ID。
  275.     TID: 线程ID。  
  276.     以上监控不同资源的选项可以同时存在,这样就将在一次输出中输出多种资源的使用情况,如:pidstat -p 1 -dr。
  277.     7.  报告磁盘空间使用状况(df):
  278.     该命令最为常用的选项就是-h,该选项将智能的输出数据单位,以便使输出的结果更具可读性。
  279.     /> df -h
  280.     Filesystem             Size  Used   Avail Use% Mounted on
  281.     /dev/sda1             5.8G  3.3G  2.2G  61%   /
  282.     tmpfs                  504M  260K  504M   1%  /dev/shm
  283.     8.  评估磁盘的使用状况(du):
  284. 选项        说明
  285. -a        包括了所有的文件,而不只是目录。
  286. -b        以字节为计算单位。
  287. -k        以千字节(KB)为计算单位。
  288. -m        以兆字节(MB)为计算单位。
  289. -h        是输出的信息更易于阅读。
  290. -s        只显示工作目录所占总空间。
  291. --exclude=PATTERN        排除掉符合样式的文件,Pattern就是普通的Shell样式,?表示任何一个字符,*表示任意多个字符。
  292. --max-depth=N        从当前目录算起,目录深度大于N的子目录将不被计算,该选项不能和s选项同时存在。
  293.     #仅显示子一级目录的信息。
  294.     /> du --max-depth=1 -h
  295.     246M    ./stephen
  296.     246M    .   
  297.     /> du -sh ./*   #获取当前目录下所有子目录所占用的磁盘空间大小。
  298.     352K    ./MemcachedTest
  299.     132K    ./Test
  300.     33M     ./thirdparty   
  301.     #在当前目录下,排除目录名模式为Te*的子目录(./Test),输出其他子目录占用的磁盘空间大小。
  302.     /> du --exclude=Te* -sh ./*  
  303.     352K    ./MemcachedTest
  304.     33M     ./thirdparty
复制代码
来自:http://www.cnblogs.com/stephen-l ... /12/05/2257887.html

目录:
Linux Shell常用技巧(一)
http://www.acejoy.com/thread-4312-1-1.html
一. 特殊文件: /dev/null和/dev/tty
二. 简单的命令跟踪
三. 正则表达式基本语法描述
四. 使用cut命令选定字段
五. 计算行数、字数以及字符数
六. 提取开头或结尾数行

Linux Shell常用技巧(二)
http://www.acejoy.com/thread-4313-1-1.html
七. grep家族

Linux Shell常用技巧(三)
http://www.acejoy.com/thread-4314-1-1.html
八. 流编辑器sed

Linux Shell常用技巧(四)
http://www.acejoy.com/thread-4315-1-1.html
九. awk实用功能
十. awk表达式功能

Linux Shell常用技巧(五)
http://www.acejoy.com/thread-4316-1-1.html
十一.awk编程

Linux Shell常用技巧(六)
http://www.acejoy.com/thread-4317-1-1.html
十二.行的排序命令sort
十三.删除重复行的命令uniq
十四.文件压缩解压命令tar
十五.大文件拆分命令split

Linux Shell常用技巧(七)
http://www.acejoy.com/thread-4318-1-1.html
十六.文件查找命令find
十七.xargs命令

Linux Shell常用技巧(八)
http://www.acejoy.com/thread-4319-1-1.html
十八.和系统运行状况相关的Shell命令

Linux Shell常用技巧(九)
http://www.acejoy.com/thread-4320-1-1.html
十九.和系统运行进程相关的Shell命令

Linux Shell常用技巧(十)
http://www.acejoy.com/thread-4321-1-1.html
二十.通过管道组合Shell命令获取系统运行数据
二十一.通过管道组合Shell命令进行系统管理

Linux Shell常用技巧(十一)
http://www.acejoy.com/thread-4322-1-1.html
二十二.交互式使用Bash Shell

Linux Shell常用技巧(十二)
http://www.acejoy.com/thread-4323-1-1.html
二十三.Bash Shell编程



您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 10:20 , Processed in 0.020773 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表