代码之家  ›  专栏  ›  技术社区  ›  Chris Kimpton

什么是GNU屏幕?[关闭]

  •  4
  • Chris Kimpton  · 技术社区  · 16 年前

    什么是GNU屏幕?

    1 回复  |  直到 8 年前
        1
  •  27
  •   slang dbr    8 年前

    是什么 GNU Screen ?伟大的!

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

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

    程序一直在后台运行, 但是 不像做 mycmd & 你可以跑 screen -r 重新连接会话,一切就在您离开时。您可以将输入发送到命令,如果它是一个诅咒的用户界面,那么所有的工作方式仍然像是一个“真正的”终端。

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

    一些有用的命令:

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

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

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