Wie ordne ich einen Namen für einen Bildschirm zu? [geschlossen]

471

Ich verwende das screenMultiplexer-Tool in der Befehlsshell und öffne viele Bildschirme. Ich vergesse dann, welche Prozess-ID welcher Aufgabe zugeordnet ist.

Ich möchte einen Namen für einen Bildschirm festlegen, kann jedoch keine Option in der Manpage finden.

Derzeit sieht die Auflistung der Bildschirme folgendermaßen 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 würde gerne 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 machen?

spankmaster79
quelle
4
Die Frage sieht eher so aus, als würde sie gefragt, wie vorhandene Sitzungen umbenannt werden sollen, anstatt wie neue Sitzungen mit einem Namen gestartet werden sollen. In diesem Zusammenhang ist die aktuell gewählte Antwort nicht wirklich angemessen. Die richtige Antwort sollte eher die sein, die von user164176- stackoverflow.com/a/3309696/636762
Rakib
Die Namen Ihrer Bildschirmsitzungen legen nahe, dass Sie eine neue Bildschirmsitzung für eine einzelne Aufgabe (möglicherweise einen einzelnen Befehl) erstellen. Der Bildschirm unterstützt mehrere Fenster , sodass Sie alle diese Aufgaben in einer einzigen Bildschirmsitzung ausführen können.
Melebius
3
Kann dies auf SuperUser (oder eine andere StackExchange-Site) migriert werden? Offensichtlich ist es für viele Leute sehr nützlich, obwohl es außerhalb des Rahmens dieser speziellen Site liegt.
Patrick Sanan
1
Wenn Sie auf dieser Seite eine Option finden, um sie mit der gesamten Geschichte dorthin zu verschieben, würde ich zustimmen, sie zu verschieben
spankmaster79

Antworten:

652

So starten Sie eine neue Sitzung

screen -S your_session_name

So benennen Sie eine vorhandene Sitzung um

Ctrl+ a, :Sitzungsname YOUR_SESSION_NAMEEnter

Sie müssen sich in der Sitzung befinden

user164176
quelle
14
Dies ist die geeignete Lösung, da sie sich darauf konzentriert, die vorhandene Sitzung umzubenennen, anstatt eine neue zu erstellen.
thanos.a
4
Ein kurzer Hinweis zur C-a :Syntax ... "Allen Bildschirmbefehlen wird standardmäßig eine Escape-Taste vorangestellt C-a(das ist Control-a, manchmal geschrieben ^a). C-aVerwenden Sie C-a adiese Option , um ein Literal an die Programme auf dem Bildschirm zu senden . Dies ist nützlich, wenn Sie mit arbeiten Bildschirm innerhalb des Bildschirms. C-a a nVerschiebt beispielsweise den Bildschirm in ein neues Fenster auf dem Bildschirm innerhalb des Bildschirms. " (Ref: aperiodic.net/screen/quick_reference )
Nate Ritter
Sehr geschätzt. Obwohl ich weiß, dass Sie mit einem Namen beginnen können, beginne ich oft ohne Namen und wünschte, ich könnte es später tun. Vielen Dank!
Ketzak
2
stimmte zu, nachdem
ich
Kann ich das C-a :sessionname NEWNAMEan etwas binden, das schneller zu tippen ist? Ich habe es versucht, bind $ sessionnameaber jetzt, wenn ich C-a $nicht nach einem neuen Namen frage. Ist das irgendwie möglich?
Andreas-h
592

fooVerwenden Sie, um einen neuen Bildschirm mit dem Namen zu erstellen

screen -S foo

Um es wieder anzubringen, laufen Sie

screen -r foo  # or use -x, as in
screen -x foo  # for "Multi display mode" (see the man page)
Miedwar
quelle
16
In Ihrer Lösung erklären Sie, wie Sie neue mit korrekten Namen erstellen, anstatt die vorhandenen zu ändern. Es gibt niemanden, der die Sitzung beenden möchte, wenn es möglich ist, sie beizubehalten.
thanos.a
10
Scrollen Sie nach unten zur Antwort von Benutzer164176, um zu sehen, wie vorhandene Sitzungen umbenannt werden.
jlh
1
Die Frage sieht eher so aus, als würde sie gefragt, wie vorhandene Sitzungen umbenannt werden sollen, anstatt wie neue Sitzungen mit einem Namen gestartet werden sollen. In diesem Zusammenhang ist die aktuell gewählte Antwort nicht wirklich angemessen. Die gewählte richtige Antwort sollte eher die sein, die von user164176- stackoverflow.com/a/3309696/636762 unten
Rakib
Ich suchte bei Google nach "Ubuntu erstelle einen neuen Bildschirm mit Namen" und dies war das erste Ergebnis. Genau das, wonach ich gesucht habe :) Danke
Skylord123
So benennen Sie eine Sitzung um: Strg + a ,: Sitzungsname YOUR_SESSION_NAME Geben Sie ein.
Lösche
51

Wie bereits erwähnt, screen -S SESSIONTITLEfunktioniert das Starten einer Sitzung mit einem Titel ( SESSIONTITLE). Wenn Sie jedoch eine Sitzung starten und später entscheiden, den Titel zu ändern. Dies kann mithilfe der Standardschlüsselbindungen erreicht werden:

Ctrl+ a,A

Welche Eingabeaufforderungen:

Set windows title to:SESSIONTITLE

Ändern Sie dies SESSIONTITLEdurch Zurücksetzen und Eingeben des gewünschten Titels. Um die Namensänderung zu bestätigen und alle Titel aufzulisten.

Ctrl+ a,"

E4Y
quelle
40
Sie behandeln die Begriffe Sitzung und Fenster als austauschbar, wenn dies nicht der Fall ist. Ctrl+a, Asetzt nicht den Sitzungsnamen ( SESSIONNAME), sondern nur den aktuellen Fenstertitel . Fenstertitel innerhalb einer Sitzung werden bei der Abfrage mit nicht in der Liste der Sitzungen angezeigt screen -list. In der Frage wird gefragt, wie der Sitzungsname festgelegt werden soll .
StvnW
5
nützlich, aber es ändert den aktuellen Fenstertitel, nicht den Sitzungsnamen.
Znik
13

Am einfachsten ist es, einen Bildschirm mit Namen zu verwenden

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

Zurück zum Bildschirm:

screen -r 'name'

Zum Beispiel mit Luchs mit Bildschirm

Bildschirm erstellen:

screen -S lynx lynx

Ctrl+ a, d= beenden

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

screen -r lynx
OneOFPunx
quelle
18
Drei Probleme damit. Erstens haben dies bereits mehrere Personen gepostet. Zweitens erzählen Sie ihm grundlegende Informationen zur Bildschirmnutzung, die er bereits kennt. Drittens haben Sie die Frage nicht beantwortet, da er gefragt hat, wie eine bereits vorhandene Bildschirmsitzung benannt werden soll.
Steely Dan
0

Ich bin ein Anfänger im Screening, aber ich finde es immens nützlich, wenn ich verlorene Verbindungen wiederherstelle. Ihre Frage wurde bereits beantwortet, aber diese Informationen können als Add-On dienen. Ich verwende Putty mit Putty Connection Manager und benenne meine Bildschirme - "tab1", "tab2" usw. - wie für mich das Gesamtbild der 8-10 Registerkarten sind wichtiger als jeder einzelne Registerkartenname. Ich verwende die 8. Registerkarte zum Herstellen einer Verbindung mit db, die 7. zum Anzeigen von Protokollen usw. Wenn ich meine Bildschirme wieder anbringen möchte, habe ich einen einfachen Wrapper geschrieben, der besagt:

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

Dabei ist das erste Argument die Tabulatornummer.

Saurabh Hirani
quelle
1
Dies kann besser als Bash-Funktion durchgeführt werden.
Paul Price