Linux?screen命令使用示例
一、screen命令簡(jiǎn)介
Screen是一個(gè)全屏窗口管理器,它在多個(gè)進(jìn)程(通常是交互式shell)之間多路傳輸物理終端。每個(gè)虛擬終端提供DEC VT100終端的功能,以及ANSI X3的幾個(gè)控制功能。64(ISO 6429)和ISO 2022標(biāo)準(zhǔn)(例如,插入/刪除行和支持多個(gè)字符集)。每個(gè)虛擬終端都有一個(gè)回滾歷史緩沖區(qū)和一個(gè)復(fù)制粘貼機(jī)制,允許用戶在窗口之間移動(dòng)文本區(qū)域。當(dāng)調(diào)用screen時(shí),它會(huì)創(chuàng)建一個(gè)包含shell(或指定命令)的窗口,然后避開您的方式,以便您可以正常使用該程序。然后,您可以隨時(shí)創(chuàng)建包含其他程序(包括更多shell)的新(全屏)窗口、關(guān)閉當(dāng)前窗口、查看活動(dòng)窗口列表、打開和關(guān)閉輸出日志、在窗口之間復(fù)制文本、查看滾動(dòng)歷史記錄、在窗口之間切換,等等。所有窗口都完全獨(dú)立運(yùn)行其程序。當(dāng)窗口當(dāng)前不可見時(shí),甚至當(dāng)整個(gè)屏幕會(huì)話與用戶終端分離時(shí),程序仍繼續(xù)運(yùn)行。
二、使用示例
1、安裝screen命令
[root@s145]~# yum install -y screen
Installed:
screen.x86_64 0:4.1.0-0.27.20120314git3c2946.el7_9
Complete!
2、列出當(dāng)前所有的session
[root@s145]~# screen -ls
No Sockets found in /var/run/screen/S-root.
3、創(chuàng)建一個(gè)新的窗口
[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、退出當(dāng)前窗口
可以使用ctrl+a,然后輸入d,退出當(dāng)前窗口,也可以使用screen -d退出當(dāng)前窗口。如果要結(jié)束只窗口使用exit。
5、重新連接窗口
使用screen -r id或者名稱重新連接會(huì)話,重新連接會(huì)話前要求會(huì)話的狀態(tài)為Detached。
6、清除dead狀態(tài)窗口
如果會(huì)話窗口被kill,狀態(tài)轉(zhuǎn)為dead無法連接,可以使用screen -wipe命令清除會(huì)話窗口。
7、會(huì)話鎖定與解鎖
輸入ctl+a s鎖定會(huì)話,鎖定之后輸入任何內(nèi)容屏幕都無反應(yīng),輸入ctl+a q之后解鎖,雖然屏幕鎖定的時(shí)候無反應(yīng)但是會(huì)接受輸入的命令,解鎖后會(huì)全部執(zhí)行,切勿輸入危險(xiǎn)命令,所以建議使用ctl+a x鎖定。
輸入ctl+a x鎖定會(huì)話,需要輸入用戶密碼后才可以解鎖。
8、會(huì)話共享
9、給screen窗口發(fā)送命令
[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
10、屏幕分屏
使用快捷鍵分屏正常,但是分屏出來的都無法輸入命令,如果知道的兄弟可以留言告知下原因,求指點(diǎn),謝謝!
11、實(shí)踐示例
編寫一個(gè)持續(xù)輸出的腳本
[root@s145]~# cat test.sh #!/bin/bash \ while true do echo "輸出`date +%F-%T`" sleep 10 done
創(chuàng)建一個(gè)screen窗口
[root@s145]~# screen -S echotest
執(zhí)行test.sh腳本
在其他會(huì)話使echotest窗口離線
[root@s145]~# screen -d echotest
[3405.echotest detached.]
重連會(huì)話
三、使用語法及參數(shù)說明
1、使用語法
用法:screen [-opts] [cmd [args]]
或者:screen -r [host.tty]
2、參數(shù)說明
參數(shù) | 參數(shù)說明 |
---|---|
-4 | 僅將主機(jī)名解析為IPv4地址。 |
-6 | 僅將主機(jī)名解析為IPv6地址。 |
-a | 強(qiáng)制將所有功能放入每個(gè)窗口的termcap。 |
-A-[r | r] |
-c文件 | 讀取配置文件而不是’。screenrc’。 |
-d(-r) | 分離別處運(yùn)行的屏幕(并在此處重新連接)。 |
-dmS名稱 | 作為守護(hù)進(jìn)程啟動(dòng):分離模式下的屏幕會(huì)話。 |
-D(-r) | 分離并注銷遠(yuǎn)程(并在此處重新連接)。 |
-D-RR | 做任何需要的事情來獲得屏幕會(huì)話。 |
-e xy | 更改命令字符。 |
-f | 流量控制打開,-fn=關(guān)閉,-fa=自動(dòng)。 |
-h行 | 設(shè)置回滾歷史緩沖區(qū)的大小。 |
-i | 流量控制開啟時(shí),中斷輸出更快。 |
-l | 登錄模式打開(更新/var/run/utmp),-ln=off。 |
-ls[match] | 什么都不做,只列出我們的SockDir[關(guān)于可能的匹配],同-list |
-list | 什么都不做,只列出我們的SockDir[關(guān)于可能的匹配]。 |
-L | 打開輸出日志記錄。 |
-m | 忽略$STY變量,創(chuàng)建一個(gè)新的屏幕會(huì)話。 |
-O | 選擇最佳輸出,而不是精確的vt100模擬。 |
-p windows | 如果命名窗口存在,則預(yù)選該窗口。 |
-q | 安靜啟動(dòng)。如果不成功,則使用非零返回代碼退出。 |
-Q | 命令將向查詢進(jìn)程的標(biāo)準(zhǔn)輸出發(fā)送響應(yīng)。 |
-r[session] | 重新連接到分離的屏幕進(jìn)程。 |
-R | 如果可能,重新連接,否則啟動(dòng)新會(huì)話。 |
-s shell | 要執(zhí)行的shell,而不是$shell。 |
-S sockname | 將此會(huì)話命名為。sockname而不是<主機(jī)>。 |
-t title | 設(shè)置標(biāo)題。(窗口名稱)。 |
-T term | 將術(shù)語用作windows的$term,而不是“屏幕”。 |
-U | 告訴屏幕使用UTF-8編碼。 |
-v | 打印“屏幕版本4.01.00devel(GNU)2006年5月2日”。 |
-wipe[match] | 什么都不做,只需清理SockDir[可能的匹配項(xiàng)]。 |
-x | 連接到未分離的屏幕上。(多顯示模式)。 |
-X | 在指定會(huì)話中作為屏幕命令執(zhí)行。 |
3、Screen命令中用到的快捷鍵
- Ctrl+a c :創(chuàng)建窗口
- Ctrl+a w :窗口列表
- Ctrl+a n :下一個(gè)窗口
- Ctrl+a p :上一個(gè)窗口
- Ctrl+a 0-9 :在第0個(gè)窗口和第9個(gè)窗口之間切換
- Ctrl+a K(大寫) :關(guān)閉當(dāng)前窗口,并且切換到下一個(gè)窗口(當(dāng)退出最后一個(gè)窗口時(shí),該終端自動(dòng)終止,并且退回到原始shell狀態(tài))
- exit :關(guān)閉當(dāng)前窗口,并且切換到下一個(gè)窗口(當(dāng)退出最后一個(gè)窗口時(shí),該終端自動(dòng)終止,并且退回到原始shell狀態(tài))
- Ctrl+a d :退出當(dāng)前終端,返回加載screen前的shell命令狀態(tài)
到此這篇關(guān)于Linux screen命令使用示例的文章就介紹到這了,更多相關(guān)Linux screen命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell腳本經(jīng)典之Fork炸彈的分析與預(yù)防
這篇文章主要給大家介紹了Shell腳本經(jīng)典之Fork炸彈的分析與預(yù)防,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06linux bash shell中case語句的實(shí)例
本文介紹下,在bash shell編程中,有關(guān)case語句的一個(gè)例子,學(xué)習(xí)下case語句的用法,有需要的朋友參考下2013-11-11Linux下使用shell腳本自動(dòng)執(zhí)行腳本文件
這篇文章主要介紹了Linux下使用shell腳本自動(dòng)執(zhí)行腳本文件的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12通過shell腳本對(duì)mysql的增刪改查及my.cnf的配置
這篇文章主要介紹了通過shell腳本對(duì)mysql的增刪改查及my.cnf的配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07通過實(shí)例深入理解linux shell數(shù)組
本文為大家介紹linxu shell中數(shù)組的相關(guān)知識(shí),并舉了很多例子供參考,包括數(shù)組的復(fù)制,計(jì)算,刪除,替換等,是學(xué)習(xí)shell 數(shù)組的不可多得的好文章2013-02-02Shell腳本實(shí)現(xiàn)刪除郵件隊(duì)列
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)刪除郵件隊(duì)列,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02