作爲一名軟件工程師,必須要熟知常用的linux命令。
1. 查看cpu信息
less /proc/cpuinfo
查看cpu的核數
less /proc/cpuinfo |grep 'model name' -c
2. 查看內存
free –m
-m :表示單位是MB
其它方式
less /proc/meminfo
3. 幫助命令man 。命令的詳細使用說明
man top
4. vmstat
Virtual Memory Statistics,統計進程、內存、io、cpu等的活動信息
對於多CPU系統,vmstat打印的是所有CPU的平均輸出
vmstat 2
每2秒輸出一次字段解釋:
Procs(進程):
r: 運行隊列中進程數量
b: 等待IO的進程數量
Memory(內存):
swpd: 使用虛擬內存大小
free: 可用內存大小
buff: 用作緩衝的內存大小
cache: 用作緩存的內存大小
Swap:
si: 每秒從交換區寫到內存的大小
so: 每秒寫入交換區的內存大小
IO:(現在的Linux版本塊的大小爲1024bytes)
bi: 每秒讀取的塊數
bo: 每秒寫入的塊數
系統:
in: 每秒中斷數,包括時鐘中斷。
cs: 每秒上下文切換數。
CPU(以百分比表示):
us: 用戶進程執行時間(user time)
sy: 系統進程執行時間(system time)
id: 空閒時間(包括IO等待時間)
wa: 等待IO時間
5. iostat
iostat是I/O statistics(輸入/輸出統計)的縮寫,主要的功能是對系統的磁盤I/O操作進行監視。它的輸出主要顯示磁盤讀寫操作的統計信息,同時也會給出CPU使用情況。同vmstat一樣,iostat也不能對某個進程進行深入分析,僅對系統的整體情況進行分析。
6. top命令
第一行:當前時間:系統已運行時間:751天,目前4個用戶,1、5、15分鐘內的load分別是0.07、0.02 、0.00
第二行:進程情況:總共148個,正在運行的有2個,休眠有139個,殭屍進程1個
第三行:cpu的使用情況(按數字1顯示所有cpu)
第四行:內存情況
第5行:虛擬內存情況
然後:進程id,虛擬內存,駐留內存使用,cpu,內存使用百分比,運行時間,命令參數等。
VIRT表示進程可以使用的內存總大小, 包括這個進程真實使用的內存, 映射過的文件, 和別的進程共享的內存等。 RES表示這個進程真實佔用內存的大小。 SHR表示可以和別的進程共享的內存和庫大小.
ps:
h: 顯示幫助
c:顯示詳細的命令參數
M:按照佔用內存大小(%MEM 列)對進程排序;
P:按照 CPU 使用率( %CPU 列)對進程排序;
u:顯示指定用戶的進程。默認顯示所有進程;
T:根據累計運行時間排序
如果要查看具體某一個進程下的線程資源佔用情況:
top -p 進程id -H
7. lsof
可以列出當前系統與文件的關係
lsof sys.log
查看sys.log文件被哪個進程打開
lsof -i:端口號 查看端口被哪個進程佔用
8. df
磁盤的使用情況
9. du
當前目錄下的最葉子目錄的大小
du -sch *
當前目錄下的各目錄的大小
10. find
文件查找
find . -name sys.log
當前目錄下查找sys.log文件find . -size +20M
查找當前目錄下大小超過20M的文件find . -size +20M |xargs ls -lh
find -type f -printf '%s %p\n' |sort -nr | head
查找佔用空間最大的10個文件
通配符的使用
11. 小技巧
Ctrl+a 回到命令的行首
Ctrl+e 回到命令的行尾
cat -n 結果按行號輸出
[yang@vm-cbu-qa-172-43 ~]$ jps |cat -n
1 31704 start.jar
2 30771 Jps
3 24964 MailSendMain
暫時先記錄這麼多