screen 命令示例:管理多個終端會話
GNU Screen 是一個終端多路複用器(視窗管理器)。顧名思義,Screen 可以在多個互動式 shell 之間複用物理終端,因此我們可以在每個終端會話中執行不同的任務。所有的 Screen 會話都完全獨立地執行程式。因此,即使會話意外關閉或斷開連線,在 Screen 會話內執行的程式或程式也將繼續執行。例如,當通過 SSH 升級 Ubuntu 伺服器時,screen
命令將繼續執行升級過程,以防萬一 SSH 會話因任何原因而終止。
GNU Screen 允許我們輕鬆建立多個 Screen 會話,在不同會話之間切換,在會話之間複製文字,隨時連上或脫離會話等等。它是每個 Linux 管理員應該在必要時學習和使用的重要命令列工具之一。在本簡要指南中,我們將看到 screen
命令的基本用法以及在 Linux 中的示例。
安裝 GNU Screen
GNU Screen 在大多數 Linux 作業系統的預設儲存庫中都可用。
要在 Arch Linux 上安裝 GNU Screen,請執行:
$ sudo pacman -S screen
在 Debian、Ubuntu、Linux Mint 上:
$ sudo apt-get install screen
在 Fedora 上:
$ sudo dnf install screen
在 RHEL、CentOS 上:
$ sudo yum install screen
在 SUSE/openSUSE 上:
$ sudo zypper install screen
讓我們繼續看一些 screen
命令示例。
管理多個終端會話的 Screen 命令示例
在 Screen 中所有命令的預設字首快捷方式是 Ctrl + a
。使用 Screen 時,你需要經常使用此快捷方式。所以,要記住這個鍵盤快捷鍵。
建立新的 Screen 會話
讓我們建立一個新的 Screen 會話並連上它。為此,請在終端中鍵入以下命令:
screen
現在,在此會話中執行任何程式或程式,即使你與此會話斷開連線,正在執行的程式或程式也將繼續執行。
從 Screen 會話脫離
要從螢幕會話中脫離,請按 Ctrl + a
和 d
。你無需同時按下兩個組合鍵。首先按 Ctrl + a
然後按 d
。從會話中脫離後,你將看到類似下面的輸出。
[detached from 29149.pts-0.sk]
這裡,29149
是 Screen ID,pts-0.sk
是螢幕會話的名稱。你可以使用 Screen ID 或相應的會話名稱來連上、脫離和終止螢幕會話。
建立命名會話
你還可以用你選擇的任何自定義名稱建立一個 Screen 會話,而不是預設使用者名稱,如下所示。
screen -S ostechnix
上面的命令將建立一個名為 xxxxx.ostechnix
的新 Screen 會話,並立即連上它。要從當前會話中脫離,請按 Ctrl + a
,然後按 d
。
當你想要查詢哪些程式在哪些會話上執行時,命名會話會很有用。例如,當在會話中設定 LAMP 系統時,你可以簡單地將其命名為如下所示。
screen -S lampstack
建立脫離的會話
有時,你可能想要建立一個會話,但不希望自動連上該會話。在這種情況下,執行以下命令來建立名為senthil
的已脫離會話:
screen -S senthil -d -m
也可以縮短為:
screen -dmS senthil
上面的命令將建立一個名為 senthil
的會話,但不會連上它。
列出螢幕會話
要列出所有正在執行的會話(連上的或脫離的),請執行:
screen -ls
示例輸出:
There are screens on:
29700.senthil (Detached)
29415.ostechnix (Detached)
29149.pts-0.sk (Detached)
3 Sockets in /run/screens/S-sk.
如你所見,我有三個正在執行的會話,並且所有會話都已脫離。
連上 Screen 會話
如果你想連上會話,例如 29415.ostechnix
,只需執行:
screen -r 29415.ostechnix
或:
screen -r ostechnix
或使用 Screen ID:
screen -r 29415
要驗證我們是否連上到上述會話,只需列出開啟的會話並檢查。
screen -ls
示例輸出:
There are screens on:
29700.senthil (Detached)
29415.ostechnix (Attached)
29149.pts-0.sk (Detached)
3 Sockets in /run/screens/S-sk.
如你所見,在上面的輸出中,我們目前已連上到 29415.ostechnix
會話。要退出當前會話,請按 ctrl + a d
。
建立巢狀會話
當我們執行 screen
命令時,它將為我們建立一個會話。但是,我們可以建立巢狀會話(會話內的會話)。
首先,建立一個新會話或連上已開啟的會話。然後我將建立一個名為 nested
的新會話。
screen -S nested
現在,在會話中按 Ctrl + a
和 c
建立另一個會話。只需重複此操作即可建立任意數量的巢狀 Screen 會話。每個會話都將分配一個號碼。號碼將從 0
開始。
你可以按 Ctrl + n
移動到下一個會話,然後按 Ctrl + p
移動到上一個會話。
以下是管理巢狀會話的重要鍵盤快捷鍵列表。
Ctrl + a "
- 列出所有會話Ctrl + a 0
- 切換到會話號 0Ctrl + a n
- 切換到下一個會話Ctrl + a p
- 切換到上一個會話Ctrl + a S
- 將當前區域水平分割為兩個區域Ctrl + a l
- 將當前區域垂直分割為兩個區域Ctrl + a Q
- 關閉除當前會話之外的所有會話Ctrl + a X
- 關閉當前會話Ctrl + a \
- 終止所有會話並終止 ScreenCtrl + a ?
- 顯示鍵繫結。要退出,請按回車 #### 鎖定會話
Screen 有一個鎖定會話的選項。為此,請按 Ctrl + a
和 x
。 輸入你的 Linux 密碼以鎖定。
Screen used by sk <sk> on ubuntuserver.
Password:
記錄會話
你可能希望記錄 Screen 會話中的所有內容。為此,只需按 Ctrl + a
和 H
即可。
或者,你也可以使用 -L
引數啟動新會話來啟用日誌記錄。
screen -L
從現在開始,你在會話中做的所有活動都將記錄並儲存在 $HOME
目錄中名為 screenlog.x
的檔案中。這裡,x
是一個數字。
你可以使用 cat
命令或任何文字檢視器檢視日誌檔案的內容。
記錄 Screen 會話
終止 Screen 會話
如果不再需要會話,只需殺死它。要殺死名為 senthil
的脫離會話:
screen -r senthil -X quit
或:
screen -X -S senthil quit
或:
screen -X -S 29415 quit
如果沒有開啟的會話,你將看到以下輸出:
$ screen -ls
No Sockets found in /run/screens/S-sk.
更多細節請參照 man 手冊頁:
$ man screen
還有一個名為 Tmux 的類似的命令列實用程式,它與 GNU Screen 執行相同的工作。要了解更多資訊,請參閱以下指南。
資源
via: https://www.ostechnix.com/screen-command-examples-to-manage-multiple-terminal-sessions/
作者:sk 選題:lujun9972 譯者:wxy 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- screen 命令及其示例
- 如何在Linux終端同時執行多個Linux命令Linux
- Linux終端會話實時共享(kibitz)Linux會話
- 給新手的 20 多個 FFmpeg 命令示例
- MacOS的7個便捷的終端命令Mac
- Asciinema:在雲端記錄並分享你的終端會話ASCII會話
- Linux screen命令Linux
- 11個炫酷的Linux終端命令大全Linux
- 會話管理會話
- Mac 常用終端命令Mac
- Mac終端命令大全Mac
- 同一會話中的多個 WebRequest會話Web
- 在 Linux 上記錄和重放終端會話活動Linux會話
- Kali Linux開啟多個終端視窗Linux
- LINUX命令列終端提示符多種實用技巧!Linux命令列
- 11個讓你吃驚的Linux終端命令Linux
- (轉)Git常用終端命令Git
- MAC 終端 命令 記錄Mac
- MAC常用終端命令列Mac命令列
- 前端常用的終端命令前端
- Linux screen 命令詳解Linux
- linux之screen命令使用Linux
- 8個Date命令使用示例
- Tmux 終端命令列介紹UX命令列
- 終端自動補全命令
- 【Linux】命令終端美化優化Linux優化
- 使用 Terminator 在一個視窗中執行多個終端
- Linux獲取10個你最常用的終端命令列表Linux命令列
- ddgr:一個從終端搜尋 DuckDuckGo 的命令列工具Go命令列
- 收藏 | 關於Mac Dock的10 個隱藏終端命令Mac
- 從零搭建一個IdentityServer——會話管理與登出IDEServer會話
- MAC:GitLab簡單終端命令操作MacGitlab
- 重啟和關閉 Linux 系統的 6 個終端命令Linux
- Linux 任務後臺執行軟體【即:終端複用器】之---screenLinux
- 多輪對話之對話管理(Dialog Management)
- #魔術方法(會話管理)會話
- Dockly:從終端管理 Docker 容器Docker
- 資料庫會話數量過多,定期清理inactive會話資料庫會話