揭秘Linux后臺作業(yè)都知道的一些知識
Linux的基礎(chǔ)操作,旨在讓讀者對Linux有個初步的認識。Linux經(jīng)過發(fā)展,這里解說Linux后臺了,這里我發(fā)表一下個人理解,和大家討論討論。從操作系統(tǒng)的角度來講,作業(yè)是計算機系統(tǒng)中運行的一項用戶任務(wù)。在unix/linux系統(tǒng)中作業(yè)可以定義為:在命令行中輸入的一個或一組命令。
由于linux是一個真正的多用戶多任務(wù)的操作系統(tǒng),所以可以同時運行多個任務(wù),但是在前臺啟動一個作業(yè)時,標準輸入和標準輸出都被鎖定,它們被當前作業(yè)所獨占,直至該作業(yè)結(jié)束。為此,linux定義了兩種類型的作業(yè):前臺作業(yè)和Linux后臺作業(yè)。
前臺作業(yè)
我們一般在終端執(zhí)行的程序都是前臺作業(yè),在它運行過程中無法啟動其他作業(yè),啟動前臺作業(yè)也相當簡單,輸入命令然后回車。
◆掛起一個前臺作業(yè)為了掛起一個前臺作業(yè),只需按下Ctrl+z。這個在我們處于全屏編輯模式下很有用,可以掛起編輯作業(yè),完成其他任務(wù)。這樣回到終端后,我們執(zhí)行jobs -l就可以查看被掛起的作業(yè)的相關(guān)信息。
◆恢復(fù)一個被掛起的作業(yè)恢復(fù)一個掛起的作業(yè),只需在終端執(zhí)行前臺命令fg。
◆終止一個前臺作業(yè)終止一個前臺作業(yè),只需按下Ctrl+c,作業(yè)終止后,鍵入回車激活命令行提示符。
Linux后臺作業(yè)
當一個作業(yè)需要占用較長時間的時候也許我們需要Linux后臺運行該命令以完成其他的任務(wù)。
◆啟動一個Linux后臺作業(yè)啟動一個Linux后臺作業(yè),只需在命令的后面加上符號&。特別注意,如果該作業(yè)有參數(shù),則&號緊跟在***一個參數(shù)之后。命令結(jié)尾與&之間不留空格。需要注意的是,前臺作業(yè)和Linux后臺作業(yè)是共享鍵盤,顯示器等資源的,Linux后臺作業(yè)和前臺作業(yè)為了分的CPU時間片是要競爭競爭,所以Linux后臺作業(yè)發(fā)送給顯示器的任何消息因此將與來自當前作業(yè)的消息混在一起,這可能很快變的很混亂。一個Linux后臺作業(yè)要請求用戶輸入必須將之移到前臺。強烈建議Linux后臺作業(yè)的輸入和輸出必須重定向,***將終端輸出重定向文件或者null設(shè)備。你可以試試不帶參數(shù)的Linux后臺ping命令,例如ping localhost&,呵呵,等著閃屏吧!
◆掛起,重啟,終止Linux后臺作業(yè)為了掛起一個Linux后臺作業(yè)用stop命令,重啟用bg命令,終止用kill命令。三種命令都需要一個%號大頭的作業(yè)號,作業(yè)號可以用jobs查看
◆作業(yè)前Linux后臺狀態(tài)切換一個被掛起的作業(yè)可以在前臺和Linux后臺狀態(tài)間切換。一旦作業(yè)被掛起,就可以使用bg命令將作業(yè)起到Linux后臺執(zhí)行。移動一個Linux后臺任務(wù)到前臺自然用fg命令了。
◆多Linux后臺作業(yè)當多個Linux后臺作業(yè)運行時,需要用到作業(yè)號,用以標示想要處理的作業(yè)。
作業(yè)隊列
使用jobs [-l]命令可以查看當前作業(yè)及其狀態(tài)。每個作業(yè)有相應(yīng)的作業(yè)號,當前值,運行狀態(tài)。
◆當前值作業(yè)列表中的+號,-號稱為當前值標志。+號說明改作業(yè)位當前默認作業(yè),-號說明當前默認作業(yè)完成后將替代當前默認作業(yè)。這里=,-號倒是有點進程優(yōu)先級的味道了。當一個作業(yè)被掛起就地動稱為默認的當前值標志,如果多個作業(yè)被掛起則按照掛起的順序一次賦予相應(yīng)的標識值,***掛起的為加號,較早的為減號,按優(yōu)先級理解起來很容易明白。
◆使用作業(yè)號前面提到的幾個命令都可以加上作業(yè)號參數(shù)。作業(yè)號有%號開頭,并與命令之間有一空格隔開。默認作業(yè)號可表示位:%+,或者%%,包含減號當前值的作業(yè)可用%-表示。例如結(jié)束當前默認作業(yè):kill %%或者kill %+。
◆作業(yè)狀態(tài)生命周期一個作業(yè)可能處于三種狀態(tài)之一:前臺,Linux后臺,掛起。當一個作業(yè)啟動,它在前臺運行,在運行期間作業(yè)可以被掛起,終止它,或者運行直至自動結(jié)束掉。掛起的作業(yè)也可轉(zhuǎn)到Linux后臺繼續(xù)執(zhí)行。一個作業(yè)從創(chuàng)建到結(jié)束完全可以在人工干預(yù)下執(zhí)行,我們可以更好的控制自己的作業(yè)任務(wù),以便是Linux更好的為我們服務(wù)我們也可以提高工作效率。
本文講的都是淺顯的概念問題,所以關(guān)鍵還是要靠自己實踐。當然,這只是給新手的參考,高手們就可以路過了!
【編輯推薦】