【Linux-GNU】screen

記錄而已,詳細原文請看https://www.cnblogs.com/yangliheng/p/6173530.html

1. 簡介
GNU Screen是一款由GNU計劃開發的用於命令行終端切換的自由軟件。用戶可以通過該軟件同時連接多個本地或遠程的命令行會話,並在其間自由切換。

2. 特點
多窗口:
在Screen環境下,所有的會話都獨立的運行,並擁有各自的編號、輸入、輸出和窗口緩存。用戶可以通過快捷鍵在不同的窗口下切換,並可以自由的重定向各個窗口的輸入和輸出。Screen實現了基本的文本操作,如複製粘貼等;還提供了類似滾動條的功能,可以查看窗口狀況的歷史記錄。窗口還可以被分區和命名,還可以監視後臺窗口的活動。
會話共享:Screen可以讓一個或多個用戶從不同終端多次登錄一個會話,並共享會話的所有特性(比如可以看到完全相同的輸出)。它同時提供了窗口訪問權限的機制,可以對窗口進行密碼保護。

3. 滿足基本需求依次出入的命令:
在打開你的Shell窗口後:
screen -S Name: 新建一個screen,名字叫Name。接下來會進入screen的世界,雖然看起來和之前的界面沒什麼區別,然後在這個界面內輸入你想要的操作。想要暫時退出這個界面:Ctrl+a d
screen -ls:
列出當前所有的session
screen -r screenNo: 恢復編號爲screenNo的會話,進去後可以看輸出,做想要的操作
Ctrl+a k: 在screen界面操作,殺死進程
screen -wipe: 清除被殺死的進程(這個進程在screen list的時候會顯示爲dead)

 

4. 主要命令
screen -r 恢復會話
detach 
在暫時離開的時候,也可以執行分離命令, 在保證裏面的程序正常運行的情況下讓Screen掛起(切換到後臺)
screen -S yourname -> 新建一個叫yourname的session
screen -ls -> 列出當前所有的session
screen -r yourname -> 回到yourname這個session
screen -d yourname -> 遠程detach某個session
screen -d -r yourname -> 結束當前session並回到yourname這個session
 

五、注意事項
1. 清除一個screen會話:
screen -X -S PID quit (PID改成進程編號,例如screen -X -S 11943 quit)


當人爲地停掉screen裏面的程序(比如Ctrl+Z停掉正在訓練的模型),這並不會釋放程序所佔用的能存,需要用
screen C -a k 使screen的狀態變成terminated(後來發現這樣不行,這樣的功能只是相當於 screen -d)
或者(關閉所有的screen,有些危險,來源https://www.cnblogs.com/liaojie970/p/7872588.html
screen -ls|awk 'NR>=2&&NR<=20{print $1}'|awk '{print "screen -S "$1" -X quit"}'|sh

補充資料https://www.ibm.com/developerworks/cn/linux/l-cn-screen/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章