系統管理經常使用shell命令

1,輸出當前系統中佔用內存最多的5條命令:
#1) 經過ps命令列出當前主機正在運行的全部進程。
#2) 按照第五個字段基於數值的形式進行正常排序(由小到大)。
#3) 僅顯示最後5條輸出。
/> ps aux | sort -k 5n | tail -5

2, 找出cpu利用率高的10個進程:
#1) 經過ps命令輸出全部進程的數據,-o選項後面的字段列表列出告終果中須要包含的數據列。
#2) 將ps輸出的Title行去掉,grep -v PID表示不包含PID的行。
#3) 基於第一個域字段排序,即pcpu。n表示以數值的形式排序。
#4) 輸出按cpu使用率排序後的最後10行,即佔用率最高的10行。
/> ps -e -o pcpu,pid,user,sgi_p,cmd | grep -v PID | sort -k 1n | tail -10

3,獲取當前系統物理內存的總大小:
#1) 以兆(MB)爲單位輸出系統當前的內存使用情況。
#2) 經過grep定位到Mem行,該行是以操做系統爲視角統計數據的。
#3) 經過awk打印出該行的第二列,即total列。
/> free -m | grep "Mem" | awk '{print $2, "MB"}'

4,獲取當前或指定目錄下子目錄所佔用的磁盤空間,並將結果按照從大到小的順序輸出:
#1) 輸出/usr的子目錄所佔用的磁盤空間。
#2) 以數值的方式倒排後輸出。
/> du -s /usr/* | sort -nr

5,統計當前目錄下文件和目錄的數量:
#1) ls -l命令列出文件和目錄的詳細信息。
#2) ls -l輸出的詳細列表中的第一個域字段是文件或目錄的權限屬性部分,若是權限屬性部分的第一個字符爲d,
# 該文件爲目錄,若是是-,該文件爲普通文件。
#3) 經過wc計算grep過濾後的行數。
/> ls -l | grep "^-" | wc -l
/> ls -l | grep "^d" | wc -l

6,殺掉指定終端的全部進程:
#1) 經過ps命令輸出終端爲pts/1的全部進程。
#2) 將ps的輸出傳給grep,grep將過濾掉ps輸出的Title部分,-v PID表示不包含PID的行。
#3) awk打印輸出grep查找結果的第一個字段,即pid字段。
#4) 上面的三個組合命令是在反引號內被執行的,並將執行的結果賦值給數組變量${K}。
#5) kill方法將殺掉數組${K}包含的pid。
/> kill -9 ${K}=`ps -t pts/1 | grep -v PID | awk '{print $1}'`


7,將查找到的文件打包並copy到指定目錄:
#1) 經過find找到當前目錄下(包含全部子目錄)的全部*.txt文件。
#2) tar命令將find找到的結果壓縮成test.tar壓縮包文件。
#3) 若是&&左側括號內的命令正常完成,則能夠執行&&右側的shell命令了。
#4) 將生成後的test.tar文件copy到/home/.目錄下。
/> (find . -name "*.txt" | xargs tar -cvf test.tar) && cp -f test.tar /home/.
相關文章
相關標籤/搜索