Diese kurze Anleitung erklärt, wie Sie überprüfen können, ob Sie sich im Bildschirm befinden Sitzung oder nicht in Linux. Wie Sie vielleicht bemerkt haben, wenn Sie einen Tmux starten Session, sehen Sie natürlich die Sitzungsdetails, wie z. B. den aktuellen SHELL-Namen, Hostnamen und aktuelles Datum und Uhrzeit, in der Statusleiste unten, wie im folgenden Bild gezeigt.
Tmux-Sitzungsdetails
Aber Sie werden solche Details nicht sehen, wenn Sie sich in den Screen-Sitzungen befinden. So sieht die Bildschirmsitzung auf meinem Ubuntu-System aus:
Bildschirmsitzung
Erkennst du den Unterschied? Die Bildschirmsitzung und die normale Sitzung sehen genau gleich aus. Lassen Sie uns den Befehl "screen -ls" ausführen, um die laufenden Bildschirmsitzungen aufzulisten.
$ screen -ls
Beispielausgabe:
Bildschirmsitzungen auflisten
Sehen? Ich befinde mich in der Bildschirmsitzung, aber es sieht aus wie eine normale Sitzung. Es gibt keine Anzeige in der Statusleiste unten. Woher wissen Sie, ob Sie in einer Screen-Sitzung arbeiten oder nicht? Das werden wir jetzt herausfinden.
Überprüfen Sie, ob Sie sich in einer Bildschirmsitzung befinden oder nicht in Linux
Es gibt mehrere Möglichkeiten, um zu überprüfen, ob wir uns in einer Bildschirmsitzung befinden. Hier habe ich drei Methoden angegeben.
Methode 1 - Verwendung des "Echo"-Befehls
Um zu überprüfen, ob Sie sich in einer Bildschirmsitzung befinden oder nicht, führen Sie einfach den folgenden Befehl aus:
$ echo $STY
Wenn Sie sich in der Bildschirmsitzung befinden, sehen Sie eine Ausgabe wie unten.
18704.pts-0.ostechnix
Hier ist eine weitere Möglichkeit, um zu überprüfen, ob Sie sich in einer Bildschirmsitzung befinden:
$ echo $TERM
Sie sehen den Begriff "Bildschirm" in der Ausgabe.
Beispielausgabe:
screen.xterm-256color
Überprüfen Sie, ob Sie sich in einer Bildschirmsitzung unter Linux befinden
Wenn keine Bildschirmsitzungen ausgeführt wurden, wird für den ersten Befehl nichts angezeigt. Und für den zweiten Befehl wird der Begriff "Bildschirm" nicht in der Ausgabe enthalten sein. Beenden oder trennen Sie sich einfach von der Bildschirmsitzung und führen Sie die obigen Befehle erneut aus. Sie werden eine Ausgabe wie unten sehen.
Bildschirmsitzungen prüfen
Sehen? Wir befinden uns nicht in der Bildschirmsitzung.
Die beiden obigen Befehle funktionieren nur, wenn Sie sich auf Ihrem lokalen System in der laufenden Bildschirmsitzung befinden. Es funktioniert nicht, wenn Sie die Screen-Sitzung im lokalen System gestartet haben und dann über SSH auf ein anderes System im Netzwerk zugreifen.
In diesem Fall können Sie die zweite unten angegebene Methode verwenden.
Methode 2 - Verwendung des Bildschirmpräfixschlüssels
Um zu überprüfen, ob wir uns in einer Bildschirmsitzung befinden oder nicht, drücken Sie einfach Strg+a und dann Strg+t Schlüssel. Dies zeigt die Uhrzeit und den Hostnamen an, wenn Sie sich in einer Bildschirmsitzung befinden.
Sehen Sie sich die folgende Demo an.
Überprüfen Sie, ob Sie sich in einer Bildschirmsitzung befinden, indem Sie die Bildschirmpräfixtaste
verwendenWie Sie in der obigen Ausgabe,
- Zuerst habe ich eine Bildschirmsitzung gestartet und die Tasten Strg+a und Strg+t gedrückt, um zu prüfen, ob ich mich in der Bildschirmsitzung befinde.
- Dann habe ich mich von der Bildschirmsitzung getrennt, indem ich Strg+a gedrückt habe und d .
- Und schließlich habe ich mich wieder der Bildschirmsitzung angeschlossen und Strg+a und Strg+t gedrückt, um erneut zu überprüfen, ob ich mich in der Bildschirmsitzung befinde.
Diese Methode funktioniert, selbst wenn Sie mit SSH woanders hingegangen sind.
Methode 3 - Verwendung des Caption-Befehls
Wenn Sie nicht jedes Mal die Tasten drücken möchten, können Sie den folgenden Code in Ihre ~/.screenrc einfügen Datei. Wenn diese Datei nicht verfügbar ist, erstellen Sie sie einfach.
$ nano ~/.screenrc
Fügen Sie den Code hinzu:
caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"
Speichern und schließen Sie die Datei.
Von nun an sehen Sie jedes Mal, wenn Sie eine Bildschirmsitzung starten, eine kleine Benachrichtigungsleiste (einschließlich Hostname, Uhrzeit und Datum, Systemlast usw.) am unteren Rand des Terminalfensters, wie unten gezeigt.
Screen session on ubuntuserver (system load: 0.00 0.00 0.00) Sat 22.02.2020 12:37
Zeigen Sie Sitzungsdetails am unteren Rand des Terminalfensters mit dem Caption-Befehl an
Diese Benachrichtigungsleiste wird ausgeblendet, nachdem Sie die Bildschirmsitzung verlassen haben.
Methode 4 – Legen Sie eine andere Bash-Eingabeaufforderung für Bildschirmsitzungen fest
Dies ist eine weitere Möglichkeit, Bildschirmsitzungen leicht erkennbar zu machen, indem Sie ein paar Codezeilen in ~/.bashrc hinzufügen Datei. Eigentlich ist dies keine empfohlene Methode . Es kann viele unnötige Probleme verursachen, wenn eine andere Shell wie zsh Ihre aktuelle Shell erbt. Dies dient nur zu pädagogischen Zwecken. Verwenden Sie es auf eigene Gefahr!
Sichern Sie zuerst Ihre aktuelle ~/.bashrc Datei:
$ cp ~/.bashrc ~/.bashrc.bak
Legen Sie einfach einen anderen Bash-Eingabeaufforderungsnamen für normale und Bildschirmsitzungen fest, wie Sie es unten wünschen. Zum Beispiel habe ich die folgenden Zeilen in meiner ~/.bashrc hinzugefügt Datei.
if [ -z $STY ] then PS1="This is normal session:~$ " else PS1="This is Screen session:~$ " fi
Melden Sie sich ab und wieder an. Der Name Ihrer Terminal-Eingabeaufforderung ändert sich gemäß Ihren Einstellungen, während Sie zwischen normalen und Bildschirmsitzungen wechseln.
Legen Sie eine andere Bash-Eingabeaufforderung für Bildschirmsitzungen fest
Nochmals:Es ist keine gute Praxis, den Namen der Bash-Eingabeaufforderung zu ändern. Verwenden Sie stattdessen einfach eine der vorherigen Methoden, um zu überprüfen, ob Sie sich in einer Bildschirmsitzung befinden oder nicht.
Verwandte Lektüre:
- So passen Sie die Bash-Eingabeaufforderung unter Linux an
Hoffe das hilft.