("開源慕課平臺")shell
系統管理員常常經過ssh或者telnet遠程登陸到Linux服務器來進行遠程管理,須要運行一些須要很長時間才能完成的任務,必須等待他們執行完畢,好比遠程操做備份,或者傳輸一些大的文件。若是須要臨時斷開,或者發生意外網絡中斷和終端意外斷開,你正在執行的任務就會被kill掉。centos
爲了解決這樣的問題,GNU screen就是防止這種狀況的一種方法。服務器
screen是GNU計劃中用於命令行終端切換的自由軟件,用戶能夠經過鏈接多個本地或者遠程的命令行會話,並在其間自由切換。screen能夠看作是窗口管理器的命令行界面版本,功能很是強大。主要功能有:會話恢復、多窗口、會話共享。網絡
yum install screen #安裝命令session rpm -qi screen #安裝完成以後不要急於使用該命令,使用該命令查看其描述信息,這是一種良好的習慣運維 |
固然若是你以爲你的英文能力足夠好的話就能夠直接查看man手冊了。ssh
#screen [-AmRvx -ls -wipe][-d <做業名稱>][-h <行數>] [-r <做業名稱>] -s [-S <做業名稱>]ide |
-A 將全部的視窗都調整爲目前終端的大小spa -d <做業名稱> 將制定的screen做業離線命令行 -h <行數> 制定視窗的緩衝區行數 -m 即便目前已在做業中的screen做業,仍強制創建新的screen做業 -r <做業名稱> 恢復離線的screen做業 -R 先試圖恢復離線的做業。若找不到離線的做業,即創建新的screen做業 -s 制定創建新視窗時,所要執行的shell -S <做業名稱> 制定screen做業的名稱 -v 顯示版本信息 -x 加入到一個活動的會話裏面(會話共享) -ls 顯示目前全部的screen做業 --list -wipe 檢查目前全部的screen做業,並刪除已經沒法使用的screen做業 |
創建一個默認的screen會話
[root@centos6 ~]#screen #窗口大小和終端相同的默認screen會話 |
列出當前全部的會話
[root@centos6 ~]#screen -ls #列出活動的會話和已經分離的會話 There is a screen on: 2581pxs-0.centos6 (Attached) 1 Socket in /var/run/screen/S-root. |
新建一個叫作session1的會話
[root@centos6 ~]#screen -S session1 [root@centos6 ~]#screen -ls There is a screen on: 1914.session1 (Attached) 1 Socket in /var/run/screen/S-root. |
回到session1這個會話
>爲演示效果 在session1中編輯一個文件,而後直接關閉終端不正常的斷開。
>從新鏈接遠程主機,執行screen -rsession1
遠程detach某個會話
screen -d session1 |
從新打開一個終端,使用screen -d選項遠程分離會話,分離以前和以後效果圖以下,可看出分離會打斷會話的使用,但不打斷其任務的執行,依舊可使用screen -r session1來恢復。
*結束當前session並回到sessionname這個session*
[root@centos6 ~]#screen -S session2 [root@centos6 ~]#screen –ls [root@centos6 ~]#screen -d -r session1 #結束當前的session2,並回到session1會話 |
都是以ctrl + a開始。這裏的ctrl+a是指按下ctrl+a ,鬆開,而後再按下其餘鍵,筆者在最初使用時覺得是同時按下,很彆扭,仔細讀過文檔才發現是這種用法,但願讀者不要掉進這個小坑裏。
Ctrl+a ? 顯示全部鍵綁定信息 Ctrl+a c 建立一個新的運行shell的窗口並切換到該窗口 Ctrl+a Ctrl+a n Next,切換到下一個窗口 Ctrl+a p Previous,切換到前一個窗口 Ctrl+a 0..9 切換到第0..9個窗口 Ctrl+a [space] 從窗口0循序切換到窗口9 Ctrl+a C-a 在最近使用兩個窗口之間切換(C和a同時按下) Ctrl+a x 鎖住當前的窗口,須要用戶密碼解鎖 Ctrl+a d 暫時離開當前的會話,當不影響其會話中的任務執行 #比較經常使用,能夠多使用 Ctrl+a z 把當前會話放到後臺執行,可使用jobs,fg等命令進行管理 Ctrl+a w 顯示全部的窗口列表 Ctrl+a t Time,顯示當前時間和系統的負載 Ctrl+a K 強行關閉當前的窗口
|
在窗口的最頂端標識,並不在命令提示符中顯示,請讀者多注意觀察。
對於其中的組合鍵讀者無需死記,更多的使用信息使用Ctrl+a,?查看這裏再也不詳述
咱們能夠從QQ的遠程桌面操做聯想到screen的會話共享,有時咱們遇到某個問題特別棘手,就可使用會話共享的方式讓別的技術大牛來幫助你解決問題,你能夠看到他作的全部操做,固然也能夠對權限進行限制,屬於screen的高級應用,這裏只演示簡單的會話共享。
>終端1執行
[root@centos6 ~]#screen -S help |
>終端2執行
[root@centos6 ~]#screen -ls There is a screen on: 2511.help (Attached) 1 Socket in /var/run/screen/S-root. [root@centos6 ~]#screen -x help |
這時兩個終端之間就創建了會話共享了,更多的應用場景須要每一位運維工程師去挖掘。