Registerkarten bei Verwendung von "Bildschirm"


20

Ich benutze Ubuntu 10.04. Nachdem ich installiert habe screen:

sudo apt-get install screen

Ich habe zwei SSH- Verbindungen zu zwei Remote-Servern hergestellt, indem ich die folgenden Schritte schrittweise ausgeführt habe (ich führe die folgenden Schritte gemäß dem Dokument hier aus ):

1. Öffnen Sie ein Terminalfenster und führen Sie den Befehl ausscreen

2. Drücken Sie Ctrl+ A+ c, um eine neue virtuelle Konsole zu erstellen

3. ssh usr@IP1

Zu diesem Zeitpunkt habe ich eine virtuelle Konsole, die anzeigt, dass ich eine Verbindung zum Remote-Server (IP1) hergestellt habe.

4. Drücken Sie Ctrl+ A+ c, um eine neue virtuelle Konsole zu erstellen

5. ssh usr@IP2

Nun habe ich eine Verbindung zu zwei Remote-Servern (IP1 & IP2) hergestellt. Aber , ich habe nicht zwei Registerkarten auf einem Terminal - Fenster, stattdessen muss ich verwenden Ctrl+ A+ pund Ctrl+ A+ nzum Umschalten zwischen den beiden virtuellen Konsole in einem Terminal - Fenster.

Wäre es nicht so, dass screenich mit zwei Registerkarten in einem Terminalfenster arbeiten könnte, wobei auf jeder Registerkarte eine Verbindung zu einem Remote-Server angezeigt wird. Warum habe ich die Registerkarten nicht in meinem Terminalfenster?

Antworten:


26

Hier ist meine .screenrc, die ich überall verwende, um meine screenZahlen als Tabulatoren am unteren Rand des Fensters und eine Informationszeile über den Tabulatoren zu sehen . Der Teil, den Sie wirklich brauchen, befindet sich unter "Look and Feel".

# skip the startup message
startup_message off

# go to home dir
chdir

# Automatically detach on hangup. 
autodetach on

# Change default scrollback value for new windows
defscrollback 10000

# start with visual bell as default
vbell on
vbell_msg "bell on %t (%n)"

# look and feel
caption always "%{= bb}%{+b w}%n %t %h %=%l %H %c"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"

activity "Activity in %t(%n)"

shelltitle "shell"
shell -$SHELL

Sie könnten zusätzlich die folgenden hinzufügen automatisch zwei hinzufügen Tabs , wenn die screenursprünglich erstellt:

screen ssh usr@IP1
screen ssh usr@IP2

Der Statusinhalt kann auch mithilfe von Escape-Codes aktualisiert werden , die von Shell-Befehlen und Eingabeaufforderungen ausgegeben werden. Zum Beispiel aktualisiere ich den Status mit dem aktuellen Verzeichnis, indem ich dies in meinem verwende .bashrc:

if [ 'screen' == "${TERM}" ]; then
  export PROMPT_COMMAND='printf "\e]2;%s %s\a" "${USER}" "${PWD}" '
fi

4
Ich habe mich immer gefragt, warum es ausnahmslos einige Hardcore-Konfigurationen erfordert, um den Bildschirm zum Arbeiten zu bringen. PS Versuchen Sie shelltitle "$ |shell:", den Befehlsnamen an den Titel anzuhängen.
Amphetamachine

7

Wenn Sie Ctrl+ drücken aund "der Bildschirm "Registerkarten" angezeigt wird, sollten dies keine Registerkarten auf Ihrer Terminal-GUI sein. Sie können dies manuell tun, indem Sie auf der verwendeten Terminal-GUI eine neue Registerkarte erstellen und dann auf der neuen ausführen Registerkarte screen -r, um zu Ihrer Bildschirmsitzung zurückzukehren und dann mit Ctrl+ aund einer Nummer zu der gewünschten Sitzung zu navigieren, oder "um ein Menü mit all Ihren Registerkarten anzuzeigen.

Sie können jedem "Reiter" auf Ihrem Bildschirm einen Namen geben, indem Sie Ctrl + und a dann drücken A .


1
Sollte ausgeführt werden müssen, screen -r -xwenn dieser Bildschirm bereits in der ersten Registerkarte angehängt ist.
Arcege

3

Ich vermute, Sie verwechseln die Registerkarten auf Grafikterminals wie der Konsole mit denen auf dem Bildschirm. Im Bildschirm wechseln Sie nur den Inhalt eines Fensters mit den genannten ^ A-Kombinationen. Dies funktioniert auch in einer nicht grafischen Umgebung.


2

Sie könnten konfigurieren screen , dass eine Statuszeile angezeigt wird, die Sie über viele Dinge informieren kann. Ich nehme auch an, in welchem ​​Bildschirmfenster Sie sich befinden, aber ich verwende keine Statuszeile, kann also nicht sicher sagen.

Soweit ich weiß, screenerstellen Sie keine Registerkarten, aber Sie müssen mit dem von Ihnen angegebenen Befehl zwischen den Bildschirmen wechseln, oder wie ich es vorziehe Ctrl- A 1, Ctrl- A 2usw.

Um mehr als eine Registerkarte zu haben, können Sie gnome-terminalFunktionen auch ohne Bildschirm verwenden: Ctrl- Shift- Terstellt eine neue Registerkarte und Alt- 1, Alt- 2usw. wechselt zwischen den Registerkarten.

Ich frage auch, warum Sie nicht Bildschirm auf dem Server ausführen, also nur eine SSH-Verbindung verwenden (aber in diesem Fall ohne Registerkarte).


2

Ich weiß, dass dies ziemlich alt ist, aber da Google mich hierher geführt hat, können andere dies auch lesen. Also hier ist mein Hack von 0,02 USD, um Tabs in einer "Bildschirm" -Sitzung nachzuahmen:

Bauen Sie eine Statuszeile mit:

  • auf der linken Seite: Datum / Uhrzeit
  • auf der rechten Seite: lokaler Hostname + durchschnittliche Last
  • in der mitte: die namen des bildschirms "windows"
    • Aktuelles Fenster: roter Text auf schwarzem Hintergrund
    • andere Fenster: weißer Text in der Hintergrundfarbe der Statuszeile (blau, hier)

Setzen in ~/.screenrc:

hardstatus alwayslastline "%{kb}%{c}[%{w}%D %d/%m/%Y %c:%s%{c}] %{w}%-w%{rk}%n %t%{wb}%+w %=%{c}[%{W}%H %l%{c}]"

(Vielleicht ist das mehr als $ 0.02 wert, weil ich eine ganze Weile damit gekämpft habe ;-)

So wechseln Sie mit den Tasten F6/ vom aktuellen Fenster zum vorherigen / nächsten F7:

bindkey -k k6 prev
bindkey -k k7 next
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.