4

我们在办公室经常使用 gnu screen,有时如果我不注意,我最终会迷失自己已经在哪个屏幕会话中。

所以我的问题是,你怎么知道你在哪个屏幕会话中?你有办法检查吗?

澄清:我需要知道的是,当我执行以下操作时:

~$ screen -ls

我看到类似的东西:

There is a screen on:
    4732.work_Sept42012     (Attached)
    3551.web01  (Attached)
    5521.mysql01 (Attached)
    1255.tomcat05 (Detached)
    3326.oracle15 (Attached)

 1 Socket in /tmp/uscreens/S-icasimpan.

我如何知道我当前是否连接到任何附加会话?

提前致谢。

4

2 回答 2

7

除了sessionnamescreen 命令之外,screenSTY还为其启动的进程设置环境变量。您可以从 shell 检查此变量的值:

$ echo $STY
5521.mysql01
$
于 2012-10-23T16:30:29.250 回答
4

更新:

ctrl+a,:sessionname可用于显示当前屏幕会话的名称。

以前的回复(有误解的问题):

我也为此苦苦挣扎,直到遇到了这个奇妙的hardstatus功能。在我的这两行中,我~/.screenrc在屏幕会话的底部得到以下内容。

hardstatus alwayslastline
hardstatus string '%{= kG}%-Lw%{= kW}%50> %n*%f %t%{= kG}%+Lw%< %{= kG}%-=%D %M %d | %C:%s %A %1`%{-}'

在此处输入图像描述

我在这里看到的是我的本地计算机上的一个屏幕会话,带有三个窗口(bash、、、mumblekalkyl。在名为我的活动窗口mumble中,我通过 ssh 连接到另一台计算机,在该计算机上我正在运行另一个具有三个窗口(、、、topauto的屏幕会话bash。我可以看到两个会话中的所有窗口并跟踪我的位置。

于 2012-09-03T09:19:08.867 回答