Linux screen命令基本用法詳解
背景介紹
在伺服器上搭建一些服務的時候,經常要用到screen命令。這是因為一般情況下我們只會開一個連線伺服器的控制檯,但是某些服務(比如minecraft伺服器)開啟的時候需要佔據一整個控制檯,如果關閉了就會導致程序終止。這就成了類似單程序的效果。而screen命令就是為了能夠在伺服器上開啟多個控制面板(screen),用以容納不同的任務。
正文
1、安裝
$sudo apt-get intstall screen
2、screen介面
screen介面就是當我們進入screen空間下的,佔用了一個程序pid的一個介面。這個介面有他自己的名字,有他自己內部互動的快捷鍵,能夠擁有很多不同的子終端的介面。也可以理解成獨立於預設視窗之外的視窗。注意,是每一個screen介面都能擁有很多的子視窗,而我們的電腦能同時擁有很多不同的screen介面。
3、面向screen級別的命令
(1)新建一個screen :
可以直接輸入screen 來開啟一個帶有預設名字的screen介面,也可以加上 -S 引數來親自制定一個好聽的名字。然後系統就會切進當前的screen了。
(2)檢視當期存在的screen:
輸入screen -ls 可以檢視當前存在的screen 介面,比如:
他會顯示當前的每一個screen介面,對於每一個介面,他的顯示格式是:pid.name (time) (status) ,前面的不解釋,最後的那個狀態有(Attached) 和(Detached) ,表示是否已經連線進來(?其實不太懂這個意思,沒有連線進來那就連線進來唄~有啥必要非得分開看呢。。。不過有一個明顯的區別就是,當你斷開主介面然後重新登入的時候,所有的screen都是顯示Detached的。)
(3)關閉和選擇screen:
想要關閉一個screen 就要先選擇並且進入這個screen。
首先用screen -ls檢視你想要選的screen:
如果他的狀態是Detached的,我們需要輸入screen -r <screen的pid>
,來進入這個screen ,或者screen -rd <screen的名稱>
;
如果他的狀態是Attached的,我們就要輸入 screen -d <screen的pid>
,來使他”Dettached”,然後再輸入screen -r <screen的pid>
,來進入這個screen。(必須先detached,否則是進不去的)
進入了你想要關閉的screen之後,就可以直接輸入exit,或者Ctrl+d,來終止這個介面了。成功終止後,如果有其他處於Attached狀態的screen介面,他就會跳到那個介面中,如果沒有,他就會跳到預設介面上。
(4)清除損壞的screen :
如果由於某些情況導致一個screen的狀態處於Dead(很可能是程式出錯或者強行刪除程序鎖之類的。。),我們無法attached進去,那麼我們只需要輸入screen --wipe
,就可以刪除這些程序了。
(5)刪除某一個screen:
$ screen -X -S 28508 quit