banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

終端多路複用器screen工具使用記錄

概述#

screen 是一個強大的終端多路復用器,允許你在一個物理終端上運行多個全屏窗格(虛擬終端)。這是特別有用的工具,尤其是在需要長期運行進程或者在遠程會話中保持會話不被斷開的情況下。screen 可以讓開啟的應用程序在後台運行。

安裝#

linux 下安裝

sudo apt install screen

mac 下安裝

brew install screen

參數#

選項描述
-4僅將主機名解析為 IPv4 地址。
-6僅將主機名解析為 IPv6 地址。
-A -[r|R]適應所有窗口以適應新的顯示寬度和高度。
-c file讀取配置文件而不是 '.screenrc'。
-d (-r)分離正在運行的 screen(並在此處重新連接)。
-dmS name以守護進程模式啟動:在分離模式下進行 screen 會話。
-D (-r)分離並登出遠程連接(並在此處重新連接)。
-D -RR執行所需的操作以獲取 screen 會話。
-f開啟流量控制,-fn = 關閉,-fa = 自動。
-h lines設置滾動歷史緩衝區的大小。
-i當流量控制開啟時,更早地中斷輸出。
-l開啟登錄模式(更新 /var/run/utmp),-ln = 關閉。
-ls [match]什麼都不做,只列出我們的 SockDir [在可能的匹配上]。
-L打開輸出日誌。
-Logfile file設置日誌文件名稱。
-m忽略 $STY 變量,創建一個新的 screen 會話。
-O選擇最佳輸出而不是精確的 vt100 仿真。
-p window如果存在,預選命名窗口。
-q安靜啟動。如果失敗則退出並返回非零返回碼。
-r [session]重新連接到分離的 screen 進程。
-R如果可能,重新連接,否則啟動新會話。
-s shell執行的 shell,而不是 $SHELL。
-S sockname將此會話命名為<pid>.sockname,而不是<pid>.<tty>.<host>
-t title設置標題。(窗口的名稱)。
-U告訴 screen 使用 UTF-8 編碼。
-x附加到未分離的 screen。(多顯示模式)。
-X在指定會話中執行<cmd>作為 screen 命令。

案例#

  • 啟動一個新的 screen 會話
screen
  • 給 screen 會話命名,方便會話管理
screen -S <name>
  • detached (分離) 正在運行的 screen 會話,放至後台(會話環境中操作)
ctrl + a; d

image

  • 列出正在運行的 screen 會話
screen -ls

image

  • 指定 PID 重新連接到運行的 screen
screen -r <pid>

image

  • 指定名稱重新連接到運行的 screen
screen -r <name>

image

  • 鎖定 screen 會話
ctrl + a; x

需要輸入密碼才能打開會話

  • 殺死 detached screen 會話
screen -S <name-or-pid> -X kill

image

  • 退出 detached screen 會話
screen -S <name-or-pid> -X quit

image

常用的一些快捷鍵#

  • 在當前會話中創建一個新窗口
ctrl + a;c

切換窗口

切換到下一個窗口:

ctrl-a;n

切換到上一個窗口:

ctrl-a;p

列出所有窗口:

ctrl-a;w

殺掉窗口

關閉當前窗口:

Ctrl-a;k

重命名窗口

重命名當前窗口:

Ctrl-a;A

分屏顯示

水平分屏:

Ctrl-a;S

垂直分屏(較新的 screen 版本支持):

Ctrl-a;|

切換到下一個分屏:

Ctrl-a;TAB

關閉當前分屏:

Ctrl-a;X

實用案例#

遠程會話#

如果通過 ssh 遠程伺服器進行操作,需要保持會話不中斷,可以使用 screen:

ssh user@server_ip
screen -S remotesession

在 screen 會話中進行操作,即使網絡連接中斷,你的會話也會保持運行。重新建立連接後可以重新連接:

ssh user@server_ip
screen -r remotesession

多任務處理#

在同一個 screen 會話中處理多個任務:screen -S multitask

在第一個窗口中運行一個任務,例如監控系統日誌:tail -f /var/log/syslog

創建新窗口:Ctrl-a;c

在新窗口中進行其他任務,例如編輯文件:vim /etc/hosts

通過 Ctrl-a;nCtrl-a;p 在兩者之間切換。

退出 Screen 會話#

通過exit或者Ctrl-d關閉所有窗口後,screen 會話會自動結束。

封面圖來自:https://wallhaven.cc/w/x6yzoz

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。