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

什么是GNU Screen?[关闭]

  •  6
  • Chris Kimpton  · 技术社区  · 17 年前

    什么是GNU Screen?

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

    是什么 GNU Screen 太棒了

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

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

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

    它在控制台IRC客户端中非常受欢迎——你可以运行(比如) screen irssi 并从任何可以通过SSH连接的地方重新连接会话。

    一些有用的命令:

    • + , c 在会话中创建新的虚拟终端(或“窗口”)
    • + , n + , p 在多个窗口中循环
    • + , 1. 为了选择窗口1, + , 4. 选择窗口4,依此类推
    • + , + 在最后两个活动窗口之间切换
    • + , 转移 + (大写a)允许您重命名当前窗口
    • + , ` (对我来说,这是 转移 + 2. -引号)列出窗口,您可以使用箭头并选择一个。对于我稍后列出的“标签栏”设置也很有用

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

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