面試說本身平時在 Linux 系統進行開發,瞭解一些 Linux 經常使用命令,而後就開始問,可是不會問經常使用的一些簡單命令,都是結合應用場景來進行提問。並且基本上是和進程管理結合的。抽時間進行一個全面的總結面試
主要就是若是你使用 Linux 操做系統,那麼服務器若是是個很忙碌的系統,你確定要知道如何定位最耗資源的那個進程,而後可以將其殺死;此外,若是某個程序產生了一個有問題的進程在內存中,你又該如何找出並將其刪除;若是有五六項工做在系統中運行,但其中有一項工做纔是最重要的,你怎麼定位並使其優先執行?bash
指將某個時間點的進程運行狀況選取下來服務器
ps -ef |grep ^ 列出須要進程
ps -aux 顯示進程信息,包括無終端的(x)和針對用戶(u)的進程
-e 顯示全部進程。
-f 全格式。
-a 顯示終端上的全部進程,包括其餘用戶的進程。
-r 只顯示正在運行的進程。
-u 以用戶爲主的格式來顯示程序情況。
-h 不顯示標題。
-l 長格式。
-w 寬輸出。
複製代碼
leader@leader:~$ ps aux | egrep '(cron|syslog)'
複製代碼
範例一: 列出目前系統上全部進程樹的相關性ui
leader@leader:/tmp$ pstree -A
複製代碼
範例二:同時顯示 PID 和 usersspa
leader@leader:/tmp$ pstree -Aup
複製代碼
動態查看進程的變化
範例一:每兩秒更新依次 top,查看總體信息操作系統
leader@leader:~$ top -d 2
複製代碼
範例二:將 top 的信息進行 2 次,而後將結果寫入到 /tmp/top.txtcode
leader@leader:~$ top -b -n 2 > /tmp/top.txt
複製代碼
htop 與 top 相似,可是 htop 是交互式的文本模式的進程查看器。它經過文字圖形化地顯示每個進程的 CPU 和內存使用量、swap 使用量。 使用上下光標鍵選擇進程,F7 和 F8 改變優先級,F9 殺死進程進程
用於設置和改變進程的優先級。(提升一個進程的優先級,內核會分配更多CPU時間片給這個進程。) 默認狀況下,進程以 0 的優先級啓動。進程優先級能夠經過top命令顯示的 NI(nice value)列查看。內存
進程優先級值的範圍從-20到19。值越低,優先級越高。 (sudo)nice <優先值> <進程名> 經過給定的優先值啓動一個程序資源
renice命令能夠改變正在運行的進程優先值,用戶只能改變屬於他們本身的進程的優先值。
renice -n 4 -p 3806 改變指定進程的優先值
//初始優先值爲0的3806號進程優先值已經變成了 4 .
sudo renice -3 -u/-g mint 經過指定用戶和組來改變進程優先值
//用戶爲 mint 的全部進程優先值變爲 -3。
複製代碼
強制殺死進程,使用-9參數。
若是不知道進程PID(進程 ID 號)或者打算用名字殺死進程時候,使用 killall。
kill <pid>
kill -9 <pid>
killall -9    殺死全部擁有一樣名字的進程
若是你使用kill,你須要知道進程ID號。pkill是相似的命令,但使用模式匹配,如進程名,進程擁有者等。
複製代碼
使用‘bg’命令能夠將任務放在後臺執行,而用‘fg’能夠調到前臺來使用。
咱們能夠經過‘&’在後臺啓動一個程序:
find .-name *iso >/tmp/res.txt &
正在運行的程序,能夠經過「CTRL+Z」和「bg」命令組合放到後臺運行。
可使用‘jobs’命令列出全部後臺進程。
使用‘fg’命令能夠將後臺程序調到前臺執行。
fg %進程id
複製代碼