Gibt es eine Möglichkeit, einer Unix-Bildschirmsitzung einen bestimmten Namen zu geben? Nehmen wir zum Beispiel an, ich führe dasselbe Programm mehrmals mit unterschiedlichen Parametern aus und möchte feststellen, welches Programm welches ist.
gnu-screen
Naja eigentlich
quelle
quelle
Antworten:
Sie können eine Sitzung benennen, wenn Sie sie mit der
-S name
Option starten . Innerhalb eines laufenden Bildschirms können Sie ihn durch Eingabe ändernCTRL-a, :sessionname name
. Sie können laufende Bildschirmsitzungen mit anzeigenscreen -ls
und mit namentlich eine Verbindung herstellenscreen -xS name
.Innerhalb einer einzelnen Bildschirmsitzung können Sie jedes Fenster auch benennen. Geben
CTRL-a, A
Sie dazu den gewünschten Namen ein. Sie können eine interaktive Liste benannter Fenster anzeigen, indem Sie Folgendes eingebenCTRL-a, "
und das Fenster auswählen, zu dem Sie wechseln möchten.Das Benennen von Bildschirmen und Terminals in Bildschirmen ist sehr hilfreich, um sich zu erinnern, was sie sind und warum Sie sie überhaupt gestartet haben.
quelle
:sessionname NEWNAME
), wird jedoch "im Allgemeinen nicht empfohlen". Die$STY
Umgebungsvariable verweist weiterhin auf den ursprünglichen Namen. Siehescreen
Handbuch: gnu.org/software/screen/manual/html_node/Session-Name.htmlHier gibt es zwei Konzepte, und ich bin mir nicht sicher, welches Sie im Sinn haben:
C-a c
Erstellt ein FensterC-a n
undC-a p
wechselt zum nächsten / vorherigen Fenster und so weiter.-r
oder-R
) starten, wird eine neue Sitzung erstellt.Windows verfügt über Titel, die über die
-t
Befehlszeilenoption, dieC-a A
Tastenbindung, dentitle
Befehl oder die\ek
Escape-Sequenz festgelegt werden können. Weitere Informationen finden Sie in der Antwort von Shellter .Sitzungen können Namen haben. Normalerweise wird der Name in der Befehlszeile mit der
-S
Option festgelegt. Wenn Sie keinen Namen angeben, wird dieser auf dem Bildschirm angezeigt. Wenn Sie mehrere Bildschirmsitzungen verwenden, geben Sie ihnen normalerweise unterschiedliche Sitzungsnamen. Sie können die laufende Bildschirmsitzung mitscreen -ls
auflisten. Das erste Wort in jeder Sitzungszeile ist,12345.sessionname
wo 12345 die Bildschirmprozess-ID ist. Verwenden Siescreen -r sessionname
oderscreen -r 12345
, um eine Sitzung fortzusetzen, die durch den Namen oder die Prozess-ID angegeben ist.quelle
Ah ... Screen, es bringt mich zurück ;-)
Für ein Fenster
Für mehrere Sitzungen, die von Ihrem .screenrc aus gestartet wurden
Hier ist ein Link zu einer Online-Kopie der Manpage für screen.
Bearbeiten: hinzugefügt
Um den Namen des aktuellen Bildschirms zu ändern, erstellen Sie ein Shell-Skript-Tool wie
Ungetestet, auf dem System, an dem ich arbeite, ist kein Bildschirm verfügbar.
quelle
screen
mindestens 25 Jahre gebraucht . Nimmt mich zurück, denn jetzt ist es ein spezieller Anwendungsfall, zu dem ich mich begeben würdescreen
. Normalerweise öffne ich einfach weiterX-Terms
, aber ich erinnere mich, als es unmöglich schien,X
auf einem 486 PC zu laufen ;-) Prost!Während des Laufens
screen
:Ctrl+a
(oder was auch immer Ihrescreen
Escape-Sequenz ist)A
quelle
In den obigen Antworten ist bereits angegeben, wie ein Bildschirm beim Starten benannt wird. Sie weisen auch darauf hin, dass ein Bildschirm nach dem Start nicht mehr umbenannt werden kann. Der Fenstertitel kann festgelegt werden, aber der Name, der zum Anhängen an den Bildschirm verwendet wird, bleibt pid.pty.host.
Um jedoch einen nützlichen Effekt zu erzielen, habe ich festgestellt, dass die Verwendung von Alias ziemlich gut funktioniert. Wenn ich vergesse, einen Bildschirm zu benennen, oder mich in einer Sitzung mit einer Reihe von Bildschirmen wiederfinde, die natürlich zu Bildschirmen für bestimmte Aufgaben geworden sind, lege ich einfach einen Alias für den Befehl fest, der an diese angehängt werden soll.
Beispiel:
Wenn Sie den Alias-Befehl selbst eingeben, werden Sie daran erinnert, über welche Bildschirme Sie verfügen und welchen Befehl Sie zum Anhängen an diese festgelegt haben.
Verwenden Sie
unalias
, um sie zu entfernen.quelle