Linux乾貨分享-高效率的高級常用命令

今天來給大家分享兩個高效率的組合命令,一個是du和sort結合,查找指定分區或路徑下耗用空間容量的目錄排序;另外一個是ps、egrep、grep、awk、xargs的結合,一步到位查找關鍵字進行並進行批量處理。

上面說的兩個組合高效命令並不是單獨的一個個命令解析,那樣非常沒意思,我說的是這些命令的組合使用,從而達到我們所需要的某個目的。

Linux乾貨分享-高效率的高級常用命令

組合高效

1、指定分區或者路徑下目錄容量大小的排序

有時候我們發現某個分區突然爆滿了,這個時候我們就要查看下到底是哪個目錄耗用的空間多了,是不是合理的。如果這個時候,你的分區下目錄很多,你一個個目錄使用du -sh去查的話,會非常耗時。下面來介紹一個一步到位就能給你排序出某個分區下目錄大小的排序。

# du --max-depth=2 /home/ | sort -n -r

Linux乾貨分享-高效率的高級常用命令

命令執行結果

--max-depth=2 意思是統計到二級目錄

sort -n -r 按照數字-逆序排序

這樣的話,從上到下,就是目錄大小排序,這個時候就可以先查看佔據空間最大的目錄裡面的文件是否是重要文件。

當然如果你的目錄級別很多,--max-depth 參數你也可以設置成3或者4,這樣就可以一步到位直接查到最終耗用空間最多的目錄是哪個,便於你快速對爆滿的分區進行空間處理。

2、批量對執行關鍵字進程查找進程號並執行kill或者重啟操作

相信這個功能還是會偶爾用到的,有時候一些服務器上可能運行著很多的php或者gttp進程亦或者是java進程,這些主進程假死的時候,子進程可能還在,這個時候要不就執行pkill,但是會對這天機器上所有的http、php亦或者是java生效,這樣的結果並不是我們想要的,所以這個時候我們要精準定位進程,只處理某些關鍵字進程就行。

那麼下面就來介紹下怎麼一步到位處理執行關鍵字進行的方法:

# ps -ef | egrep 'mingetty|httpd' | grep -v grep | awk '{print $2}' |xargs kill

上述這個命令就是最終的命令。

我們可以分解這個命令,可以先執行:

# ps -ef | egrep 'mingetty|httpd' | grep -v grep

這個命令可以看得出是根據關鍵字mingetty或httpd查找出相應的進程

Linux乾貨分享-高效率的高級常用命令

命令執行結果

再對最終命令進行分解:

# ps -ef | egrep 'mingetty|httpd' | grep -v grep | awk '{print $2}'

這樣就可以取出相應進程的進程號。

egrep是標誌支持正則表達式;grep -v grep 是過濾grep進程本身; awk '{print $2}'是對得到的結果進行切割,只取第二列,也就是進程號所在的列;xargs kill就是利用正則對取出的進程號進行kill的操作。

後話


分享到:


相關文章: