Linux下終端多路復(fù)用器screen命令的使用技巧
您是否遇到過在遠(yuǎn)程計算機上執(zhí)行長時間運行任務(wù)的情況,并且突然連接斷開, SSH 會話終止了并且您的工作丟失了。好吧,它在某些時候發(fā)生在我們所有人身上,不是嗎?幸運的是,有一個實用程序叫做 screen 允許我們恢復(fù)我們的會話。
介紹
screen 或 GNU screen 是終端多路復(fù)用器。換句話說,這意味著您可以啟動 screen 會話,然后在該會話中打開任意數(shù)量的窗口(虛擬終端)。即使斷開連接,當(dāng)其窗口不可見時,在 screen 上運行的進程將繼續(xù)運行。
安裝 Linux screen
現(xiàn)在大多數(shù) Linux 發(fā)行版上已經(jīng)預(yù)裝了 screen 包。您可以通過鍵入以下內(nèi)容來檢查系統(tǒng)上是否安裝了它:
- linuxmi@linuxmi:~/www.linuxmi.com$ screen --version
- Screen version 4.08.00 (GNU) 05-Feb-20
如果您的系統(tǒng)上沒有安裝 screen ,則可以使用發(fā)行版的軟件包管理器輕松安裝。
在 Ubuntu 和 Debian 上安裝 screen
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install screen
在 CentOS 和 Fedora 上安裝 screen
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo yum install screen
啟動 Linux screen
要啟動 screen 會話,只需在控制臺鍵入 screen :
- screen
這將打開一個 screen 會話,創(chuàng)建一個新窗口并在該窗口中啟動一個 shell 。
現(xiàn)在您已經(jīng)打開了一個 screen 會話,您可以通過輸入以下命令獲取命令列表:
- Ctrl+a ?
命名會話
運行多個 screen 會話時,命名會話非常有用。要創(chuàng)建命名會話,請使用以下參數(shù)運行 screen 命令:
- screen -S session_name
選擇描述性有意義的會話名稱總是一個好主意。
使用 Linux Screen 窗口
默認(rèn)情況下,當(dāng)您啟動新的 screen 會話時,它會創(chuàng)建一個包含 shell 的單個窗口。
您可以在 screen 會話中擁有多個窗口。
要創(chuàng)建一個有 shell 的新窗口請鍵入 Ctrl+a c ,將為其分配范圍 0...9 中的第一個可用編號。
以下是一些用于管理 Linux Screen 窗口 的最常用命令:
- Ctrl+a c 創(chuàng)建一個新窗口(帶shell)
- Ctrl+a " 列出所有窗口
- Ctrl+a 0 切換到窗口 0(按編號)
- Ctrl+a A 重命名當(dāng)前窗口
- Ctrl+a S 將當(dāng)前區(qū)域水平分割為兩個區(qū)域
- Ctrl+a | 將當(dāng)前區(qū)域垂直分成兩個區(qū)域
- Ctrl+a tab 將輸入焦點切換到下一個區(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ū)域
以下是管理嵌套會話的重要鍵盤快捷鍵列表。
- Ctrl + a " - 列出所有會話
- Ctrl + a 0 - 切換到會話號 0
- Ctrl + a n - 切換到下一個會話
- Ctrl + a p - 切換到上一個會話
- Ctrl + a S - 將當(dāng)前區(qū)域水平分割為兩個區(qū)域
- Ctrl + a l - 將當(dāng)前區(qū)域垂直分割為兩個區(qū)域
- Ctrl + a Q - 關(guān)閉除當(dāng)前會話之外的所有會話
- Ctrl + a X - 關(guān)閉當(dāng)前會話
- Ctrl + a \ - 終止所有會話并終止 Screen
- Ctrl + a ? - 顯示鍵綁定。要退出,請按回車 #### 鎖定會話
Screen 有一個鎖定會話的選項。為此,請按 Ctrl + a 和 x。輸入你的 Linux 密碼以鎖定。
從 Linux screen 會話中分離出來
您可以通過鍵入以下內(nèi)容隨時從 screen 會話中分離:
- Ctrl+a d
從會話中分離后,在 screen 會話中運行的程序?qū)⒗^續(xù)運行。
重新連接到 Linux screen
要恢復(fù) screen 會話,請使用以下命令:
- screen -r
如果您的計算機上運行了多個 screen 會話,則需要在 r 后附加 screen 會話 ID 。
要查找 screen 會話 ID,可以使用如下命令列出當(dāng)前運行的列表:
- linuxmi@linuxmi:~/www.linuxmi.com$ screen -ls
- There is a screen on:
- 15105.pts-2.linuxmi (2020年11月18日 10時11分02秒) (Attached)
- 1 Socket in /run/screen/S-linuxmi.
如果要還原 15105.pts-2 ,請鍵入以下命令:
- linuxmi@linuxmi:~/www.linuxmi.com$ screen -r 15105
自定義 Linux screen
如果 /etc/screenrc 和 ~/.screenrc 文件存在,當(dāng) screen 啟動時從中讀取它的配置參數(shù)。我們可以通過 .screenrc 文件根據(jù)我們自己的偏好修改默認(rèn) screen 設(shè)置。
以下是一個示例 ~/.screenrc配置, 有自定義狀態(tài)行和幾個附加選項:
- ~/.screenrc
- # 關(guān)閉歡迎信息
- startup_message off
- # 禁用視覺鈴聲
- vbell off
- # 將回滾緩沖區(qū)設(shè)置為10000
- 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}]'
基本的 Linux screen 用法
以下是開始使用 screen 的最基本步驟:
- 在命令提示符下,鍵入 screen 。
- 運行所需的程序。
- 使用鍵序列 Ctrl-a + Ctrl-d 從 screen 會話中分離。
- 鍵入即可重新連接到 screen 會話 screen -r 。
結(jié)論
在本教程中,您學(xué)習(xí)了如何使用 Gnu Screen ?,F(xiàn)在,您可以開始使用 Screen 實用程序,從單個會話創(chuàng)建多個 screen 窗口,在窗口之間導(dǎo)航,分離和恢復(fù) screen 會話,并使用 .screenrc 文件個性化您的 screen 終端。
在 screen 用戶手冊頁面上還有很多關(guān)于 Gnu screen 的知識。