從鳥哥的私房菜書里摘抄的部分,方便查閱
一、作業管理
1、直接將命令放到后台執行的&
如想將/etc 備份為/tmp/ect.tar.gz時不想等待,可以這樣做:
tar -zpcf /tmp/etc.tar.gz /etc &
[1] 24874 <==[job number] PID
在命令的最后面加個& 表示將該命令放到后台,此時bash會給這個命令一個作業號 job number就是[1] 24874是PID;如果之后會突然出現[1] Done 表示這個作業完成了;
將作業放到后台要注意數據的流向,如出現stdout stderr的情況時會輸出到屏幕上導致看不到,可以改成:
tar -zpcf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 & 這樣信息就會保存到log.txt里
2、將當前作業放到后台暫停[ctrl] -z
例如:如果我在使用vi發現有個文件不知道放在哪里,需要到bash環境搜索,不要結束vi
vi ~/.bashrc #在vi模式下,按下[ctrl]-z組合鍵
出現[1]+ Stopped /usr/bin/vim ~/.bashrc
+表示當前在后台下默認的作業
3、觀察當前后台作業狀態:jobs
jobs [-lrs]
-l 除了列出作業號之外,同時列出PID
-r 僅列出正在后台運行的作業
-s 僅列出正在后台暫停的作業
4、將后台作業拿到前台處理:fg
二、進程管理
1、進程的觀察
1)ps
ps -l :將當前屬於自己登陸的PID與相關信息展示,參數說明見下圖:
ps aux :列出當前所有正在內存中的進程
ps -lA : 顯示出所有的進程
ps -axjf 列出類似進程樹的進程顯示
結果參數說明:
F:進程的標志flag
S :進程的狀態stat;-R正在運行/可運行;-S:睡眠中idle狀態但可被某些信號喚醒;-T正在檢測或停止;-Z:終止僵屍
C :CPU使用的資源百分比
ADDR:核心功能,指出進程在內存的哪一部分,-表示允許的進程
SZ:用掉的內存大小
WCHAN:當前進程是否正在運行,-表示正在運行
TTY:登錄者的終端位置
TIME:用掉的CPU時間
CMD:所執行的命令
2)top [-d] [-bnp]
每2s更新一次:top -d 2
只觀察一個進程 top -d 2 -p10660
結果參數說明:
PR:priority的簡寫,進程的優先執行順序,越小越早執行
NI:nice的簡寫,,與priority有關,也是越小越早執行
TIME+:CPU的使用時間累加
2)進程刪除
kill PID
如下例子是:找出syslog服務的PID
刪除某個服務:使用killall [-iIe] [command name]
2、系統資源的觀察
1)free 顯示當前系統的內存容量
2)uname : 輸出系統的基本信息[-asrmpi]
3) uptime:顯示當前系統已開機時間,以及1 5 15分鍾的平均負載
4)netstat :
-a :當前系統上所有的聯機、監聽、套接字數據都列出來
-t tcp網絡包的數據
-u udp 網絡包數據
-n 以端口號顯示
-l 當前正在網絡監聽的服務
-p 列出該網絡服務的進程PID
netstat -tulnp :找出當前系統上已在監聽的網絡聯機及其PID
5)dmesg : cpu 的形式 硬盤 光盤型號
3、進程的執行順序
Linux系統中每個進程都會擁有一個Priority,該屬性讓CPU判斷哪個作業比較重要;
nice -n -5 vi & :給一個nice值為-5用於執行vi
renice 10 18852 :給已存在的18852的進程10的nice值
