什么是 GNU 屏幕?

有帮助吗?

解决方案

什么是 GNU 屏幕?伟大的!

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

为什么这么棒?简单,您可以在屏幕会话中运行程序(运行 screen 它运行你的默认 shell,运行 screen myapp 它在会话中运行 myapp),点击 控制键+A (屏幕控制顺序),然​​后按 d (控制键+A,d) 分离。

程序一直在后台运行, , ,不像做 mycmd &, ,你可以运行 screen -r 重新连接会话,一切都与您离开时一样。您可以将输入发送到命令,如果它是一个curses UI,一切仍然像“真实”终端一样工作。

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

一些有用的命令:

  • 控制键+A, C 在会话中创建一个新的虚拟终端(或“窗口”)
  • 控制键+A, n控制键+A, p 循环浏览多个窗口
  • 控制键+A, 1 选择窗口 1, 控制键+A, 4 选择窗口 4 等
  • 控制键+A, 控制键+A 在最后两个活动窗口之间滑动
  • 控制键+A, 转移+A (大写a)允许您重命名当前窗口
  • 控制键+A, ` (对我来说,那就是 转移+2 - 引号)列出窗口,您可以使用箭头并选择一个。对于“选项卡栏”设置也很有用,我将在稍后列出

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

  • 使用 -U 启动屏幕时进行标记,以便它支持 Unicode(例如, screen -xU)
  • -x 标志允许您多次重新附加同一会话。(-r 断开现有连接)
  • 您可以使用状态栏做一些有趣的事情。我有要显示的设置 [ hostname ][ 0-$ bash (1*$ irssi) ][16/09 9:32] (在主机名上运行,它有两个窗口。这是由我的 .screenrc 中的硬状态行设置的(在答案的末尾)
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}'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top