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