平時常用到Xshell等SSH客戶端連接服務器進行配置工作,當執行的命令耗時過長時,為防止連接中斷,需要依賴終端復用軟件,常用的有screen和tmux。它們都可以實現在單個終端中打開多個登錄會話,復用軟件一個重要的特點是用戶可以在自己打開的多個登錄會話間自由切換(即attach、detach)。
本文對最常使用的終端復用工具screen和tmux進行介紹並比較二者的優缺點。
Tmux
特點:
- 方便定製,可以改變外觀和運行行為
- 會話窗口類似瀏覽器的標籤
- 可以在Mac、Linux、樹莓派等多種系統中運行
- 可在單個終端窗口中創建多個窗格
- 支持Emacs和Vim快捷鍵
使用:
正確安裝tmux後在終端窗口中輸入tmux後,回車,便可進入tmux創建的會話中,此時運行長耗時命令,即使你與服務器間的網絡中斷,也不會影響命令的執行。
tmux會話
- [0] 0:yunwei-op@tomcat-36:~:中括號中0表示當前會話的名字,因為創建會話的時候沒有指定名字,所以顯示為0,緊跟着的0代表窗口的序號,第一個窗口顯示為0
- *:星號表明這個是當前窗口
- tomcat-36:主機名
- 11:06 04-Aug-21:當前時間
實際的工作場景:
創建名為“session-1”的會話,
$ tmux new -s session-1
session-1會話
在當前會話中開啟第二個窗口,“Ctrl-b + c”
單個會話中開啟兩個窗口
當前窗口開啟第二個窗格(pane)並水平放置,“Ctrl-b + %”,對比文件差異時經常使用,
單個窗口中水平開啟兩個窗格
在窗格間切換使用“Ctrl-b + {”和“Ctrl-b + }”。
在窗口間切換使用“Ctrl-b + 窗口號”
退出當前會話(detach操作)使用“Ctrl-b + d”
顯示後台運行的會話:tmux ls
[yunwei-op@tomcat-36 ~]$tmux ls
session-1: 2 windows (created Wed Aug 4 14:56:31 2021) [130x31]可以看到會話“session-1”有兩個窗口(第一個窗口有一個窗格,第二個窗口有兩個窗格)
進入指定會話:tmux attach -t session-name
Screen
屬於GNU項目,對比tmux最大的特點是支持session共享,其他功能和tmux類似。
使用:
和tmux一樣,命令行鍵入“screen”,回車即可進入screen 會話。
顯示幫助信息,“Ctrl-a + ?”
screen的幫助信息
創建命名會話,
$ screen -S session-name脫離當前會話,“Ctrl-a + d”
顯示當前會話,
$ screen -ls重新進入指定的會話,
$ screen -r screen-ID/screen-name將當前窗口水平分割,“Ctrl-a + |”,
水平分割當前會話
可以看到screen和tmux的區別,這時候是兩個窗口,但還是一個會話,輸入“Ctrl-a + Tab”,切到新的窗口,然後輸入“Ctrl-a + c”,創建新的session。
兩個窗口各開一個session
切換會話使用“Ctrl-a + n”和“Ctrl-a + p”。關閉會話,“Ctrl-a + k”。
總結
tmux和screen是常用的會話復用工具,兩者功能類似。tmux基於BSD許可,screen基於GNU GPL許可,相比較而言,tmux使用更加友好,由tmux開啟的窗口下面有豐富的提示信息。screen比tmux最大的優勢是可以支持在不同用戶間進行會話共享。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/272644.html
微信掃一掃
支付寶掃一掃