什麼是進程:
一個程序被加載到內存中運行,那麼在內存中的那個數據就被稱為進程,所有系統上面跑的數據都以進程的類型存在。在linux系統中,觸發任何一個事件,系統都會定義為一個進程,並且給予這個進程一個ID,稱為PID,同時觸發這個進程的用戶與相關屬性關系,給予這個PID一組有效的權限設置。
舉個常見的例子:登陸操作系統時,通常是利用連接進程或者直接在主機登陸,然後取得shell,在/bin/bash,也就是每個人登陸都是執行/bin/bash,不過每個人取得的權限不同。也就是說黨我們登陸並執行bash時,系統以及給了我們一個PID,這個PID是根據登陸人的UID/GID來的,我們都知道/bin/bash是一個程序,當這個進程進行其他工作時,比如touch命令等,那麼由這個程序衍生出的其他進程在一般情況下,也會沿用這個進程的相關權限。也就是bash是父進程,其他命令是子進程。
工作管理(job control):
這個工作管理是用在bash環境下的,也就是當我們登陸系統取得bash shell之後,在單一終端機下同時進行多個工作的行為管理。
假設只有一個終端,因此在可以出現提示符讓你操作的環境成為前台(foreground),至於其他工作可以放入後台(background)去暫停或者運行,要注意的是,放入後台的工作想要運行,。必須不能夠與用戶互動,且放入後台的工作是不能用ctrl+c來終止的。
工作管理的命令:
直接講命令丟到後台中執行的 & 這樣的好處是不怕被ctrl+c中斷
將目前的工作丟到後台中暫停 ctrl-z 如果正在使用vi,需要到bash環境下進行查找,此時沒必要結束vi,只要暫停vi丟到後台中等待即可。、
查看目前的後台工作狀態 jobs
將後台工作拿到前台處理:fg
讓後台的工作由暫停變為運行中 bg
管理後台當中的工作:kill