linux下經常使用putty或者securecrt等通過ssh遠端登入伺服器,但如果在執行程式的過程中關閉遠端終端視窗,則原先執行的程式會被立即殺死。這對於一些花費時間較長的程式非常不利,本文將介紹如何使用screen命令解決這個問題,以及screen提供的其他功能。
screen簡介
使用ssh遠端登入伺服器時,如果在執行程式的過程中不小心關閉了遠端終端視窗,或者出現網路斷開或者電腦宕機的情況,主機與伺服器的連線會話立即丟失,剛剛執行的程式或進行的工作也同時丟失,這不得不說是一件非常令人沮喪的事情。使用screen可以很好地解決這個問題。
screen是一款由gnu計畫開發的用於命令列終端切換的自由軟體,實現全屏視窗管理的功能,能夠混合多個工作到乙個終端上。
一般linux系統中自帶有screen命令,如果沒有,ubuntu類系統可以方便地通過以下命令進行安裝:
sudo apt-get install screen
在red hat類系統中可以使用以下命令:
yum install screen
下面簡單介紹screen的幾個常用功能。
多會話
通過putty等遠端伺服器後,直接在命令列下執行以下命令新建乙個screen會話:
screen
也可以指定會話的名稱,以下即建立以noalgo為名稱的會話:
screen -s noalgo
也可以在新建會話時指定要執行的程式,以下執行了vi編輯器,注意此時退出vi編輯器即表示退出了screen會話。
screen -s noalgo vi helloworld.c
新建會話後即進入了screen的世界,在這裡做的事情和在普通的shell中的事情沒有什麼區別,只是此時的會話是可以進行恢復的,即使發生網路中斷,也可以通過再次執行screen命令回到剛才的會話中,而且,再次回來時螢幕上顯示的是剛才的畫面,而如果程式動態執行時,此時顯示最新的結果。
如果有事需要離開,而伺服器上的程式需要同時在執行,此時可以通過命令d分離會話。在screen會話中進行的操作都是以ctrl+a開始,所以分離時需要先按下ctrl+a,然後再按d,這裡表示為:
c-a, d
此時會回到原先的putty視窗,就可以隨意關掉putty去幹其他事情了。
當要回去的時候可以先通過putty進行登入,然後執行以下命令檢視系統中已有的screen會話:
screen -ls
或screen -list
得到的結果類似為:
noalgo@admin:~$ screen -ls
there is a screen on:
15057.noalgo (01/30/2015 06:16:45 am) (detached)
1 socket in /var/run/screen/s-noalgo.
然後可以通過以下命令回到screen會話中:
screen -r 15075
或者直接通過會話名稱回去:
screen -r noalgo
此時即可繼續剛剛離開之前所做的事情了。
另外,通過以下命令可以實現會話共享,此時多個使用者登入到同乙個會話中,如果他們同時處於同乙個視窗下時,彼此的操作會同步給每乙個使用者,即達到共享桌面的效果。
screen -x
多視窗
在普通的shell環境中,如果要同時執行多個程式,可以通過ctrl+z,以及fg和bg等命令交替執行,但screen提供了多視窗的功能同樣可以達到這個目的。
通過screen命令新建乙個會話:
screen -s noalgo
此時進入了screen會話預設的乙個視窗,通過以下命令可以新建乙個視窗並進入新的視窗:
c-a, n
c-a, p
使用以下命令可以檢視當前共有幾個視窗,標註*號的為當前所在的視窗:
c-a, w
使用以下命令強行關閉乙個視窗,如果當前只剩下最後乙個視窗,則終止當前的會話:
c-a, k
以下命令也可以達到同樣的效果:
exit
當使用多個視窗時,可以通過將螢幕分割成幾個區域來提高效率。使用以下命令進行分屏,分別是水平分割和垂直分割:
c-a, s
c-a, |
擁有多個螢幕時,使用以下命令進行切換:
c-a, tab
使用以下命令關閉某個分屏,
c-a, x
或者關閉處當前區域的所有其他區域:
c-a, q
screen詳細引數
以上是通過簡單的例子介紹screen的常見用法,下面對其引數進行詳細介紹。screen的命令語法為:
screen [-amrvx -ls -wipe][-d ][-h ][-r
Linux下screen的使用
linux下經常使用putty或者securecrt等通過ssh遠端登入伺服器,但如果在執行程式的過程中關閉遠端終端視窗,則原先執行的 程式會被立即殺死。這對於一些花費時間較長的程式非常不利,本文將介紹如何使用screen命令解決這個問題,以及screen提供的其他功能。使用ssh遠端登入伺服器時,...
Linux下使用screen工作How to
通過ssh在linux終端下工作,有乙個很煩的事情就是,如果需要執行乙個長時間的命令 例如拷貝乙個大檔案,或者做ddl 時,如果終端意外斷開 網路或者別的原因 一般命令就會終止,當然你可以使用nohup命令,這裡提供另乙個辦法 使用screen。一般,我們建立乙個screen會話,然後連線會話並在會...
Unbutu 下簡單使用 screen
一。安裝 apt install screen二。基礎命令 1.檢視當前伺服器上所有 screen 會話 screen ls2.建立 screen 自定義名字建立 screen s 名稱 直接 screen 建立 名稱為自動生成的一串字元 screen 自動生成的字串大概長這樣 3.進入指定 scr...