【问题标题】:How can I assign a name for a screen? [closed]如何为屏幕指定名称? [关闭]
【发布时间】:2010-07-08 09:15:44
【问题描述】:

我在命令外壳上使用Screen 多路复用器工具并打开很多屏幕。然后我忘记了哪个进程 ID 与哪个任务相关联。

我想为屏幕设置名称,但在man page 中找不到选项。

目前,列出屏幕如下所示:

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.

我该怎么做?

【问题讨论】:

  • 这个问题看起来更像是在问“如何重命名现有会话”而不是“如何使用名称启动新会话”。在这种情况下,当前选择的答案并不合适。正确答案应该是user164176 - stackoverflow.com/a/3309696/636762给出的答案
  • 屏幕会话的名称建议您为每个任务(可能是单个命令)创建一个新的屏幕会话。 Screen 支持multiple windows,因此您可以在单个屏幕会话中运行所有这些任务。
  • 这可以迁移到 SuperUser(或其他一些 StackExchange 站点)吗?显然它对很多人都很有用,尽管它超出了这个特定网站的范围。
  • 如果你在这个网站上找到一个选项把它和所有的历史一起移到那里,那么我会同意移动它

标签: linux unix shell gnu-screen


【解决方案1】:

开始一个新的会话

screen -S your_session_name

重命名现有会话

Ctrl+a, : sessionname YOUR_SESSION_NAME Enter

您必须在会话中

【讨论】:

  • 这是合适的解决方案,因为它专注于重命名现有会话而不是创建新会话。
  • 关于C-a : 语法的快速说明......“所有屏幕命令都以转义键为前缀,默认情况下为C-a(即Control-a,有时写为^a)。将文字C-a 发送到屏幕中的程序,使用C-a a。这在使用屏幕内的屏幕时很有用。例如C-a a n 会将屏幕移动到屏幕内屏幕上的新窗口。 (参考:aperiodic.net/screen/quick_reference
  • 非常感谢。尽管我知道你可以从一个名字开始,但我经常不命名,然后希望以后可以。谢谢!
  • 几年后看了之后同意了:D
  • 专业提示,您可以键入屏幕名称的前缀,这样可以代替:screen -r mynamescreen -r my 将起作用(如果它是唯一前缀)。
【解决方案2】:

最简单的方法是使用带有名称的 Screen:

screen -S 'name' 'application'
  • Ctrl + a, d = 退出并保持应用打开

返回屏幕:

screen -r 'name'

例如,将 Lynx 与 Screen 结合使用。

创建一个屏幕:

screen -S lynx lynx

Ctrl+a, d = 退出

稍后,您可以返回:

screen -r lynx

【讨论】:

  • 这有三个问题。首先,有几个人已经发布了这个。其次,你要告诉他他已经知道的基本屏幕使用知识。第三,你实际上并没有回答这个问题,因为他问的是如何命名一个已经存在的屏幕会话。
【解决方案3】:

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

screen -S foo

然后重新连接它,运行

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

【讨论】:

  • 在您的解决方案中,您将解释如何创建具有正确名称的新名称,而不是更改现有名称。如果可以保持会话,则没有人愿意终止会话。
  • 向下滚动到 user164176 的答案以查看如何重命名现有会话。
  • 这个问题看起来更像是在询问“如何重命名现有会话”而不是“如何使用名称启动新会话”。在这种情况下,当前选择的答案并不真正合适。选择的正确答案应该是下面user164176 - stackoverflow.com/a/3309696/636762 给出的答案
  • 我在 google 上搜索了“ubuntu create a new screen with name”,这是第一个结果。正是我想要的:) 谢谢
  • 重命名会话:Ctrl+a, : sessionname YOUR_SESSION_NAME Enter。
【解决方案4】:

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

Ctrl+a, A

提示:

Set windows title to:SESSIONTITLE

通过退格并输入所需的标题来更改SESSIONTITLE。确认名称更改并列出所有头衔。

Ctrl+a, "

【讨论】:

  • 您将术语 sessionwindow 视为可互换的,而实际上它们不是。 Ctrl+aA 不设置 session 名称 (SESSIONNAME),它只设置当前 window 标题。使用screen -list 查询时,会话中的窗口标题不会出现在会话列表中。该问题询问如何设置 session 名称。
  • 有用,但它会更改当前窗口标题,而不是会话名称。
【解决方案5】:

我是 Screen 的初学者,但我发现它在恢复丢失的连接时非常有用。

您的问题已经得到解答,但此信息可能作为附加信息 - 我将 PuTTY 与 PuTTY 连接管理器一起使用,并将我的屏幕命名为 - “tab1”、“tab2”等 - 就我而言,总体而言8-10 个选项卡的图片比每个单独的选项卡名称更重要。我使用第 8 个选项卡连接到 db,第 7 个选项卡用于查看日志等。所以当我想重新连接我的屏幕时,我编写了一个简单的包装器,上面写着:

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

第一个参数是标签号。

【讨论】:

  • 作为 bash 函数可能会更好。
猜你喜欢
  • 2021-02-15
  • 1970-01-01
  • 2019-01-10
  • 2016-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多