设置屏幕会话的名称


44

有没有一种方法可以给unix屏幕会话赋予特定的名称?例如,假设我多次运行相同的程序,但每次都使用不同的参数,而我想知道哪个是哪个。


不是编程问题。应该去SuperUser或Unix。
0xC0000022L

Answers:


54

使用该-S name选项启动会话时,可以命名会话。在运行屏幕中,您可以通过键入进行更改CTRL-a, :sessionname name。您可以使用查看正在运行的屏幕会话screen -ls,并使用来按名称连接到一个会话screen -xS name

在单个屏幕会话中,您还可以命名每个窗口。为此,请输入CTRL-a, A所需的名称。您可以通过键入来查看命名窗口的交互式列表CTRL-a, ",然后从该列表中选择要切换到的窗口。

命名屏幕和屏幕内的终端对记住它们是什么以及为什么要首先启动它们确实很有帮助。


可以在启动之后重命名屏幕会话(使用:sessionname NEWNAME),但是通常不建议这样做。在$STY环境变量仍然指向原来的名称。参见screen手册:gnu.org/software/screen/manual/html_node/Session-Name.html
Keith Thompson

22

这里有两个概念,我不确定要记住哪个概念:

  • 您可以有多个屏幕窗口。每个窗口运行一个外壳程序或其他程序。所有窗口都由同一进程托管。C-a c创建一个窗口,C-a n然后C-a p切换到下一个/上一个窗口,依此类推。
  • 您可以进行多个屏幕会话。每个会话由其自己的进程托管,并且独立于所有其他会话。没有任何重新连接(-r-R)选项的开始屏幕将创建一个新会话。

Windows具有标题,可以通过-t命令行选项,C-a A键绑定,title命令或\ek转义序列设置标题。有关更多详细信息,请参见Shellter的答案

会话可以具有名称。通常,您可以在命令行中使用-S选项设置名称。如果您未指定名称,则屏幕将显示一个名称。如果您使用多个屏幕会话,通常会给它们指定不同的会话名称。您可以使用列出运行屏幕会话screen -ls;每个会话行上的第一个单词是12345.sessionname12345是屏幕进程ID。使用screen -r sessionnamescreen -r 12345恢复通过其名称或进程ID指示的会话。


1
在默认键绑定,以更改标题,你必须使用CA A.
enzotib

11

啊...屏幕,它带我回来;-)

对于一个窗口

-t name
    sets the title (a.k.a.) for the default shell or specified program. 
    See also the "shelltitle" .screenrc command.

对于从.screenrc开始的多个会话

screen -t top 2 nice top
screen -t ....

这是指向屏幕的联机帮助页的一个在线副本的链接

编辑:添加

要更改当前屏幕名称,请制作一个shell脚本工具,例如

cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'

未经测试,我正在使用的系统上没有可用的屏幕。


谢谢,这很有帮助。无论如何,是否要重命名已经存在的屏幕会话?
嗯,事实上

@Charlotte:查看编辑。感谢您的投票!
剥壳机2011年

不错的答案@shellter!我很好奇,您是说“带我回来”是指您最近使用了其他东西(例如tmux),还是仅仅超过32岁
tutuDajuju

1
@tutuDajuju:Gulp,现在我考虑了,我已经使用screen了至少25年。带我回来,因为现在这是一个特殊的用例,它将带我到screen。通常,我只是保持打开状态X-Terms,但是我记得当X在486 PC上似乎无法运行时;-)干杯!
剥壳机

@shellter仅供参考,我在1992年在配备8Mb RAM的486 PC上运行X ...
Eno

4

运行时screen

Ctrl+a(或无论您的screen转义序列是什么)A


3

上面的答案已经告诉您启动屏幕时如何命名。他们还指出,屏幕启动后无法重命名。可以设置窗口标题,但用于附加到屏幕的名称仍为pid.pty.host。

但是,为了获得有用的效果,我发现使用别名可以很好地工作。如果我忘记命名屏幕或在会话中发现一堆屏幕,这些屏幕自然已成为特定任务的屏幕,那么我只需为命令附加一个别名即可设置别名。

例:

alias goncompile='screen -r 2354'

单独发出alias命令将提醒您设置了哪些屏幕以及已设置要附加到它们的命令。

使用unalias删除它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.