Linux中screen命令及使用方法
Screen簡(jiǎn)介
Screen是一款由GNU計(jì)劃開(kāi)發(fā)的用于命令行終端切換的自由軟件。用戶(hù)可以通過(guò)該軟件同時(shí)連接多個(gè)本地或遠(yuǎn)程的命令行會(huì)話,并在其間自由切換。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了統(tǒng)一的管理多個(gè)會(huì)話的界面和相應(yīng)的功能。
官方網(wǎng)址:http://www.gnu.org/software/screen/
GUN Screen:

在Screen環(huán)境下,所有的會(huì)話都獨(dú)立的運(yùn)行,并擁有各自的編號(hào)、輸入、輸出和窗口緩存。用戶(hù)可以通過(guò)快捷鍵在不同的窗口下切換,并可以自由的重定向各個(gè)窗口的輸入和輸出。
Screen語(yǔ)法
$> screen [-AmRvx -ls -wipe][-d <作業(yè)名稱(chēng)>][-h <行數(shù)>][-r <作業(yè)名稱(chēng)>][-s ][-S <作業(yè)名稱(chēng)>] -A 將所有的視窗都調(diào)整為目前終端機(jī)的大小。 -d <作業(yè)名稱(chēng)> 將指定的screen作業(yè)離線。 -h <行數(shù)> 指定視窗的緩沖區(qū)行數(shù)。 -m 即使目前已在作業(yè)中的screen作業(yè),仍強(qiáng)制建立新的screen作業(yè)。 -r <作業(yè)名稱(chēng)> 恢復(fù)離線的screen作業(yè)。 -R 先試圖恢復(fù)離線的作業(yè)。若找不到離線的作業(yè),即建立新的screen作業(yè)。 -s 指定建立新視窗時(shí),所要執(zhí)行的shell。 -S <作業(yè)名稱(chēng)> 指定screen作業(yè)的名稱(chēng)。 -v 顯示版本信息。 -x 恢復(fù)之前離線的screen作業(yè)。 -ls或--list 顯示目前所有的screen作業(yè)。
screen重要性
screen的重要性,主要是體現(xiàn)在它可以方便的在服務(wù)器上一直運(yùn)行,只要服務(wù)器沒(méi)有宕機(jī),沒(méi)有斷電它就可以做到不用停止。其實(shí)后端工程師經(jīng)常會(huì)遇到,要通過(guò)執(zhí)行腳本處理一些數(shù)據(jù),但這個(gè)腳本可能需要執(zhí)行半天或者幾天,screen就是最佳選擇了,過(guò)一段時(shí)間登錄到服務(wù)器上查看下運(yùn)行狀態(tài),是否運(yùn)行完成。沒(méi)有完成掛起來(lái)繼續(xù)運(yùn)行。
screen 常用的參數(shù)
screen 命令參數(shù)很多,我們只看下平常用的比較多的幾個(gè)
| 參數(shù) | 說(shuō)明 |
|---|---|
| ls | 列出當(dāng)前所有的回話 |
| S | 大寫(xiě)的S,新建一個(gè)名稱(chēng)是xxx的會(huì)話 |
| r | 通過(guò)序號(hào)連接進(jìn)程會(huì)話 |
| d | detach斷開(kāi)某個(gè)會(huì)話 |
| D | 與-d命令相同,但是會(huì)logout原來(lái)在screen里的用戶(hù) |
在每個(gè)screen 會(huì)話下,所有命令都以 ctrl+a開(kāi)始的
| 參數(shù) | 說(shuō)明 |
|---|---|
| ctrl+a d | detach會(huì)話,將目前的 screen session 丟到后臺(tái)執(zhí)行,并會(huì)回到還沒(méi)進(jìn) screen 時(shí)的狀態(tài),screen 都在繼續(xù)執(zhí)行,即使 logout 也不影響后臺(tái)的執(zhí)行 |
| ctrl+a k | 強(qiáng)行關(guān)閉當(dāng)前的窗口 |
| ctrl+a z | 把當(dāng)前的會(huì)話放到后臺(tái)執(zhí)行,用fg命令可以調(diào)回來(lái) |
screen 使用
先模擬一個(gè)需要執(zhí)行很長(zhǎng)時(shí)間的腳本代碼
test.php <?php sleep(10000); echo 111; ?>
程序休眠10000秒之后輸出 1111
先創(chuàng)建一個(gè)screen,然后執(zhí)行它之后,退出登錄狀態(tài)
screen -S test php test.php
創(chuàng)建名為test的screen,進(jìn)入screen之后執(zhí)行test.php。然后讓腳本在 screen里面一直執(zhí)行,按 Ctrl+a d讓腳本在screen后臺(tái)執(zhí)行。
screen -S test [detached from 3934.test]
exit 退出登錄,等一段時(shí)間然后再登錄上去,查看下腳本是否還在執(zhí)行
ssh screen -ls There are screens on: 3934.test (02/25/2020 10:27:06 PM) (Detached)
名為test的screen ID 為3934,連接該screen并進(jìn)入
screen -r 3934 php test.php
可以看到 test.php的腳本還在執(zhí)行。
執(zhí)行ctrl+a z,然腳本在后臺(tái)執(zhí)行,然后再使用fg調(diào)到前臺(tái)
[1]+ Stopped screen -r 3934 執(zhí)行fg php test.php
再看下screen -d 和 -D
重新打開(kāi)一個(gè)窗口,ssh之后,執(zhí)行
screen -d 3934 [3934.test detached.]
然后查看前一個(gè)窗口,看看是否斷開(kāi)了screen
screen -r 3934 [remote detached from 3934.test]
再看下,-D,在第一個(gè)窗口
screen -r 3934
第二個(gè)窗口執(zhí)行-D
screen -D 3934 [3934.test power detached.]
再看第一個(gè)窗口已經(jīng)被強(qiáng)制退出登錄了。
screen -r 3934 [remote power detached from 3934.test] Connection to 127.0.0.1 closed.
作為開(kāi)發(fā)人員,其實(shí)平常開(kāi)發(fā)中只需要知道三個(gè)命令就能滿足90%以上的使用范圍了
screen -ls screen -S screen -R ctrl+a d
screen常用操作
創(chuàng)建會(huì)話(-m 強(qiáng)制):
screen -dmS session_name # session_name session名稱(chēng)
關(guān)閉會(huì)話:
screen -X -S [session # you want to kill] quit
查看所有會(huì)話:
screen -ls
進(jìn)入會(huì)話:
screen -r session_name
總結(jié)
到此這篇關(guān)于Linux中的screen命令及使用方法的文章就介紹到這了,更多相關(guān)linux screen命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Ubuntu系統(tǒng)端口查詢(xún)與管理的詳細(xì)分析
事情起因是寶塔的CPU負(fù)載過(guò)大,重啟服務(wù)進(jìn)程之后還是爆,后續(xù)發(fā)現(xiàn)是端口被占用,導(dǎo)致服務(wù)重啟不起來(lái),所以本文給大家介紹了Ubuntu系統(tǒng)端口查詢(xún)與管理的詳細(xì)分析,需要的朋友可以參考下2024-11-11
在linux系統(tǒng)下安裝兩個(gè)nginx的簡(jiǎn)單方法
下面小編就為大家?guī)?lái)一篇在linux系統(tǒng)下安裝兩個(gè)nginx的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12
淺談Linux vfork與fork簡(jiǎn)單對(duì)比分析
本篇文章主要介紹了淺談Linux vfork與fork簡(jiǎn)單對(duì)比分析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Linux取消目錄的執(zhí)行權(quán)限的具體步驟
用戶(hù)對(duì)一個(gè)文件或目錄具有訪問(wèn)權(quán)限,這些訪問(wèn)權(quán)限決定了誰(shuí)能訪問(wèn),以及如何范圍這些文件和目錄,本文給大家介紹了Linux取消目錄的執(zhí)行權(quán)限的具體步驟,并通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-10-10
Linux QT Kit丟失及Version為空問(wèn)題解決方案
這篇文章主要介紹了Linux QT Kit丟失及Version為空問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
linux環(huán)境下安裝PHP的OpenSSL擴(kuò)展的方法講解
下面小編就為大家分享一篇linux環(huán)境下安裝PHP的OpenSSL擴(kuò)展的方法講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03

