什么是GNU屏幕?

时间:2020-03-05 18:55:28  来源:igfitidea点击:

什么是GNU屏幕?

解决方案

回答

什么是GNU屏幕?伟大的!

Erm,一个稍微有用的答案:它允许我们在一个终端上运行多个控制台应用程序或者命令。有点像选项卡式终端仿真器。实际上,这就是事实(仅使用常规GUI工具包无法完成)

为什么这么好?很简单,我们可以在屏幕会话中运行程序(运行" screen"并运行默认shell,运行" screen myapp"并在会话中运行myapp),按" ctrl" +" a"(屏幕控制序列),然后按d(ctrl+ad)分离。

该程序一直在后台运行,但是,与执行" mycmd&"不同,我们可以运行" screen -r"来重新连接会话,一切就如我们所愿。我们可以将输入发送到命令,如果它是curses UI,则所有操作仍然像是"真实"终端一样。

它可以在控制台IRC客户端中非常流行,我们可以运行(例如)" screen irssi"并在可以通过SSH进行连接的任何位置重新添加会话。

一些有用的命令:

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

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

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