Screen是一種全螢幕視窗管理器,它可以讓多個進程(通常為互動式shell)在實體終端之間進行多路傳輸。每個虛擬終端都具備DEC VT100終端和ANSI X3的控制功能。 ISO 6429 (64) and ISO 2022 standards (e.g. insertion/deletion of lines and support for multiple character sets)。使用者可以利用每個虛擬終端的回滾歷史緩衝區和複製貼上機制,實現在視窗之間移動文字區域的功能。當呼叫screen時,它會建立一個包含shell(或指定命令)的窗口,然後避開您的方式,以便您可以正常使用程式。然後,您可以隨時建立包含其他程式(包括更多shell)的新(全螢幕)視窗、關閉目前視窗、查看活動視窗清單、開啟和關閉輸出日誌、在視窗之間複製文字、查看滾動記錄、在視窗之間切換,等等。所有視窗都完全獨立運行其程式。當視窗目前不可見時,甚至當整個螢幕會話與使用者終端分離時,程式仍繼續運作。
#[root@s145]~# yum install -y screen
Installed:
screen.x86_64 0:4.1.0-0.27.20120314git3c2946.el7_9
Complete!
[root@s145] ~# screen -ls
No Sockets found in /var/run/screen/S-root.
[root @s145]~# screen -S test
…
[root@s145]~# screen -ls
There is a screen on:
2877.test (Attached)
1 Socket in /var/run/screen/S-root.
[root@s145]~
可以使用ctrl a ,然後輸入d,退出目前窗口,也可以使用screen -d退出目前窗口。如果要結束只視窗使用exit。
使用screen -r id或名稱重新連接會話,重新連線會話前要求會話的狀態為Detached。
當會話視窗結束後,進程狀態變為死亡且無法連接,此時可以使用命令"screen -wipe"來清除會話視窗。
輸入ctl a s鎖定會話,鎖定之後輸入任何內容畫面都無反應,輸入ctl a q之後解鎖,雖然螢幕鎖定的時候無反應但是會接受輸入的命令,解鎖後會全部執行,切勿輸入危險命令,所以建議使用ctl a x鎖定。
輸入ctl a x鎖定會話,需要輸入使用者密碼後才可以解鎖。
[root@s145]~# date && screen -S test -X screen ls > /tmp/1.txt
Tue Jan 11 17:12:24 CST 2022
#[root@ s145]~# screen -S test -X screen sh /root/test.sh
[root@s145]~# cat test.sh #!/bin/bash \ while true do echo "输出`date +%F-%T`" sleep 10 done建立一個screen視窗
[root@s145]~# screen -S echotest執行test.sh腳本 在其他會話使echotest視窗離線
[root@s145]~# screen -d echotest
[3405.echotest detached.]
重連會話
#用法:screen [-opts] [cmd [args]]
或者:screen -r [host.tty]
#參數 | ##參數說明|
---|---|
僅將主機名稱解析為IPv4位址。 | |
僅將主機名稱解析為IPv6位址。 | |
強制將所有功能放入每個視窗的termcap。 | |
r] | |
讀取設定檔而不是’。 screenrc’。 | |
#分離別處運行的螢幕(並在此處重新連接)。 | |
作為守護程式啟動:分離模式下的螢幕會話。 | |
#分離並登出遠端(並在此處重新連接)。 | |
做任何需要的事情來獲得螢幕會話。 | |
更改指令字元。 | |
流量控制打開,-fn=關閉,-fa=自動。 | |
設定回滾歷史緩衝區的大小。 | |
流量控制開啟時,中斷輸出更快。 | |
登入模式開啟(更新/var/run/utmp),-ln=off。 | |
#什麼都不做,只列出我們的SockDir[關於可能的匹配],同-list | |
什麼都不做,只列出我們的SockDir[關於可能的匹配]。 | |
開啟輸出日誌記錄。 | |
忽略$STY變量,建立一個新的螢幕會話。 | |
選擇最佳輸出,而不是精確的vt100模擬。 | |
如果命名視窗存在,則預選該視窗。 | |
安靜啟動。如果不成功,則使用非零回傳代碼退出。 | |
指令將向查詢程序的標準輸出發送回應。 | |
重新連接到分離的螢幕進程。 | |
如果可能,重新連接,否則啟動新會話。 | |
要執行的shell,而不是$shell。 | |
將此會話命名為。 sockname而不是。 | |
設定標題。 (視窗名稱)。 | |
將術語用作windows的$term,而不是「螢幕」。 | |
告訴螢幕使用UTF-8編碼。 | |
列印「螢幕版本4.01.00devel(GNU)2006年5月2日」。 | |
什麼都不做,只需清理SockDir[可能的符合項目]。 | |
連接到未分離的螢幕上。 (多顯示模式)。 | |
在指定會話中執行為螢幕指令。 |
以上是Linux screen指令如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!