什么是GNU屏幕?
时间:2020-03-05 18:55:28 来源:igfitidea点击:
什么是GNU屏幕?
解决方案
回答
什么是GNU屏幕?伟大的!
Erm,一个稍微有用的答案:它允许我们在一个终端上运行多个控制台应用程序或者命令。有点像选项卡式终端仿真器。实际上,这就是事实(仅使用常规GUI工具包无法完成)
为什么这么好?很简单,我们可以在屏幕会话中运行程序(运行" screen"并运行默认shell,运行" screen myapp"并在会话中运行myapp),按" ctrl" +" a"(屏幕控制序列),然后按d
(ctrl
+a
,d
)分离。
该程序一直在后台运行,但是,与执行" mycmd&"不同,我们可以运行" screen -r"来重新连接会话,一切就如我们所愿。我们可以将输入发送到命令,如果它是curses UI,则所有操作仍然像是"真实"终端一样。
它可以在控制台IRC客户端中非常流行,我们可以运行(例如)" screen irssi"并在可以通过SSH进行连接的任何位置重新添加会话。
一些有用的命令:
ctrl
+a
,c
在会话中创建新的虚拟终端(或者"窗口")ctrl
+a
,n
和ctrl
+a
,p
循环通过多个窗口- 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}'