linux screen命令的使用

參考鏈接:https://blog.csdn.net/weixin_42651205/article/details/83790666
https://blog.csdn.net/yizhang_ml/article/details/79632316

一、screen命令是什么?

Screen是一個(gè)可以在多個(gè)進(jìn)程之間多路復(fù)用一個(gè)物理終端的全屏窗口管理器。Screen中有會(huì)話的概念,用戶可以在一個(gè)screen會(huì)話中創(chuàng)建多個(gè)screen窗口,在每一個(gè)screen窗口中就像操作一個(gè)真實(shí)的telnet/SSH連接窗口那樣。

二、如何安裝screen命令?

除部分精簡(jiǎn)的系統(tǒng)或者定制的系統(tǒng)大部分都安裝了screen命令,如果沒有安裝,CentOS系統(tǒng)可以執(zhí)行:yum install screen

Debian/Ubuntu系統(tǒng)執(zhí)行:apt-get install screen

三、screen命令使用方法?

1、常用的使用方法

用來解決文章開始我們遇到的問題,比如在安裝lnmp時(shí)。

1.1 創(chuàng)建screen會(huì)話

可以先執(zhí)行:screen -S test,screen就會(huì)創(chuàng)建一個(gè)名字為test的會(huì)話。

1.2 暫時(shí)離開,保留screen會(huì)話中的任務(wù)或程序

當(dāng)需要臨時(shí)離開時(shí)(會(huì)話中的程序不會(huì)關(guān)閉,仍在運(yùn)行)可以用快捷鍵Ctrl+a d(即按住Ctrl,依次再按a,d)

1.3 恢復(fù)screen會(huì)話

當(dāng)回來時(shí)可以再執(zhí)行執(zhí)行:screen -r test即可恢復(fù)到離開前創(chuàng)建的test會(huì)話的工作界面。如果忘記了,或者當(dāng)時(shí)沒有指定會(huì)話名,可以執(zhí)行:screen -ls screen會(huì)列出當(dāng)前存在的會(huì)話列表,如下圖:

image.png

11987.test即為剛才的screen創(chuàng)建的test會(huì)話,目前已經(jīng)暫時(shí)退出了test會(huì)話,所以狀態(tài)為Detached,當(dāng)使用screen -r test后狀態(tài)就會(huì)變?yōu)锳ttached,11987是這個(gè)screen的會(huì)話的進(jìn)程ID,恢復(fù)會(huì)話時(shí)也可以使用:screen -r 11987

【注意】有時(shí)在恢復(fù) screen 時(shí)會(huì)出現(xiàn) There is no screen to be resumed matching ****,遇到時(shí)輸入命令:screen -d test

1.4 關(guān)閉screen的會(huì)話

執(zhí)行:exit ,會(huì)提示:[screen is terminating],表示已經(jīng)成功退出screen會(huì)話。

2、遠(yuǎn)程演示

首先演示者先在服務(wù)器上執(zhí)行 screen -S test 創(chuàng)建一個(gè)screen會(huì)話,觀眾可以鏈接到遠(yuǎn)程服務(wù)器上執(zhí)行screen -x test 觀眾屏幕上就會(huì)出現(xiàn)和演示者同步。

3、常用快捷鍵

Ctrl+a c :在當(dāng)前screen會(huì)話中創(chuàng)建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一個(gè)窗口
Ctrl+a p :上一個(gè)窗口
Ctrl+a 0-9 :在第0個(gè)窗口和第9個(gè)窗口之間切換

用 screen -ls, 顯式當(dāng)前狀態(tài)為Attached, 但當(dāng)前沒有用戶登陸些會(huì)話。screen此時(shí)正常狀態(tài)應(yīng)該為(Detached)
此時(shí)用screen -r ,怎么也登不上。最后找到解決方法:screen -D -r <session-id>
-D -r 先踢掉前一用戶,再登陸。

四、具體使用如下

我們可以使用screen -S u-net創(chuàng)建一個(gè)叫做u-net的session,這時(shí)我們要進(jìn)入該session,需要使用screen -r u-net進(jìn)入到該session中,此時(shí)就可以在該session里進(jìn)行操作了,如運(yùn)行程序。之后我們可以使用Ctrl + a +d命令將該session丟到后臺(tái)進(jìn)行處理。

注:

screen -S yourname -> 新建一個(gè)叫yourname的session
screen -ls -> 列出當(dāng)前所有的session
screen -r yourname -> 回到y(tǒng)ourname這個(gè)session
screen -d yourname -> 遠(yuǎn)程detach某個(gè)session
screen -d -r yourname -> 結(jié)束當(dāng)前session并回到y(tǒng)ourname這個(gè)session
Ctrl-a d -> detach,暫時(shí)離開當(dāng)前session,將目前的 screen session (可能含有多個(gè) windows) 丟到后臺(tái)執(zhí)行,并會(huì)回到還沒進(jìn) screen 時(shí)的狀態(tài),此時(shí)在 screen session 里,每個(gè) window 內(nèi)運(yùn)行的 process (無論是前臺(tái)/后臺(tái))都在繼續(xù)執(zhí)行,即使 logout 也不影響。 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容