有没有办法给 UNIX 屏幕会话指定一个特定的名称?例如,假设我多次运行同一个程序,每次都有不同的参数,我想知道哪个是哪个。
答案1
您可以在使用该选项启动会话时对其进行命名-S name
。在运行屏幕中,您可以通过键入来更改它
Ctrl+ A,:后接(1)。sessionname name
您可以使用 查看正在运行的屏幕会话screen -ls
,并使用名称连接到其中一个
屏幕-xS姓名
(1):name
是一个任意字符串,它将成为新的会话名称。如果会话名称包含空格,请用单引号或双引号引起来。
在单个屏幕会话中,您还可以命名每个窗口。通过输入Ctrl+ A,A然后输入您想要的名称来执行此操作。您可以通过键入Ctrl+ A、 、来查看命名窗口的交互式列表",然后从该列表中选择要切换到的窗口。
为屏幕和屏幕中的终端命名确实有助于记住它们是什么以及您最初启动它们的原因。
答案2
这里有两个概念,我不确定你想到的是哪一个:
- 您可以有多个屏幕窗口。每个窗口都运行一个 shell 或其他程序。所有窗口都由同一进程托管。
C-a c
创建一个窗口,C-a n
并C-a p
切换到下一个/上一个窗口,等等。 - 您可以进行多个屏幕会话。每个会话都由其自己的进程托管,并且独立于所有其他会话。没有任何重新附加 (
-r
或) 选项的启动屏幕-R
会创建一个新会话。
Windows 有标题,可以通过-t
命令行选项、C-a A
键绑定、title
命令或\ek
转义序列来设置。看壳者的回答更多细节。
会话可以有名称。您通常会使用选项在命令行上设置名称-S
;如果您不指定名称,屏幕会自动生成一个名称。如果您使用多个屏幕会话,您通常会为它们指定不同的会话名称。您可以使用 ; 列出运行屏幕会话screen -ls
;每个会话行的第一个字是12345.sessionname
其中 12345 是屏幕进程 ID。使用screen -r sessionname
或screen -r 12345
来恢复通过其名称或进程 ID 指示的会话。
答案3
答案4
在跑步的时候screen
:
Ctrl+a
(或者无论你的screen
转义序列是什么)A