2010-07-08 110 views
361

我使用命令外壳screen多路复用器工具,并打开了很多的屏幕。然后我忘记哪个进程ID与哪个任务相关联。如何为屏幕指定名称?

我想为一个屏幕中设置的名称,但不能找到手册页的选项。

目前,上市的屏幕看起来是这样的:

There are screens on: 
    5422.pts-1.aws1 (Detached) 
    5448.pts-1.aws1 (Detached) 
    5027.pts-1.aws1 (Detached) 
3 Sockets in /var/run/screen/S-sb. 

而且我希望看到这样的事情:

There are screens on: 
    5422.logCleanWorker (Detached) 
    5448.overNightLongTask(Detached) 
    5027.databaseOverNightLongTask (Detached) 
3 Sockets in /var/run/screen/S-sb. 

我怎样才能做到这一点?

+1

这个问题看起来更像是在问‘如何重命名现有的会话’,而不是‘如何开始使用一个名称新的会话’。在这方面,当前选择的答案并不真正合适,正确的答案应该是'user164176'给出的答案 - http://stackoverflow.com/a/3309696/636762 – 2016-06-12 16:05:32

+0

屏幕会话的名称表明您创建了一个新的屏幕会话(可能是一个命令)屏幕支持[多个窗口](https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/#creating),所以你c在单个屏幕会话中运行所有这些任务。 – Melebius 2017-11-30 07:51:52

回答

560

要创建一个名为foo一个新的屏幕,使用

screen -S foo 

然后将其重新粘上,运行

screen -r foo # or use -x, as in 
screen -x foo # for "Multi display mode" (see the man page) 
+15

在您的解决方案中,您解释了如何使用正确的名称创建新的名称,而不是更改现有名称。没有人想要终止会话,如果有可能保留它。 – 2015-05-08 07:36:08

+10

向下滚动至user164176的答案,查看如何重命名现有会话。 – jlh 2016-01-27 10:44:57

+0

这个问题看起来更像是问“如何重命名现有会话”,而不是“如何用名称开始新会话”。在这种情况下,目前选择的答案并不合适。选择正确的答案应该是'user164176'给出的 - - http://stackoverflow.com/a/3309696/636762低于 – 2016-06-12 16:06:27

424

screen -S SESSIONNAME是良好的开始有名称的会话,但如果你开始然后决定命名它,进入命令模式(C-a :),然后输入命令sessionname SESSIONNAME

+11

这是一个合适的解决方案,因为它专注于重命名现有会话而不是创建新会话。 – 2015-05-08 07:36:49

+2

有关'Ca:'语法....“的快速注释。”所有屏幕命令都由一个转义键作为前缀,默认情况下为'Ca'(即Control-a,有时写为'^ a')。 '在屏幕上的程序中,使用'Ca a',这对于在屏幕中操作屏幕很有用,例如'Ca an'会将屏幕移动到屏幕上的一个新窗口。 (参考:http://aperiodic.net/screen/quick_reference) – 2016-07-08 16:12:23

+0

非常感谢。即使我知道你可以从一个名字开始,但我经常没有命名就开始,然后希望以后可以。谢谢! – Ketzak 2017-07-31 18:40:34

1

我是一个初学者到屏幕,但我发现,同时恢复丢失的连接也非常有用。你的问题已经被回答了,但是这个信息可能会作为一个附加信息 - 我用腻子连接管理器使用腻子并且命名我的屏幕 - “tab1”,“tab2”等等 - 就我而言,8-10标签比每个单独的标签名称更重要。我用的是8号标签用于连接到数据库,查看日志等第七届所以,当我想重新安装我的屏幕我写了一个简单的包装它说:

#!/bin/bash 
screen -d -r tab$1 

,其中第一个参数是选项卡数。

+0

这可能会更好地作为bash函数完成。 – 2012-09-12 16:49:40

8

最简单的方式使用屏幕名称

screen -S 'name' 'application' 
  • 按Ctrl + 一个d =退出并离开应用程序打开

返回到画面:

screen -r 'name' 

例如用lynx与屏幕

创建屏幕:

screen -S lynx lynx 

按Ctrl + 一个d =出口

以后你可以用返回:

screen -r lynx 
+15

这有三个问题。首先,有几个人已经发布了这个。其次,你告诉他他已经知道的基本屏幕使用情况。第三,你没有真正回答这个问题,因为他问了如何命名一个已经存在的屏幕会话。 – 2012-10-31 13:41:21

43

如前所述,screen -S SESSIONTITLE适用于以标题(SESSIONTITLE)开始会话,但是如果您开始会话并稍后决定更改其标题。这可以通过使用默认的键绑定来实现:

按Ctrl + 一个一个

它会提示:

Set windows title to:SESSIONTITLE 

变化SESSIONTITLE退格键并键入所需的标题。确认名称更改并列出所有标题。

按Ctrl + 一个

+31

当他们没有时,您将术语_session_和_window_视为可互换。 'Ctrl + a','A'不设置_session_名称('SESSIONNAME'),它只设置当前的_window_标题。当使用'screen -list'查询时,会话中的窗口标题不会出现在会话列表中。该问题询问如何设置_session_名称。 – StvnW 2014-05-14 12:59:05

+2

有用,但会更改当前窗口标题,而不是会话名称。 – Znik 2015-01-09 14:25:29