您是否遇到過(guò)在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行長(zhǎng)時(shí)間運(yùn)行任務(wù)的情況,然后連接突然斷開(kāi),SSH 會(huì)話終止了并且丟失正在進(jìn)行的工作呢。幸運(yùn)的是,有一個(gè)實(shí)用程序叫做 screen 允許我們恢復(fù)我們的會(huì)話。
介紹
screen 或 GNU screen 是終端多路復(fù)用器。換句話說(shuō),這意味著您可以啟動(dòng) screen 會(huì)話,然后在該會(huì)話中打開(kāi)任意數(shù)量的窗口(虛擬終端)。即使斷開(kāi)連接,當(dāng)其窗口不可見(jiàn)時(shí),在 screen 上運(yùn)行的進(jìn)程將繼續(xù)運(yùn)行。
安裝 Linux screen
現(xiàn)在大多數(shù) Linux 發(fā)行版上已經(jīng)預(yù)裝了 screen 包。您可以通過(guò)鍵入以下內(nèi)容來(lái)檢查系統(tǒng)上是否安裝了它:
linuxidc@linuxidc:~/www.linuxidc.com$ screen --version
Screen version 4.06.02 (GNU) 23-Oct-17
如果您的系統(tǒng)上沒(méi)有安裝 screen ,則可以使用發(fā)行版的軟件包管理器輕松安裝。
在 Ubuntu 和 Debian 上安裝 screen
linuxidc@linuxidc:~/www.linuxidc.com$ sudo apt install screen
在 CentOS 和 Fedora 上安裝 screen
linuxidc@linuxidc:~/www.linuxidc.com$ sudo yum install screen
啟動(dòng) Linux screen
要啟動(dòng) screen 會(huì)話,只需在控制臺(tái)鍵入 screen :
screen
這將打開(kāi)一個(gè) screen 會(huì)話,創(chuàng)建一個(gè)新窗口并在該窗口中啟動(dòng)一個(gè) shell 。
現(xiàn)在您已經(jīng)打開(kāi)了一個(gè) screen 會(huì)話,您可以通過(guò)輸入以下命令獲取命令列表:
Ctrl+a ?
命名會(huì)話
運(yùn)行多個(gè) screen 會(huì)話時(shí),命名會(huì)話非常有用。要?jiǎng)?chuàng)建命名會(huì)話,請(qǐng)使用以下參數(shù)運(yùn)行 screen 命令:
screen -S session_name
選擇描述性有意義的會(huì)話名稱(chēng)總是一個(gè)好主意。
使用 Linux Screen 窗口
默認(rèn)情況下,當(dāng)您啟動(dòng)新的 screen 會(huì)話時(shí),它會(huì)創(chuàng)建一個(gè)包含 shell 的單個(gè)窗口。
您可以在 screen 會(huì)話中擁有多個(gè)窗口。
要?jiǎng)?chuàng)建一個(gè)有 shell 的新窗口請(qǐng)鍵入 Ctrl+a c ,將為其分配范圍 0.。.9 中的第一個(gè)可用編號(hào)。
以下是一些用于管理 Linux Screen 窗口 的最常用命令:
Ctrl+a c 創(chuàng)建一個(gè)新窗口(帶shell)
Ctrl+a “ 列出所有窗口
Ctrl+a 0 切換到窗口 0(按編號(hào))
Ctrl+a A 重命名當(dāng)前窗口
Ctrl+a S 將當(dāng)前區(qū)域水平分割為兩個(gè)區(qū)域
Ctrl+a | 將當(dāng)前區(qū)域垂直分成兩個(gè)區(qū)域
Ctrl+a tab 將輸入焦點(diǎn)切換到下一個(gè)區(qū)域
Ctrl+a Ctrl+a 在當(dāng)前和之前的區(qū)域之間切換
Ctrl+a Q 關(guān)閉除當(dāng)前區(qū)域之外其他所有區(qū)域
Ctrl+a X 關(guān)閉當(dāng)前區(qū)域
從 Linux screen 會(huì)話中分離出來(lái)
您可以通過(guò)鍵入以下內(nèi)容隨時(shí)從 screen 會(huì)話中分離:
Ctrl+a d
從會(huì)話中分離后,在 screen 會(huì)話中運(yùn)行的程序?qū)⒗^續(xù)運(yùn)行。
重新連接到 Linux screen
要恢復(fù) screen 會(huì)話,請(qǐng)使用以下命令:
screen -r
如果您的計(jì)算機(jī)上運(yùn)行了多個(gè) screen 會(huì)話,則需要在 r 后附加 screen 會(huì)話 ID 。
要查找 screen 會(huì)話 ID,可以使用如下命令列出當(dāng)前運(yùn)行的列表:
linuxidc@linuxidc:~/www.linuxidc.com$ screen -ls
There are screens on:
15174.session_name (08/13/2019 09:19:34 PM) (Attached)
12475.pts-0.linuxidc (08/13/2019 09:16:31 PM) (Attached)
12230.pts-0.linuxidc (08/13/2019 09:15:42 PM) (Detached)
3 Sockets in /run/screen/S-linuxidc.
如果要還原 12475.pts-0 ,請(qǐng)鍵入以下命令:
linuxidc@linuxidc:~/www.linuxidc.com$ screen -r 12475
There is a screen on:
12475.pts-0.linuxidc (08/13/2019 09:16:32 PM) (Attached)
There is no screen to be resumed matching 12475.
自定義 Linux screen
如果 /etc/screenrc 和 ~/.screenrc 文件存在,當(dāng) screen 啟動(dòng)時(shí)從中讀取它的配置參數(shù)。我們可以通過(guò) .screenrc 文件根據(jù)我們自己的偏好修改默認(rèn) screen 設(shè)置。
以下是一個(gè)示例 ~/.screenrc配置, 有自定義狀態(tài)行和幾個(gè)附加選項(xiàng):
?/.screenrc
#關(guān)閉歡迎信息startup_messageoff#禁用視覺(jué)鈴聲vbelloff#將回滾緩沖區(qū)設(shè)置為10000defscrollback10000#自定義狀態(tài)行hardstatusalwayslastlinehardstatusstring‘%{=kG}[%{G}%H%{g}][%=%{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%=%{g}][%{B}%m-%d%{W}%c%{g}]’
基本的 Linux screen 用法
以下是開(kāi)始使用 screen 的最基本步驟:
在命令提示符下,鍵入 screen 。
運(yùn)行所需的程序。
使用鍵序列 Ctrl-a + Ctrl-d 從 screen 會(huì)話中分離。
鍵入即可重新連接到 screen 會(huì)話 screen -r 。
結(jié)論
在本教程中,您學(xué)習(xí)了如何使用 Gnu Screen ?,F(xiàn)在,您可以開(kāi)始使用 Screen 實(shí)用程序,從單個(gè)會(huì)話創(chuàng)建多個(gè) screen 窗口,在窗口之間導(dǎo)航,分離和恢復(fù) screen 會(huì)話,并使用 .screenrc 文件個(gè)性化您的 screen 終端。
責(zé)任編輯 LK
-
Linux
+關(guān)注
關(guān)注
87文章
11312瀏覽量
209708 -
Ubuntu
+關(guān)注
關(guān)注
5文章
563瀏覽量
29836
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論