linux的screen工具下载,Linux终端下的强大工具 - screen
使用telnet或SSH遠(yuǎn)程登錄linux時(shí),如果連接非正常中斷,重新連接時(shí),系統(tǒng)將開(kāi)一個(gè)新的session,無(wú)法恢復(fù)原來(lái)的session。screen命令可以解決這個(gè)問(wèn)題。
Screen工具是一個(gè)終端多路轉(zhuǎn)接器,在本質(zhì)上,這意味著你能夠使用一個(gè)單一的終端窗口運(yùn)行多終端的應(yīng)用。
基本命令:
開(kāi)一個(gè)會(huì)話,并命名為temp:
screen -S
temp
臨時(shí)退出這個(gè)會(huì)話:
ctrl-a d
再次進(jìn)入名為temp的會(huì)話:
screen -r
temp
檢查正在運(yùn)行的會(huì)話:
screen -ls
轉(zhuǎn)一篇不錯(cuò)的文章:
-------------------------------
我發(fā)覺(jué)管理Linux和Unix系統(tǒng)最有利的情況之一就是已經(jīng)有如此得多工具都能夠幫助你完成工作。幾乎任何一個(gè)可以想像的問(wèn)題,都有人花費(fèi)時(shí)間制作出相應(yīng)的處理工具。并且多數(shù)情況下,此類工具都足夠靈活,能夠根據(jù)你所遇到的問(wèn)題被完全更改。對(duì)我來(lái)說(shuō),screen就是這樣一個(gè)工具。
Screen給我留下如此深的印象,感動(dòng)了我,或許是因?yàn)樵谖沂褂肬nix系統(tǒng)工作的前10年中,從來(lái)沒(méi)有聽(tīng)說(shuō)過(guò)它的存在。我浪費(fèi)了大量時(shí)間試圖解決它已經(jīng)解決的各類問(wèn)題。或者,我也許很容易被感動(dòng)。不過(guò)如果screen對(duì)你來(lái)說(shuō)是一個(gè)新東西,或者你已經(jīng)知道她,并想得到它的一些使用技巧,請(qǐng)接著讀下去。
Screen工具是一個(gè)終端多路轉(zhuǎn)接器,在本質(zhì)上,這意味著你能夠使用一個(gè)單一的終端窗口運(yùn)行多終端的應(yīng)用。你現(xiàn)在可能會(huì)想,“有什么了不起,我早就能夠?qū)⒐ぷ鞣旁趕hell的后臺(tái)來(lái)執(zhí)行了?!贝_實(shí),你能夠那樣做,不過(guò)若是程序本身不能夠放入后臺(tái)怎么辦――也就是說(shuō),一些用ncurses寫(xiě)的程序?或者,如果你需要獲得終端的整個(gè)對(duì)話該怎么辦?再有,根據(jù)程序的先決條件,可能同時(shí)運(yùn)行的程序之間會(huì)有影響。
Screen將允許你做到所有的這些事情。你的程序?qū)⒉粫?huì)察覺(jué)到與在單獨(dú)的終端下運(yùn)行有何不同,這將使它們運(yùn)行的很好。這種情況下也沒(méi)有客戶機(jī)或服務(wù)器等“遠(yuǎn)程”工具的概念,只要在系統(tǒng)中安裝了screen工具,你就可以運(yùn)行你想要的工具,并且能夠用screen連接系統(tǒng),也就是說(shuō),你擁有所有你需要的東西。Screen的另一個(gè)好處是它由GNU組織撰寫(xiě)和維護(hù),因此,它能夠在可以想像的到的幾乎所有的Unix平臺(tái)上使用。(對(duì)于那些管理多種不同類型系統(tǒng)的人來(lái)說(shuō),這非常關(guān)鍵,因?yàn)樗馕吨隳軌蛟诓煌钠脚_(tái)上使用相同的工具。)
Screen工作的例子
在我家里,我運(yùn)行了一個(gè)低功率的FM發(fā)射器以廣播我的音樂(lè)收藏。(發(fā)射器相比無(wú)線連接并不貴,它能夠讓我在院子里使用隨身聽(tīng)仍然聽(tīng)到我的頻道。)我使用名片mp3blaster驅(qū)動(dòng)發(fā)射器,這是一個(gè)非常好的基于控制臺(tái)的MP3播放器,能夠支持巨大的MP3收集。一旦它開(kāi)始運(yùn)行,mp3blaster的信息看起來(lái)就像下圖一樣:
迄今為止,它都是如此的優(yōu)秀:我能夠打開(kāi)一個(gè)窗口,開(kāi)始mp3balster,整天廣播音樂(lè)。但是如果我坐在樓上我的筆記本面前,并且不詳跑到樓下改變播放列表該怎么辦?很簡(jiǎn)單,我只需要在一個(gè)screen對(duì)話下啟動(dòng)mp3blaster,然后能夠從任何擁有shell的系統(tǒng)訪問(wèn)所調(diào)用的screen。
我能夠使用如下的方法開(kāi)始一個(gè)叫做“radiostation”的screen對(duì)話:
tmancill@ghostrider:~$ screen -S radiostation
(此時(shí)出現(xiàn)一個(gè)空白的screen)
(載入我的播放列表,然后按下play開(kāi)始發(fā)射)
(按下“CTRL-a”,然后按下“d”離開(kāi))
在這里,我能夠退出我的shell,而mp3blaster則繼續(xù)保持工作,使用現(xiàn)有的音軌信息和運(yùn)行時(shí)間來(lái)更新終端窗口(現(xiàn)在此窗口并不存在)。讓我們假設(shè),我的妻子打電話給我說(shuō),“嘿!播放一些不同于你收藏的音樂(lè)的吧!”,然后,我用ssh登錄ghostrider機(jī)器,并使用下面的命令恢復(fù)會(huì)話:
tmancill@ghostrider:~$ screen -r radiostation
如果我碰巧忘記了正在運(yùn)行的screen會(huì)話的名字,我可以使用“-ls”開(kāi)關(guān)來(lái)查看正在運(yùn)行的會(huì)話:
There are screens on:
10238.frm (Detached)
25400.radiostation (Attached)
2 Sockets in /var/run/screen/S-tmancill.
如果我離開(kāi)辦公室時(shí)沒(méi)有注銷“radiostation”screen,我能夠恢復(fù)它,指示screen在恢復(fù)運(yùn)行(-r)我所請(qǐng)求的對(duì)話之前跟任何正在運(yùn)行的對(duì)話分離(-d)。在我辦公室的窗口上,我將看到:
tmancill@ghostrider:~$ screen -r radiostation
[remote detached]
當(dāng)然,你不可能運(yùn)行這個(gè)廣播站而耗盡所有的screen。在生產(chǎn)環(huán)境中,這非常有用,因?yàn)槟悴槐貐^(qū)分你應(yīng)該從哪個(gè)地點(diǎn)訪問(wèn)這個(gè)對(duì)話。在我的辦公室中,我需要在GDB(GNU
Project debugger,http://www.gnu.org/software/gdb/gdb.html)下運(yùn)行一塊自動(dòng)售貨機(jī)軟件,以便在它們存在缺點(diǎn)(segfaulted)時(shí),能夠得到錯(cuò)誤的回溯跟蹤信息。當(dāng)崩潰發(fā)生時(shí),我的監(jiān)控軟件將向我們發(fā)出警告通知,我們二十四小時(shí)隨叫隨到的支持團(tuán)隊(duì)成員將訪問(wèn)這個(gè)會(huì)話,在我們單獨(dú)的每個(gè)工作站上運(yùn)行GDB
shell來(lái)解決問(wèn)題。這里有一個(gè)選擇,就是可以從系統(tǒng)控制臺(tái)直接運(yùn)行軟件,但這意味著待命的技術(shù)團(tuán)隊(duì)必須在現(xiàn)場(chǎng),然后必須物理的進(jìn)入數(shù)據(jù)中心執(zhí)行后續(xù)的工作。因此,screen絕對(duì)是一個(gè)適合的解決方案。
有一件事需要謹(jǐn)慎行事:screen是一個(gè)對(duì)用戶權(quán)限非常敏感的程序,也就是說(shuō)它會(huì)根據(jù)執(zhí)行操作的用戶來(lái)進(jìn)行不同的響應(yīng)。在GDB的例子中,自動(dòng)售貨機(jī)軟件運(yùn)行于一個(gè)特殊的用戶賬戶下,因此如果你使用“su”或“sudo”命令改變成另一個(gè)用戶,你將遇到權(quán)限問(wèn)題。出現(xiàn)這種問(wèn)題的原因是screen必須能夠打開(kāi)你的tty(終端)。舉一個(gè)例子,讓我們假設(shè)我想在我系統(tǒng)中的screen下以用戶“asterisk”運(yùn)行一些程序,如果我以用戶“tony”登錄,然后改變?yōu)橛脩簟癮sterisk”,我將用以下的命令來(lái)運(yùn)行:
Cannot open your terminal '/dev/pts/146' - please
check.(不能打開(kāi)你的終端“/dev/pts/146” - 請(qǐng)檢查。)
asterisk@bach:~$ ls -al /dev/pts/146
crw------- 1 tony tty 136, 146 May 31 18:16 /dev/pts/146
就像你能夠看到的一樣,由于安全問(wèn)題,我的tty(終端)由打開(kāi)shell的用戶所擁有,而不是我改變?yōu)閍sterisk后的有效用戶ID。解決這個(gè)問(wèn)題的一個(gè)方式是在調(diào)用screen之前,直接以用戶asterisk登錄,但這個(gè)問(wèn)題同樣會(huì)以另外的形式呈現(xiàn),那就是,如果我以asterisk開(kāi)始工作,然后在其它用戶下請(qǐng)求聯(lián)機(jī),之后再切換回asterisk,“screen
–r”仍將不能打開(kāi)終端。同樣注意到,在我改變?yōu)橛脩鬭sterisk之前,“screen
–ls”也不會(huì)向我顯示出“pbx”會(huì)話,這是由于screen為每個(gè)screen用戶創(chuàng)建了一個(gè)文件夾,它只能列出此用戶的會(huì)話。
那么,該怎么做才能規(guī)避這些權(quán)限問(wèn)題呢?如果用戶賬號(hào)有一個(gè)密碼,你通常能夠通過(guò)ssh以此用戶直接進(jìn)入系統(tǒng)(也可能是本地機(jī))?;蛘?#xff0c;如果你總是很匆忙,并且有足夠的自信,感覺(jué)并不會(huì)存在本地安全威脅,你則可以在tty(終端)修改權(quán)限。如果你這樣做了,請(qǐng)確信在工作完后,你已經(jīng)從你工作的終端上注銷。實(shí)際上,你已經(jīng)給予了每個(gè)本地系統(tǒng)用戶通過(guò)shell訪問(wèn)的權(quán)限。另一個(gè)選擇是改變成root用戶再調(diào)用screen,然后在screen會(huì)話中改變?yōu)檫\(yùn)行工作所需的系統(tǒng)賬號(hào)。這樣做能夠正常的原因是超級(jí)用戶能夠打開(kāi)任何用戶的ty(終端),而表面上,你的支持團(tuán)隊(duì)?wèi)?yīng)該有改變?yōu)閞oot用戶的足夠權(quán)限。
Screen能夠幫助你使用那些不適合“無(wú)人看管”使用的大量終端軟件,并且只需運(yùn)行一個(gè)起始會(huì)話即可。相比之前你可能通過(guò)多個(gè)會(huì)話登錄遠(yuǎn)程系統(tǒng),它的部署是如此快速,易用性又是如此之好,或者說(shuō)它在你的Linux控制臺(tái)上添加和設(shè)置了附加的虛擬控制臺(tái)。這就是screen,上面的文章將指導(dǎo)你更好的使用這個(gè)強(qiáng)大的工具,你可以在你需要的任何時(shí)候運(yùn)行它。
版權(quán)所有,違者不究。
-------------------------------------------------------------
總結(jié)
以上是生活随笔為你收集整理的linux的screen工具下载,Linux终端下的强大工具 - screen的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CCRC信息安全服务资质--应急处理
- 下一篇: comsol5.3 linux安装教程,