大家好,提前祝大家新年快樂, 祝各位約妹成功!!哈哈哈,因本人打算回東北老家了,過年會很忙,估計這是年前的最後一章(PS:家裡沒電腦,自己還懶的揹回去),年後回來肯定會立馬更新。
首先本章介紹linux中進程和程序以及計劃任務的使用和實踐,都是我在學習和工作中總結的一些使用的小知識點,用好了可以幫助大家快速識別一些問題,就不多說了大家開始看文章吧,可以關注我前面有8章也是寫的linux的基礎操作,本次linux基礎介紹,大概20幾章節,大家有興趣的可以看看。
程序與進程的關係
程序
保存在硬盤、光盤等介質中的可執行代碼和數據
靜態保存的代碼
進程
在cpu及內存中運行的程序代碼
動態執行的代碼
父、子進程 每個進程可以創建一個或多個進程
ps命令
用途:查看靜態的進程統計信息
格式1:ps aux a=所有進程 u=顯示用戶相關信息 x=詳細信息
格式2:ps -elf e=所有進程 l=詳細 f=完整
ps -elf
top命令 詳解 可查找 配置服務--top詳解
用途:查看動態進程的排名信息
pgrep命令
用途:根據特定條件查詢進程PID信息
-l 顯示進程名稱
-U 指定特定用戶
-t 指定終端 F1-F6 一共六個終端
pgrep -U wln wln在其他終端登錄
pstree命令
用途:以樹形結構列出進程信息
-a 顯示完整信息 -u 列出對應用戶名 -p 列出隊形pid號
進程的啟動方式
前臺啟動:用戶輸入命令,直接執行程序
後臺啟動:在命令行尾加入"&"符號
調度啟動
使用at命令,設置一次性計劃任務
crontab命令,設置週期性計劃任務
進程的前後臺調度
ctrl+z 將進程掛起,即調入後臺並停止執行
jobs 命令
查看處於後臺的任務列表
fg命令
將後臺的命令調度到前臺,可指定任務的序號 序號 例 [1] fg 1
kill、killall命令
kill用於終止指定pid號的進程
killall用於終止指定名稱的所有進程
-9 表示強制結束
killall vim
另一個shell環境打開vim的情況下 強制結束
pkill
用途:根據特定條件終止相應進程
常用命令選項
-U:跟腱炎進程所屬的用戶名終止相應進程
-t:根據進程所在的終端終止相應
另一端的lx用戶掉了
at命令
一次性計劃任務
服務腳本名稱:/etc/init.d/atd
設置格式: at [HH:MM] [yyyy-mm-dd]
ctrl +d 提交任務
atq 查看未執行的任務列表
atrm 7 刪除任務7
crontab
用途:按照預先設置的時間週期重複執行用戶指令的命令操作
管理計劃任務
crontab -e [-u 用戶名] 編輯計劃任務
crontab -l [-u 用戶名] 查看計劃任務
crontab -r [-u 用戶名] 刪除計劃任務
root可以管理指定用戶的計劃任務,普通用戶只能管理自己的計劃任務
crontab的任務配置格式
基本格式 :
* * * * * command
分 時 日 月 周 命令
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重啟apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重啟apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每週六、週日的1 : 10重啟apache。
時間數值的特殊表示方式
* 表示該範圍內的任意時間 0 17 * * 1-5 週一到週五每天17:00
, 表示間隔的多個不連續的點 30 8 * * 1,3,5 ,,,,每週一 三 五的8點30
- 表示一個連續的時間範圍 0 8-18/2 * * * 8點到18點每兩小時
/ 指定間隔的時間頻率 0 * */3 * * ,每三天