您是否曾經(jīng)遇到過在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行長時(shí)間運(yùn)行的任務(wù),突然連接中斷,SSH會(huì)話終止以及工作丟失的情況。
在本教程中,我們將說明如何安裝screen命令并說明如何使用screen命令,如何使用screen運(yùn)行后臺(tái)命令,進(jìn)程與任務(wù)。
screen或GNU screen是終端多路復(fù)用器。 換句話說,這意味著您可以啟動(dòng)screen會(huì)話,然后在該會(huì)話中打開任意數(shù)量的窗口,也就是虛擬終端。
即使它們的窗口不可見,在Screen中運(yùn)行的進(jìn)程也將繼續(xù)運(yùn)行。
如今,大多數(shù)Linux發(fā)行版中都已預(yù)先安裝screen命令。 可以運(yùn)行命令screen --version
檢查它是否已安裝在你的Linux系統(tǒng)。 命令將會(huì)screen的版本信息。
如果您的系統(tǒng)上未安裝screen,則可以使用發(fā)行版的軟件包管理器輕松安裝它。
如果你的計(jì)算機(jī)運(yùn)行的是基于Debian的Linux發(fā)行版。 例如Ubuntu和Linux mint,可以運(yùn)行命令sudo apt install screen
安裝screen。
如果你的計(jì)算機(jī)運(yùn)行的是基于Redhat的Linux發(fā)行版。 例如CentOS和Fedora,可以運(yùn)行命令sudo apt install screen
安裝screen。
sudo yum install screen #for centos and fedora
sudo apt install screen #for Ubuntu and Debian
screen --version
Screen version 4.06.02 (GNU) 23-Oct-17
啟動(dòng) screen
要開始screen會(huì)話,只需在終端運(yùn)行screen
命令即可。 這將打開一個(gè)screen會(huì)話,創(chuàng)建一個(gè)新窗口,并在該窗口中啟動(dòng)shell。
當(dāng)您運(yùn)行多個(gè)screen會(huì)話時(shí),命名會(huì)話非常有用。 要?jiǎng)?chuàng)建命令的會(huì)話,請(qǐng)運(yùn)行命令screen -S session_name
。
現(xiàn)在您已經(jīng)打開了一個(gè)screen會(huì)話,你鍵入Ctrl+a ?
來獲取命令列表。
當(dāng)進(jìn)入后,請(qǐng)鍵入Ctrl-a
c
,創(chuàng)建一個(gè)shell會(huì)話,然后就可以運(yùn)行命令或者執(zhí)行常駐后臺(tái)任務(wù)。
如果需要退出當(dāng)前screen會(huì)話時(shí),請(qǐng)鍵入Ctrl+a
d
退出screen。 你執(zhí)行任務(wù)將會(huì)一直運(yùn)行。
screen
screen -S session_name #命名會(huì)話
Ctrl+a ? #獲取幫助
Ctrl+a c #在screen創(chuàng)建shell 會(huì)話
Ctrl+a d #退出screen
screen 快捷鍵
當(dāng)您開始新的screen會(huì)話時(shí),它將創(chuàng)建一個(gè)帶有shell的窗口。 screen會(huì)話中可以有多個(gè)窗口。
要?jiǎng)?chuàng)建shell會(huì)話類型的窗口鍵入Ctrl+a
c
,將為其分配范圍0...9
中的第一個(gè)可用數(shù)字。
以下是一些用于管理screen窗口的最常用命令。 Ctrl+a
c
創(chuàng)建一個(gè)新窗口,包括shell會(huì)話。
Ctrl+a
"
列出所有窗口,Ctrl+a
0
切換到窗口0,Ctrl+a
A
重命名當(dāng)前窗口
Ctrl+a
S
將當(dāng)前窗口水平分為兩個(gè)窗口,Ctrl+a
|
將當(dāng)前窗口垂直分割為兩個(gè)窗口。
Ctrl+a
tab
將輸入焦點(diǎn)切換到下一個(gè)窗口,Ctrl+a
Ctrl+a
在當(dāng)前窗口和上一個(gè)之間切換。
Ctrl+a
Q
關(guān)閉當(dāng)前區(qū)域以外的所有窗口,Ctrl+a
X
關(guān)閉當(dāng)前窗口。
您可以隨時(shí)輸入鍵入Ctrl+a d
退出screen會(huì)話,從會(huì)話斷開后,在screen會(huì)話中運(yùn)行的程序?qū)⒗^續(xù)運(yùn)行。
恢復(fù)screen會(huì)話
要恢復(fù)screen會(huì)話,請(qǐng)運(yùn)行命令screen -r
。 如果您的計(jì)算機(jī)上正在運(yùn)行多個(gè)screen會(huì)話,則需要在r
選項(xiàng)后附加screen會(huì)話id。
要找到會(huì)話ID,請(qǐng)運(yùn)行screen -ls
命令列出當(dāng)前正在運(yùn)行的screen會(huì)話。 例如要還原screen的id是10835.pts的會(huì)話,請(qǐng)運(yùn)行命令screen -r 10835
。
screen -ls
screen -r
screen -r 10835
There are screens on:
10835.pts-0.myfreax-desktop (Detached)
10366.pts-0.myfreax-desktop (Detached)
2 Sockets in /run/screens/S-myfreax.
自定義screen
啟動(dòng)screen
時(shí),如果配置文件存在,它將從/etc/screenrc
和~/.screenrc
中讀取其配置參數(shù)。
我們可以在~/.screenrc
文件根據(jù)喜好修改默認(rèn)的screen設(shè)置。 以下是帶有自定義狀態(tài)行和一些其他選項(xiàng)的示例配置。
# 關(guān)閉歡迎消息
startup_message off
# 關(guān)閉聲音提示
vbell off
# 設(shè)置滾動(dòng)的buffer
defscrollback 10000
# 自定行的狀態(tài)
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
結(jié)論
在本教程中,您學(xué)習(xí)了如何使用Gnu Screen。 現(xiàn)在,您可以開始使用screen程序,并通過單個(gè)會(huì)話創(chuàng)建多個(gè)窗口,在窗口之間導(dǎo)航。
退出和恢復(fù)screen會(huì)話,并使用?/.screenrc
文件個(gè)性化您的screen終端。
-
Linux
+關(guān)注
關(guān)注
87文章
11310瀏覽量
209612 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7500瀏覽量
88023 -
命令
+關(guān)注
關(guān)注
5文章
684瀏覽量
22036 -
SSH
+關(guān)注
關(guān)注
0文章
189瀏覽量
16347 -
Screen
+關(guān)注
關(guān)注
0文章
12瀏覽量
6760
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論