你不知道的linux系統(tǒng)中強(qiáng)大的screen命令
linux系統(tǒng)中強(qiáng)大的screen命令可能很多用戶還沒感受到,下面介紹的就是linux系統(tǒng)中強(qiáng)大的screen命令,具體內(nèi)容如下所述。
因?yàn)樽龆鷾y序分析的原因,經(jīng)常需要運(yùn)行很長時間的程序。由于時間很長,一直都沒什么太好的辦法。當(dāng)有了screen,這一切便都迎刃而解了。敲入命令screen會創(chuàng)建一個跑著shell的單一窗口,在這里面,你可以跑你所需要的程序。
使用screen非常簡易.只需在SHELL鍵入screen,便可打開一個screen session。
而在每個screen session下,所有命令都以ctrl+a(C-a)開始?,F(xiàn)在讓我來簡單介紹基本的命令C-ac->Create,開啟新的window
C-an->Next,切換到下個window
C-ap->Previous,前一個window
more..
less..C-aC-a->Other,在兩個window間切換
C-aw->Windows,列出已開啟的windows有那些
C-a0->切換到第0個window
C-a1..9->切換到第1..9個windowC-aa->發(fā)出C-a,在emacs,ve,bash,tcsh下可移到行首C-at->Time,顯示當(dāng)前時間,和系統(tǒng)的load
C-aK(大寫)->killwindow,強(qiáng)行關(guān)閉當(dāng)前的windowC-a[->進(jìn)入copy mode,在copy mode下可以回滾、搜索、
復(fù)制就像用使用vi一樣C-bBackward,PageUp
C-fForward,PageDown
H(大寫)High,將光標(biāo)移至左上角
LLow,將光標(biāo)移至左下角
0移到行首
$行末
在普通模式下:
用screen-ls可以看所有的screen sessions
用screen-rsessionid可以進(jìn)sessionid指定的特定的screensession
***exit退出即可。
--------------------------------
另外大家在起后臺服務(wù),或者長時間執(zhí)行某個腳本的時候。是不是感覺,交互性很差,
有時,想把結(jié)果直接在終端上輸出,又怕不小心關(guān)閉了終端導(dǎo)致進(jìn)程退出?(有些sshd服務(wù)還會設(shè)置連接超時,自動退出終端)
現(xiàn)在用screen這個指令可以很好的解決跑后臺服務(wù)的尷尬。
命令其實(shí)超簡單的:
直接在終端上輸入screen,這個時候,服務(wù)器端會啟一個新的終端,但這個終端,與之前的普通終端不一樣,它不隸屬于sshd進(jìn)程組,這樣,當(dāng)本地終端關(guān)閉后,服務(wù)器終端不會被kill。
當(dāng)然,優(yōu)點(diǎn)還不止這么些,在服務(wù)器終端里執(zhí)行任務(wù)時,你甚至可以隨時地切換到本地終端做些其他事情,然后,要回去時,再恢復(fù)到剛才已經(jīng)打開的服務(wù)器終端里,如果剛才的任務(wù)沒有結(jié)束,還可以繼續(xù)執(zhí)行任務(wù)。
操作步驟:
首先,進(jìn)入screen-Ssessionname終端。(sessionname是為了分辨你的session)
然后按ctrl+a,再按d鍵暫時退出終端。
當(dāng)要返回時,先查看剛才的終端進(jìn)程ID,screen-list
或直接
screen-rxx(剛才的sessionname)就可以了
當(dāng)然,當(dāng)你開了很多個session后,打算關(guān)閉幾個session,可以進(jìn)入到session后,exit一下就可以了.
總的來說,screen是可以完全替代nohup的,并且本身提供了較復(fù)雜的功能,但是我認(rèn)為,剛才那些簡單的功能足以應(yīng)付日常運(yùn)作。
總結(jié):
希望本文介紹的linux系統(tǒng)中強(qiáng)大的screen命令能夠?qū)ψx者有所幫助,更多有關(guān)linux系統(tǒng)的知識還有待于讀者去探索和學(xué)習(xí)。