3

我需要在我的 .screenrc 中添加什么以便创建嵌套会话(即:屏幕中的屏幕)?

目前,如果我screen从打开的屏幕选项卡中再次运行,而不是在该选项卡中打开新的屏幕会话,它只会打开一个新选项卡(即:与我按下 -C 的效果相同)

我想获得一个外屏会话和一个内屏会话 - 请问我该怎么做?

我的 .screenrc 是空的,除了以下单行来显示打开的选项卡列表:

hardstatus alwayslastline "%{=w}%{G} %{b}%w"
4

4 回答 4

7

这是一个非常古老的问题,但供参考:

启动主屏幕会话:

screen -S main

开始第二个会话(分离):

screen -dmS SomeName

从您想要嵌套会话的选项卡中:

screen -r SomeName

使用和额外a的命令来嵌套屏幕,即^a-a-c在嵌套屏幕中创建一个选项卡。

于 2013-03-14T14:54:26.613 回答
4

不知道你的意思是从你的screenrc开始一些嵌套会话还是在你的screenrc中设置一些东西,这样你就可以从冒号提示符开始嵌套会话。

首先,我使用一个单独的 screenrc 文件 .screenrc.main,其中包含

source ~/.screenrc
screen -t <window name> screen -S <nested session name> -e^jj <command>

我认为“新会话名称”部分对于获得新会话是必要的。我对嵌套会话使用不同的命令字符。另外我使用了一个单独的文件,因为我不希望为嵌套会话执行该命令。然后从命令行我做

DISPLAY= screen -S <top session name> -c .screenrc.main

启动外部会话。

其次,我只需在冒号提示符中输入上面的 screen -t 行。

于 2012-10-03T16:49:22.587 回答
4

从我在您的问题中读到的内容,您似乎对如何操作嵌套会话感到困惑?

CTRL+a c will create a new 'tab' in the outer screen session.
CTRL+a a c will create a new 'tab' in the session 1 deeper than the previous
CTRL+a a a c creates a new tab in the session 1 deeper than the previous

我有 3 层的情况,我 SSH 进入我的工作框,然后从那里进入代理,然后从那里进入我想要工作的服务器,每次打开一个屏幕会话以便稍后恢复。

如果没有显示完整主机名的 hardstatus,很容易迷路,确实很容易!

于 2015-03-17T16:00:04.347 回答
2

我不知道如何编辑您的 screenrc 文件,但对我有用的是 ssh 进入同一台计算机,然后启动一个新的屏幕实例。黑客的解决方法,但它确实有效......

screen
ssh 127.0.0.1
screen
于 2012-05-03T17:04:44.913 回答