2010-07-08 57 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