您是否曾經(jīng)遇到過在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行長時(shí)間運(yùn)行的任務(wù),突然連接中斷,SSH會話終止以及工作丟失的情況。
在本教程中,我們將說明如何安裝screen命令并說明如何使用screen命令,如何使用screen運(yùn)行后臺命令,進(jìn)程與任務(wù)。
screen或GNU screen是終端多路復(fù)用器。 換句話說,這意味著您可以啟動(dòng)screen會話,然后在該會話中打開任意數(shù)量的窗口,也就是虛擬終端。
即使它們的窗口不可見,在Screen中運(yùn)行的進(jìn)程也將繼續(xù)運(yùn)行。
如今,大多數(shù)Linux發(fā)行版中都已預(yù)先安裝screen命令。 可以運(yùn)行命令screen --version檢查它是否已安裝在你的Linux系統(tǒng)。 命令將會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會話,只需在終端運(yùn)行screen 命令即可。 這將打開一個(gè)screen會話,創(chuàng)建一個(gè)新窗口,并在該窗口中啟動(dòng)shell。
當(dāng)您運(yùn)行多個(gè)screen會話時(shí),命名會話非常有用。 要?jiǎng)?chuàng)建命令的會話,請運(yùn)行命令screen -S session_name。
現(xiàn)在您已經(jīng)打開了一個(gè)screen會話,你鍵入Ctrl+a ?來獲取命令列表。
當(dāng)進(jìn)入后,請鍵入Ctrl-a c,創(chuàng)建一個(gè)shell會話,然后就可以運(yùn)行命令或者執(zhí)行常駐后臺任務(wù)。
如果需要退出當(dāng)前screen會話時(shí),請鍵入Ctrl+a d 退出screen。 你執(zhí)行任務(wù)將會一直運(yùn)行。
screen
screen -S session_name #命名會話
Ctrl+a ? #獲取幫助
Ctrl+a c #在screen創(chuàng)建shell 會話
Ctrl+a d #退出screen
screen 快捷鍵
當(dāng)您開始新的screen會話時(shí),它將創(chuàng)建一個(gè)帶有shell的窗口。 screen會話中可以有多個(gè)窗口。
要?jiǎng)?chuàng)建shell會話類型的窗口鍵入Ctrl+a c,將為其分配范圍0...9中的第一個(gè)可用數(shù)字。
以下是一些用于管理screen窗口的最常用命令。 Ctrl+a c創(chuàng)建一個(gè)新窗口,包括shell會話。
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會話,從會話斷開后,在screen會話中運(yùn)行的程序?qū)⒗^續(xù)運(yùn)行。
恢復(fù)screen會話
要恢復(fù)screen會話,請運(yùn)行命令screen -r。 如果您的計(jì)算機(jī)上正在運(yùn)行多個(gè)screen會話,則需要在r選項(xiàng)后附加screen會話id。
要找到會話ID,請運(yùn)行screen -ls命令列出當(dāng)前正在運(yùn)行的screen會話。 例如要還原screen的id是10835.pts的會話,請運(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è)會話創(chuàng)建多個(gè)窗口,在窗口之間導(dǎo)航。
退出和恢復(fù)screen會話,并使用?/.screenrc文件個(gè)性化您的screen終端。
-
Linux
+關(guān)注
關(guān)注
88文章
11758瀏覽量
219009 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7806瀏覽量
93190 -
命令
+關(guān)注
關(guān)注
5文章
755瀏覽量
23747 -
SSH
+關(guān)注
關(guān)注
0文章
200瀏覽量
17720 -
Screen
+關(guān)注
關(guān)注
0文章
13瀏覽量
7066
發(fā)布評論請先 登錄
Linux命令:screen
linux運(yùn)維命令大全
如何在Model::tick() 中從A_Screen切換到B_Screen?
Linux的screen命令應(yīng)該如何使用技巧詳細(xì)說明
Linux的screen命令如何使用技巧詳細(xì)說明
AD7843:Touch Screen Digitizer數(shù)據(jù)Sheet
AD7873:Touch Screen Digitizer數(shù)據(jù)Sheet
如何安裝和使用screen命令
評論