2010-07-08 14 views
361

Ich verwende das screen Multiplexer-Tool auf der Befehlsshell und öffnen Sie eine Vielzahl von Bildschirmen. Ich vergesse dann, welche Prozess-ID zu welcher Aufgabe gehört.Wie kann ich einen Namen für einen Bildschirm vergeben?

Ich möchte einen Namen für einen Bildschirm festlegen, aber keine Option in der Hilfeseite finden.

Derzeit sieht die Bildschirme Auflistung wie folgt aus:

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. 

Und ich möchte so etwas sehen:

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

Wie kann ich das tun?

+1

die Frage sieht eher aus wie es ist zu fragen,‚wie bestehende Sitzungen umbenennen‘anstatt‚wie neue Sitzungen mit einem Namen‘zu starten. In diesem Zusammenhang hat die die aktuell gewählte Antwort ist nicht wirklich geeignet, die richtige Antwort sollte eher die von 'user164176' sein - http://stackoverflow.com/a/3309696/636762 –

+0

Die Namen Ihrer Bildschirmsitzungen legen nahe, dass Sie eine neue Bildschirmsitzung erstellen für eine einzelne Aufgabe (vielleicht einen einzigen Befehl). Bildschirm unterstützt [mehrere Fenster] (https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/#creating), so dass Sie c Führen Sie alle diese Aufgaben in einer einzigen Bildschirmsitzung aus. – Melebius

Antwort

560

Um einen neuen Bildschirm mit dem Namen foo, verwenden zu erstellen

screen -S foo 

Dann ist es wieder zu befestigen, um eine Sitzung mit einem Namen für das Starten,

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

In Ihrer Lösung erklären Sie, wie Sie neue mit korrekten Namen erstellen, anstatt die vorhandenen zu ändern. Es gibt keine, die die Sitzung beenden möchte, wenn es möglich ist, sie zu behalten. –

+10

Blättern Sie zu der Antwort von user164176, um zu erfahren, wie Sie bestehende Sitzungen umbenennen. – jlh

+0

Die Frage sieht eher so aus, als würde sie fragen, "wie man bestehende Sitzungen umbenennt" anstatt "wie man neue Sitzungen mit einem Namen startet". In diesem Zusammenhang ist die aktuell gewählte Antwort nicht wirklich angemessen. Die gewählte richtige Antwort sollte eher die von 'user164176' sein - http://stackoverflow.com/a/3309696/636762 unter –

424

screen -S SESSIONNAME ist gut laufen, aber wenn Sie anfangen eine Sitzung und später entscheiden, um es zu benennen, in den Befehlsmodus (C-a :) und geben Sie dann den Befehl sessionname SESSIONNAME.

+11

Dies ist die geeignete Lösung, da es sich auf das Umbenennen der bestehenden Sitzung konzentriert und nicht auf das Erstellen einer neuen Sitzung. –

+2

Eine kurze Notiz zu 'Ca:' Syntax .... "Allen Bildschirmbefehlen ist ein Escape-Schlüssel vorangestellt, standardmäßig' Ca' (das ist Control-a, manchmal geschrieben^a'). Um ein Literal 'Ca zu senden 'zu den Programmen auf dem Bildschirm, verwenden Sie' Ca a'. Dies ist nützlich, wenn Sie mit Bildschirm innerhalb des Bildschirms arbeiten. Zum Beispiel 'Ca an' wird Bildschirm in ein neues Fenster auf dem Bildschirm innerhalb des Bildschirms bewegen. (ref: http://aperiodic.net/screen/quick_reference) –

+0

Sehr geschätzt. Auch wenn ich weiß, dass du mit einem Namen anfangen kannst, fange ich oft an, ohne Namen zu nennen, und wünsch mir später etwas. Vielen Dank! – Ketzak

1

Ich bin ein Anfänger auf dem Bildschirm, aber ich finde es immens nützlich beim Wiederherstellen verlorener Verbindungen. Ihre Frage wurde bereits beantwortet, aber diese Information könnte als Add-On dienen - ich benutze Putty mit Putty Connection Manager und nenne meine Bildschirme - "tab1", "tab2", etc. - wie für mich das Gesamtbild des 8-10 Tabs ist wichtiger als jeder einzelne Tab-Name. Ich verwende den achten Registerkarte db für den Anschluss, die 7. für die Anzeige von Protokollen usw. Also, wenn ich meine Bildschirme wieder zu befestigen mag ich habe ein einfaches Wrapper geschrieben, das sagt:

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

wo erstes Argument auf die Registerkarte Zahl ist.

+0

Dies könnte besser als eine Bash-Funktion gemacht werden. –

8

Die Verwendung einfachste Weg Bildschirm mit dem Namen

screen -S 'name' 'application' 
  • Ctrl + eine, d = verlassen und offen lassen, Anwendung

Zurück zum Bildschirm:

screen -r 'name' 

zum Beispiel mit Bildschirm

erstellen Bildschirm mit Luchs:

screen -S lynx lynx 

Ctrl + ein, d = Ausfahrt

später können Sie mit zurück:

screen -r lynx 
+15

Drei Probleme damit. Zuerst haben mehrere Leute dies bereits gepostet. Zweitens erzählst du ihm grundlegende Dinge über die Bildschirmnutzung, die er bereits kennt. Drittens hast du die Frage nicht wirklich beantwortet, da er gefragt hat, wie man eine bereits bestehende Bildschirmsitzung benennen soll. –

43

Wie bereits erwähnt, funktioniert screen -S SESSIONTITLE zum Starten einer Sitzung mit einem Titel (SESSIONTITLE), aber wenn Sie eine Sitzung starten und später entscheiden, den Titel zu ändern. Dies kann unter Verwendung der Standardtastenbelegungen erreicht werden:

Ctrl + ein, A

Welche fordert:

Set windows title to:SESSIONTITLE 

ändern SESSIONTITLE von backspacing und Eingabe des gewünschten Titel . Um die Namensänderung zu bestätigen und alle Titel aufzulisten.

Ctrl + ein, "

+31

Sie behandeln die Begriffe _session_ und _window_ als austauschbar, wenn dies nicht der Fall ist. 'Strg + a',' A' setzt nicht den Namen _session_ ('SESSIONNAME'), sondern nur den aktuellen Titel _window_. Titel von Fenstern innerhalb einer Sitzung erscheinen nicht in der Liste der Sitzungen, wenn sie mit 'screen -list' abgefragt werden. In der Frage wird gefragt, wie der Name _session_ festgelegt wird. – StvnW

+2

nützlich, aber es ändert aktuellen Fenstertitel, nicht Sitzungsname. – Znik

Verwandte Themen