5

什么是 GNU 屏幕?

4

1 回答 1

27

什么是GNU 屏幕?伟大的!

Erm,一个稍微有用的答案:它允许您在一个终端中运行多个控制台应用程序或命令。有点像选项卡式终端模拟器。事实上,这正是它的本质(只是没有使用常规的 GUI 工具包)

为什么这么棒?很简单,您可以在屏幕会话中运行一个程序(运行screen它会运行您的默认 shell,运行screen myapp它会在会话中运行 myapp),点击ctrl+ a(屏幕控制序列),然后按d( ctrl+ a, d) 分离。

该程序一直在后台运行,但是,与 do 不同的是mycmd &,您可以运行screen -r以重新附加会话,并且一切都与您离开时一样。您可以向命令发送输入,如果它是一个 curses UI,那么一切仍然可以正常工作,就像它是一个“真正的”终端一样。

它在控制台 IRC 客户端中非常流行——您可以screen irssi从任何可以 SSH 的地方运行(比如说)并重新附加会话。

几个有用的命令:

  • ctrl+ ac在会话中创建一个新的虚拟终端(或“窗口”)
  • ctrl+和+ a,在多个窗口中循环nctrlap
  • ctrl+ a,1选择窗口 1, ctrl+ a,4选择窗口 4 等等
  • ctrl+ a, ctrl+a在最后两个活动窗口之间滑动
  • ctrl+ a, shift+ a(大写 a) 允许你重命名当前窗口
  • ctrl+ a, `(对我来说,那是shift+ 2- 引号)列出窗口,您可以使用箭头并选择一个。我将在稍后列出的“标签栏”设置也很有用

我偶然发现了一些其他有用的东西:

  • 启动屏幕时使用该-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}'
于 2008-09-16T09:45:29.410 回答