許多程序員熟悉Windows開發(fā),我們的服務(wù)器通常是Linux系統(tǒng)。 如果有一天我必須配置Linux服務(wù)器或?qū)ζ溥M行故障排除,我會感到困惑,并且不知道從哪里開始。 原因是我不知道Linux中使用的命令。 今天,我將為您提供一些常見的Linux命令。 一旦掌握了它們的用法,就可以大大提高工作效率。
01top命令
第一個命令就是top,這個命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進程的資源占用情況,有點類似Windows下的任務(wù)管理器。
最上面每一行都表示一種性能數(shù)據(jù):
top:這一行是匯總信息,09:26:48是系統(tǒng)時間;up 169 days表示運行時間;1 user 表示當(dāng)前登錄用戶數(shù);load average 是負(fù)載情況,后面的三個數(shù)字分別表示1分鐘、5分鐘、15分鐘的負(fù)載情況load average 的數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進程數(shù),然后計算出結(jié)果。Tasks任務(wù):total表示總進程數(shù);running表示運行中的進程;sleeping表示休眠的進程;stopped 表示停止的進程;zombie 表示僵尸進程CPU狀態(tài):us是用戶空間占用CPU的百分比;sy是內(nèi)核空間占用CPU的百分比;ni是改變過優(yōu)先級的進程占用CPU的百分比;id是 空閑CPU百分比;wa是IO等待占用CPU的百分比;hi是硬中斷占用CPU的百分比;si是軟中斷占用CPU的百分比。Mem內(nèi)存:total是內(nèi)存總量;used是使用掉的內(nèi)存;free是空閑的內(nèi)存;buffers是緩存的內(nèi)存量Swap交換分區(qū):total、used、free跟內(nèi)存一樣;cached是緩沖的交換區(qū)總量下面的列表是各個進程的狀態(tài)監(jiān)控,具體每一項含義如下:
PID — 進程idUSER — 進程所有者PR — 進程優(yōu)先級NI — nice值。負(fù)值表示高優(yōu)先級,正值表示低優(yōu)先級VIRT — 進程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RESRES — 進程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATASHR — 共享內(nèi)存大小,單位kbS —進程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進程%CPU — 上次更新到現(xiàn)在的CPU時間占用百分比%MEM — 進程使用的物理內(nèi)存百分比TIME+ — 進程使用的CPU時間總計,單位1/100秒COMMAND — 進程名稱(命令名/命令行)
02ps命令
第二個命令是ps,常用的命令是ps aux或ps -ef,主要作用是查看進程,經(jīng)常和grep配合使用。這個命令的主要使用場景是查看進程狀態(tài)或者查找進程號。使用例子如下:
ps aux | grep 'nginx' 或者 ps -ef | grep 'nginx'
03grep命令
這個命令主要用于是在指定文件或文件夾中查找字符串,最常用的場景是跟ps、cat、tail等命令一起使用。例子如下:
tail -f app.log | grep 'register'
04netstat命令
這是一個與網(wǎng)絡(luò)相關(guān)的命令,我用這個命令最主要的是查找端口,例如:
netstat -lntup | grep 80
除此之外,netstat還有很多其他功能,感興趣的可以自己搜索。
05find命令
find命令用來在指定目錄下查找文件,比如在服務(wù)器上\home\www目錄查找app.c這個文件,就可以這樣來查:find /home -name "*.c"
06kill命令
kill命令是用于殺進程的命令,比如要殺掉進程號為2198的進程,則命令是:kill 2198。也可以使用kill -9 2198來徹底啥事進程。
07tail命令
我們經(jīng)常使用tail命令來監(jiān)控實時日志,有時候也會配合grep一起使用:
tail -f app.log | grep login
這個命令是實時地查看當(dāng)前目錄下app.log日志中帶有l(wèi)ogin標(biāo)識符的輸入流。
08cat命令
cat命令經(jīng)常用于查看文件,有時候會配合grep一起使用,用法如下:
cat app.log | grep 'login' | more
這個命令先打開當(dāng)前目錄下的app.log日志文件,然后通過grep查詢帶有l(wèi)ogin的日志,最后用more來分頁顯示。
如果想實現(xiàn)倒序顯示,可以使用tac命令,跟cat相同作用,用法如下:
tac app.log | grep 'login' | more