什么是 GNU 屏幕?
Chris Kimpton
问问题
4471 次
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+ a,c在会话中创建一个新的虚拟终端(或“窗口”)
- 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 回答