it-swarm.com.de

Festlegen eines Namens für eine Bildschirmsitzung

Gibt es eine Möglichkeit, einer Unix-Bildschirmsitzung einen bestimmten Namen zu geben? Angenommen, ich führe dasselbe Programm mehrmals mit jeweils unterschiedlichen Parametern aus und möchte feststellen, welches welches ist.

62
well actually

Sie können eine Sitzung benennen, wenn Sie sie mit der Option -S name Starten. Innerhalb eines laufenden Bildschirms können Sie ihn ändern, indem Sie CTRL-a, :sessionname name Eingeben. Sie können laufende Bildschirmsitzungen mit screen -ls Anzeigen und mit screen -xS name Eine Verbindung zu einer Sitzung mit Namen herstellen.

Innerhalb einer einzelnen Bildschirmsitzung können Sie auch jedes Fenster benennen. Geben Sie dazu CTRL-a, A Und dann den gewünschten Namen ein. Sie können eine interaktive Liste benannter Fenster anzeigen, indem Sie CTRL-a, " Eingeben und aus dieser Liste das Fenster auswählen, zu dem Sie wechseln möchten.

Das Benennen von Bildschirmen und Terminals innerhalb von Bildschirmen ist sehr hilfreich, um sich daran zu erinnern, was sie sind und warum Sie sie überhaupt gestartet haben.

73
Lars Yencken

Hier gibt es zwei Konzepte, und ich bin mir nicht sicher, welches Sie im Sinn haben:

  • Sie können mehrere Bildschirmfenster haben. In jedem Fenster wird eine Shell oder ein anderes Programm ausgeführt. Alle Fenster werden nach demselben Verfahren gehostet. C-a c Erstellt ein Fenster, C-a n Und C-a p Wechseln zum nächsten/vorherigen Fenster und so weiter.
  • Sie können mehrere Bildschirmsitzungen durchführen. Jede Sitzung wird von einem eigenen Prozess gehostet und ist unabhängig von allen anderen Sitzungen. Der Startbildschirm ohne erneutes Anhängen (-r Oder -R) Erstellt eine neue Sitzung.

Windows verfügt über Titel, die über die Befehlszeilenoption -t, Die Tastenbindung C-a A, Den Befehl title oder die Escape-Sequenz \ek Festgelegt werden können. Siehe Antwort des Shellters für weitere Details.

Sitzungen können Namen haben. Normalerweise setzen Sie den Namen in der Befehlszeile mit der Option -S. Wenn Sie keinen Namen angeben, wird auf dem Bildschirm ein Name angezeigt. Wenn Sie mehrere Bildschirmsitzungen verwenden, geben Sie ihnen normalerweise unterschiedliche Sitzungsnamen. Sie können die laufende Bildschirmsitzung mit screen -ls Auflisten. Das erste Wort in jeder Sitzungszeile ist 12345.sessionname, wobei 12345 die Bildschirmprozess-ID ist. Verwenden Sie screen -r sessionname Oder screen -r 12345, Um eine Sitzung fortzusetzen, die durch den Namen oder die Prozess-ID angegeben ist.

Ah ... Bildschirm, es bringt mich zurück ;-)

Für ein Fenster

-t name
    sets the title (a.k.a.) for the default Shell or specified program. 
    See also the "shelltitle" .screenrc command.

Für mehrere Sitzungen, die von Ihrem .screenrc aus gestartet wurden

screen -t top 2 Nice top
screen -t ....

Hier ist ein Link zu einer Online-Kopie der Manpage für Bildschirm.

Bearbeiten: hinzugefügt

Um den aktuellen Bildschirmnamen zu ändern, erstellen Sie ein Shell-Skript-Tool wie

cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'

Ungetestet ist auf dem System, an dem ich arbeite, kein Bildschirm verfügbar.

12
shellter

Während der Ausführung von screen:

Ctrl+a (oder was auch immer Ihre screen Escape-Sequenz ist) A

4
ninjalj

Die obigen Antworten zeigen Ihnen bereits, wie Sie einen Bildschirm benennen, wenn Sie ihn starten. Sie weisen auch darauf hin, dass ein Bildschirm nach dem Start nicht 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 einen nützlichen Effekt zu erzielen, habe ich jedoch 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 befinde, die natürlich zu Bildschirmen für bestimmte Aufgaben geworden sind, setze ich einfach einen Alias ​​für den Befehl, der an sie angehängt werden soll.

beispiel:

alias goncompile='screen -r 2354'

Wenn Sie den Alias-Befehl selbst ausgeben, werden Sie daran erinnert, welche Bildschirme Sie geöffnet haben und welchen Befehl Sie zum Anhängen an sie festgelegt haben.

Verwenden Sie unalias, um sie zu entfernen.

3
caoimhin