2008-09-16 149 views

回答

27

什麼是GNU Screen?大!

Erm,一個稍微有用的答案:它允許您在一個終端中運行多個控制檯應用程序或命令。有點像標籤式終端模擬器。事實上,這正是它的原因(只是沒有使用常規的GUI工具包)

爲什麼這麼棒?很簡單,你可以運行在一個屏幕會話的程序(運行screen,它運行默認的shell,運行screen myapp並在會話中運行MYAPP),打CTRL + 一個(屏幕控制序列),然後按dctrl + a,d)分離。

程序保持在後臺運行,,不像做mycmd &,您可以運行screen -r重新連接會話,並且一切都是因爲你離開它。你可以發送輸入到命令,如果它是一個詛咒的用戶界面,一切仍然工作,就像它是一個「真正的」終端。

它在控制檯IRC客戶端非常流行 - 您可以運行(比如說)screen irssi並從任何可以通過SSH進行連接的地方重新連接會話。

幾個有用的命令:

  • CTRL + 一個Ç使新的虛擬終端(或 「窗口」)在會話
  • CTRL + 一個n and ctrl + ap循環通過多個窗口
  • CTRL + 一個,選擇窗口1,CTRL + 一個,選擇窗口4等
  • ctrl + actrl + a到 + 一個 + 一個(大寫一個)的最後兩個活動窗口CTRL之間
  • 輕彈允許重命名當前窗口
  • CTRL + 一個`(對我來說,這是轉變 + - 引號)列出窗口,您可以使用箭頭並選擇一個。

    • 使用-U標誌在啓動屏幕,它支持:也與「標籤欄中的」設置我會在第二

    其他一些有用的東西,我偶然發現列出有用Unicode(例如,screen -xU

  • -x標誌允許您多次重新掛接相同的會話。 (-r斷開現有連接)
  • 你可以用狀態欄做一些有趣的事情。我有我的設置,以顯示[ hostname ][ 0-$ bash (1*$ irssi) ][16/09 9:32](運行於主機,它有兩個窗口。這是由我的.screenrc的hardstatus線(在回答結束)
startup_message off 
vbell off 
hardstatus alwayslastline 
hardstatus string '%{gk}[ %{G}%H %{g}][%= %{wk}%?%-Lw%?%{=b kR}(%{W}%n*%f %t%?(%u)%?%{=b kR})%{= kw}%?%+Lw%?%?%= %{g}]%{=y C}[%d/%m %c]%{W}' 
+1

*設置「不像做`mycmd&`「* - 實際上,您可以使用`fg`從後臺獲取一個進程(用`&`發送),`ctrl + z`將其放回。 – naught101 2014-10-22 11:29:21