在linux開發中,我們經常用終端軟件連入linux服務器進行一些操作,或者編輯代碼。當需要編輯多個文件,並且經常要執行一些系統命令時,不得已要開多個終端窗口連入服務器或者來回進行文件切換或者退出文件編輯來執行系統命令,造成效率低下而且繁瑣。
如果經常遇到這樣的問題,那就應該嘗試使用以下linux的Screen工具了。Screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器。Screen中有會話的概念,用戶可以在一個screen會話中創建多個screen窗口,在每一個screen窗口中就像操作一個真實的telnet/SSH連接窗口那樣。在使用過程中可以退出screen,甚至可以關掉登錄窗口,下次再進去重新掛上screen會話,所有工作全部都會恢復。
第一步工作,肯定是先啟動screen了。很簡單,在linux命令行中輸入:screen即可,就進入了screen環境。進入了就要退出,退出有兩種方式,一個是完全退出,輸入exit就是完全退出。另一個是Detached,CTRL-a+d(先按CTRL-a,然后按d字母),就可以Detached了。Detached是一種術語叫法。這兩種退出的區別就是exit是完全退出,不會進行session保存了。而第二種仍然保持會話,用screen -r就可恢復到原來的工作狀態了!
剛剛說過,Screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器,現在要體會他的強大之處了。執行screen命令后就自動創建了一個window,我們可以執行各種命令,進行文件編輯。這是后我突然需要另外一個窗口來執行其他要工作很長時間的腳本、程序或者命令,就可以創建新的窗口來執行,不會影響到當前工作環境了。輸入CTRL-a+c(先按CTRL-a,然后按d字母),會出現一個新的頁面命令行提示符,可以開始干自己的工作了!開始后,怎么切換回原來的window呢?有兩種方法,一是CTRL-a CTRL-a(按兩遍CTRL-a),就可以順序在多個window中切換。或者CTRL-a+0-9(按CTRL-a后按0到9任意數字)就會出現對應的window了。比如說我們第一次用screen進入的window編號是為0,然后我們需要新的window來執行命令,就創建了一個新的window,編號為1。現在我要切換回去了,直接按CTRL-a+0,就回到原先那個window啦。
除了一個screen可以包含多個window,也可以在創建多個screen。創建多個screen也很簡單,退出screen(Detached退出模式),然后再執行screen命令,就創建了2個screen。用screen -ls可以查看有多少個screen被創建。執行screen -ls后,每個列出的screen有個pid編號,當我們要恢復某個screen的窗口時,只需輸入screen -r pid 就可以恢復到指定screen了!
上文都是screen常用的功能,其實還包含其他很多功能,有待大家去挖掘了:man screen,就可以認真研究啦!