首頁  >  文章  >  運維  >  Linux screen指令如何使用

Linux screen指令如何使用

PHPz
PHPz轉載
2023-05-23 18:17:294806瀏覽

一、screen指令簡介

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)的新(全螢幕)視窗、關閉目前視窗、查看活動視窗清單、開啟和關閉輸出日誌、在視窗之間複製文字、查看滾動記錄、在視窗之間切換,等等。所有視窗都完全獨立運行其程式。當視窗目前不可見時,甚至當整個螢幕會話與使用者終端分離時,程式仍繼續運作。

二、使用範例

1、安裝screen指令

#[root@s145]~# yum install -y screen
Installed:
screen.x86_64 0:4.1.0-0.27.20120314git3c2946.el7_9
Complete!

#2、列出目前所有的session

[root@s145] ~# screen -ls
No Sockets found in /var/run/screen/S-root.

3、建立一個新的視窗

[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]~

#4、退出目前視窗

  可以使用ctrl a ,然後輸入d,退出目前窗口,也可以使用screen -d退出目前窗口。如果要結束只視窗使用exit。

Linux screen指令如何使用

Linux screen指令如何使用

5、重新連接視窗

  使用screen -r id或名稱重新連接會話,重新連線會話前要求會話的狀態為Detached。

Linux screen指令如何使用

Linux screen指令如何使用

Linux screen指令如何使用

#6、清除dead狀態視窗

當會話視窗結束後,進程狀態變為死亡且無法連接,此時可以使用命令"screen -wipe"來清除會話視窗。

Linux screen指令如何使用

7、會話鎖定與解鎖

輸入ctl a s鎖定會話,鎖定之後輸入任何內容畫面都無反應,輸入ctl a q之後解鎖,雖然螢幕鎖定的時候無反應但是會接受輸入的命令,解鎖後會全部執行,切勿輸入危險命令,所以建議使用ctl a x鎖定。

Linux screen指令如何使用

輸入ctl a x鎖定會話,需要輸入使用者密碼後才可以解鎖。

Linux screen指令如何使用

8、會話共享

Linux screen指令如何使用

Linux screen指令如何使用

#9、給screen視窗發送指令

[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

Linux screen指令如何使用

Linux screen指令如何使用

##10、螢幕分割畫面

使用快速鍵分割畫面正常,但分割畫面出來的都無法輸入指令,如果知道的兄弟可以留言告知下原因,求指點,謝謝!

Linux screen指令如何使用

11、實作範例

寫一個持續輸出的腳本

[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腳本

Linux screen指令如何使用

在其他會話使echotest視窗離線

[root@s145]~# screen -d echotest
[3405.echotest detached.]

Linux screen指令如何使用

重連會話

Linux screen指令如何使用

#三、使用語法及參數說明

1、使用語法

#用法:screen [-opts] [cmd [args]]
或者:screen -r [host.tty]

2、參數說明

##參數說明-4僅將主機名稱解析為IPv4位址。 -6僅將主機名稱解析為IPv6位址。 -a強制將所有功能放入每個視窗的termcap。 -A-[rr]#-c檔讀取設定檔而不是’。 screenrc’。 -d(-r)#分離別處運行的螢幕(並在此處重新連接)。 -dmS名稱作為守護程式啟動:分離模式下的螢幕會話。 -D(-r)#分離並登出遠端(並在此處重新連接)。 -D-RR做任何需要的事情來獲得螢幕會話。 -e xy更改指令字元。 -f流量控制打開,-fn=關閉,-fa=自動。 -h行設定回滾歷史緩衝區的大小。 -i流量控制開啟時,中斷輸出更快。 -l登入模式開啟(更新/var/run/utmp),-ln=off。 -ls[match]#什麼都不做,只列出我們的SockDir[關於可能的匹配],同-list-list什麼都不做,只列出我們的SockDir[關於可能的匹配]。 -L開啟輸出日誌記錄。 -m忽略$STY變量,建立一個新的螢幕會話。 -O選擇最佳輸出,而不是精確的vt100模擬。 -p windows如果命名視窗存在,則預選該視窗。 -q安靜啟動。如果不成功,則使用非零回傳代碼退出。 -Q指令將向查詢程序的標準輸出發送回應。 -r[session]重新連接到分離的螢幕進程。 -R如果可能,重新連接,否則啟動新會話。 -s shell要執行的shell,而不是$shell。 -S sockname將此會話命名為。 sockname而不是。 -t title設定標題。 (視窗名稱)。 -T term將術語用作windows的$term,而不是「螢幕」。 -U告訴螢幕使用UTF-8編碼。 -v列印「螢幕版本4.01.00devel(GNU)2006年5月2日」。 -wipe[match]什麼都不做,只需清理SockDir[可能的符合項目]。 -x連接到未分離的螢幕上。 (多顯示模式)。 -X在指定會話中執行為螢幕指令。
#參數
3、Screen指令中用到的快速鍵

  • #Ctrl a c :建立視窗

  • Ctrl a w :視窗清單

  • Ctrl a n :下一個視窗

  • Ctrl a p :上一個視窗

  • Ctrl a 0-9 :在第0個視窗和第9個視窗之間切換

  • Ctrl a K(大寫) :關閉目前窗口,並且切換到下一個視窗(當退出最後一個視窗時,該終端自動終止,並且退回到原始shell狀態)

  • exit :關閉目前窗口,並且切換到下一個視窗(當退出最後一個視窗時,該終端自動終止,並且退回到原始shell狀態)

  • Ctrl a d :退出目前終端,返回載入screen前的shell指令狀態

以上是Linux screen指令如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除