小智 126
您可以在使用该-S name选项启动会话时为其命名。从正在运行的屏幕中,您可以通过键入来更改它
Ctrl+ A,:然后是(1)。sessionname name
您可以查看正在运行的屏幕会话screen -ls,并通过名称连接到一个
屏幕 -xS名称
(1): nameis 和将成为新会话名称的任意字符串。如果会话名称包含空格,请用单引号或双引号将其引用。
在单个屏幕会话中,您还可以命名每个窗口。通过输入Ctrl+ A,A然后输入您想要的名称来执行此操作。您可以通过键入Ctrl+ A、来查看命名窗口的交互式列表",然后从该列表中选择要切换到的窗口。
命名屏幕和屏幕中的终端对于记住它们是什么以及你为什么首先启动它们非常有帮助。
Gil*_*il' 32
这里有两个概念,我不确定您想到的是哪一个:
C-a c创建一个窗口,C-a n并C-a p切换到下一个/上一个窗口,依此类推。-r或-R)选项的启动屏幕会创建一个新会话。Windows 有标题,可以通过-t命令行选项、C-a A键绑定、title命令或\ek转义序列设置标题。有关更多详细信息,请参阅shellter 的回答。
会话可以有名称。您通常会在命令行上使用-S选项设置名称;如果您不指定名称,则 screen 会补一个。如果您使用多个屏幕会话,您通常会给它们不同的会话名称。您可以列出正在运行的屏幕会话screen -ls;每个会话行的第一个字是12345.sessionname12345 是屏幕进程 ID。使用screen -r sessionname或screen -r 12345恢复通过其名称或进程 ID 指示的会话。
aex*_*exl 22
开始:
screen -S mysession
Run Code Online (Sandbox Code Playgroud)
恢复:
screen -r mysession
Run Code Online (Sandbox Code Playgroud)
she*_*ter 16
啊...屏幕,它带我回来;-)
对于一个窗口
-t name
sets the title (a.k.a.) for the default shell or specified program.
See also the "shelltitle" .screenrc command.
Run Code Online (Sandbox Code Playgroud)
对于从您的 .screenrc 开始的多个会话
screen -t top 2 nice top
screen -t ....
Run Code Online (Sandbox Code Playgroud)
这是一份在线副本的链接 screen页。
编辑:添加
要更改当前屏幕名称,请制作一个 shell 脚本工具,例如
cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'
Run Code Online (Sandbox Code Playgroud)
未经测试,我正在使用的系统上没有可用的屏幕。
编辑 2 (2021-03-02)
正如@MrFooz 正确指出的那样,在$0单引号内时不会扩展,正确的代码是
cat scrnTitle.sh
#/bin/bash
echo -ne "\ek${0}\e\\"
Run Code Online (Sandbox Code Playgroud)
小智 5
上面的答案已经告诉您如何在启动屏幕时为其命名。他们还指出,屏幕启动后无法重命名。可以设置窗口标题,但用于附加到屏幕的名称仍然是 pid.pty.host。
然而,为了达到有用的效果,我发现使用别名效果非常好。如果我忘记命名一个屏幕,或者发现自己处于一个会话中,有一堆屏幕自然而然地成为特定任务的屏幕,我只需为附加到它们的命令设置一个别名即可。
例子:
alias goncompile='screen -r 2354'
Run Code Online (Sandbox Code Playgroud)
单独发出别名命令会提醒您有哪些屏幕以及已设置附加到它们的命令。
用于unalias删除它们。