Screen 是一款由 GNU 開發的命令行終端工具,它提供了從多個終端窗口連接到同一個 shell 會話(會話共享)。當網絡中斷,或終端窗口意外關閉是,中 screen 中運行的程序任然可以運行(系統自帶的終端窗口,當窗口意外關閉時,在該終端窗口中運行的程序也會終止。)。
安裝 screen 工具
it@serverc:~$sudoaptinstallscreen-y
* 在 CentOS 中,你需要先安裝 epel-release 才可以安裝 screen( 在 CentOS 中安裝軟件使用 yum 或者 dnf )
會話共享在 A 主機上創建一個名為 it 的 screen 會話
it@serverc:~$screen-Sit
在 B 主機上,通過 ssh 連接到 A 主機,并查通過 -ls 選項看當前已經存在的 screen 會話
it@workstation:~/[email protected]
[email protected]'spassword:
WelcometoUbuntu20.04.1LTS(GNU/Linux5.4.0-60-genericx86_64)
............
............
Lastlogin:ThuJan1413:57:322021
it@serverc:~$screen-ls
Thereisascreenon:
2107.it(01/14/2107:30:27)(Attached)
1Socketin/run/screen/S-it.
然後加入到該會話
it@serverc:~$screen-xit
這樣就可以兩邊共享一個 screen 會話,不管誰運行什麼命令,另一個都可以看到;
當你需要退出會話時,你可以運行 exit 來退出會話(當運行 exit 時,兩邊都會退出 screen 會話。),也可以通過Ctrl A,D(Ctrl A 然後按 D,退出單個會話)。
當網絡中斷或窗口意外關閉後,任務繼續運行在 Linux 打開兩個終端窗口,我們分部稱他們為 A 窗口和 B 窗口,在 A 窗口中運行 ping
it@workstation:~$ping10.10.10.1
PING10.10.10.1(10.10.10.1)56(84)bytesofdata.
64bytesfrom10.10.10.1:icmp_seq=1ttl=64time=1.21ms
64bytesfrom10.10.10.1:icmp_seq=2ttl=64time=1.22ms
64bytesfrom10.10.10.1:icmp_seq=3ttl=64time=1.19ms
............
............
然後在 B 窗口,運行 ps aux 獲取系統進程,然後通過 grep 進行篩選
it@workstation:~$psaux|grepping
it23360.00.23171448740?Ssl20200:17/usr/libexec/gsd-housekeeping
it1535850.00.012764872pts/3S 14:530:00ping10.10.10.1
it1536460.00.012108736pts/2S 14:560:00grep--color=autoping
我們看到 ping 正在運行
當關掉 A 窗口後,我們再到 B 窗口(此時就隻有一個窗口了)運行之前的 ps aux 命令
it@workstation:~$psaux|grepping
it23360.00.23171448740?Ssl20200:17/usr/libexec/gsd-housekeeping
it1536510.00.0121082964pts/2S 14:570:00grep--color=autoping
此時 ping 命令已經結束了
重新打開一個新的終端窗口,作為 A 窗口,運行 screen
it@serverc:~$screen-Stest
然後在 screen 窗口中運行 ping 命令
it@workstation:~$ping10.10.10.1
PING10.10.10.1(10.10.10.1)56(84)bytesofdata.
64bytesfrom10.10.10.1:icmp_seq=1ttl=64time=1.21ms
64bytesfrom10.10.10.1:icmp_seq=2ttl=64time=1.15ms
64bytesfrom10.10.10.1:icmp_seq=3ttl=64time=1.21ms
............
............
然後關閉 A 窗口,回到 B 窗口,運行 ps aux 命令;
it@workstation:~$psaux|grepping
it23360.00.23171448684?Ssl20200:17/usr/libexec/gsd-housekeeping
it1549640.00.012768940pts/3S 15:020:00ping10.10.10.1
it1549860.00.012108736pts/4S 15:050:00grep--color=autoping
我們發現 ping 命令還在繼續運行
當我們想回到之前的 ping 會話,可以通過 screen -r 恢複會話
it@workstation:~$screen-rtest
* 如果隻有一個 screen 會話,後面的會話名稱可以省略不寫,如果你不知道,或者忘了會話命令,你可以通過 screen -ls 查看當前主機運行的 screen 會有。
上下分屏創建一個 screen 會話
it@serverc:~$screen-Stest
按Ctrl A,然後按Shift S開啟分屏;
按Ctrl A,然後再按Tab,切換到下面屏幕
但此時下面屏幕什麼還沒有,你需要通過Ctrl A,然後按C在下面屏幕中創建終端
這樣我們就可以在下面屏幕執行命令了,如果我們需要在不同的屏幕之間切換,可以通過 按Ctrl A,然後再按Tab來切換。
當需要退出時,我們可以通過 exit 命令退出(在一個屏幕運行 exit 命令後,隻是終端退出了,分屏的狀态并沒有退出,所以你需要通過前面的方法,切換到另一個屏幕上,再次運行 exit 退出)。
個人覺得還是tumx好用,羅布青菜,各有所愛。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!