Versteckte Funktionen des Bildschirms

Antworten:

31

Ich liebe es , es für den Anschluss an serielle Konsolen zu verwenden, dh

screen /dev/ttyS0 19200

Dieser Befehl öffnet einfach eine Verbindung zum seriellen Port 0 (ttyS0) mit einer Baudrate von 19200

Scott Pack
quelle
Dies ist eine meiner Lieblingsbeschäftigungen, mit der ich Leute ausflippen kann, eine der am wenigsten erwarteten Funktionen des Bildschirms
epic9x
1
Und wirklich einer meiner Favoriten. Ich musste mich nicht mit Minicom, Conserver usw. auseinandersetzen oder sie konfigurieren. Als ich das entdeckte, fühlte ich mich wie ein kleines Kind in einem Süßwarengeschäft.
Scott Pack
Auf jeden Fall - es ist schön, wenn eine Bildschirmsitzung geöffnet ist, die in zwei Fenster aufgeteilt ist und beide USB-Serial-Dongles sichtbar sind.
Dotwaffle
10

Das beste Feature von screenist Byobu (früher Screen-Profile), das seit Jaunty standardmäßig mit Ubuntu ausgeliefert wird: https://launchpad.net/byobu

Es ist ein Konfigurationsmanager mit sehr guten Standardeinstellungen, zahlreichen Statusbenachrichtigungen und nützlichen Tastaturkürzeln (z. B. F2 für neuen Bildschirm, F3-F4 für vorherige / nächste usw.).

Ich gehe wirklich nirgendwo mehr ohne :)

KTamas
quelle
10

Aus KTamas 'Antwort: Mehr als eine Person kann denselben Bildschirm verwenden, dh wenn ein Freund von Ihnen sshan Ihrem Computer angemeldet ist , kann er eine Verbindung zu Ihrem Bildschirm herstellen. Es ist großartig, wenn zwei oder drei Leute an denselben Projekten arbeiten.

Josh
quelle
1
Dies ist viel besser, um zu verfolgen, was Remote-Support-Benutzer tun, und um ihre Sitzung zu beenden, wenn sie nichts Gutes tun!
Tom O'Connor
6

Nicht gerade ein "verstecktes Merkmal"; Aber eine richtig eingerichtete .screenrc-Datei kann einen großen Unterschied machen. Eines der besseren Beispiele kann durch googeln von screenrc und 'brad sims' gefunden werden - er hat eine ausgezeichnete Datei zum Basteln.

Das heißt, meine bevorzugte Einstellung wäre Bindkey:

# bind F7  to detach screen session from this terminal
# bind F8  to kill current screen window.
# bind F9  to create a new screen
# bind F10 to rename current screen window
# bind F11 to move to previous window
# bind F12 to move to next window
bindkey -k k7 detach
bindkey -k k8 kill
bindkey -k k9 screen
bindkey -k k; title
bindkey -k F1 prev
bindkey -k F2 next
Eddy
quelle
2
In Anbetracht dessen, dass Strg + a außerhalb des Bildschirms zu oft verwendet wird (Zeilenanfang in Bash?), Gefällt mir das.
Scott Pack
1
Strg + a / Strg + e zum Bewegen des Cursors, aber auch, wenn Minicom auf einem Bildschirm ausgeführt wird. Strg + a, a, o für Optionen ...
Petrus
6

Ich kann mich nicht erinnern, wem ich das gestohlen habe (jemand auf dotfile.org). Ich habe es für ssh leicht modifiziert:

#!/bin/sh
# scr - Runs a command in a fresh screen
#
# Get the current directory and the name of command

wd=`pwd`
cmd=$1
shift

# We can tell if we are running inside screen by looking
# for the STY environment variable.  If it is not set we
# only need to run the command, but if it is set then
# we need to use screen.

if [ -z "$STY" ]; then
        $cmd $*
else
        # Screen needs to change directory so that
        # relative file names are resolved correctly.
        screen -X chdir $wd

        # Ask screen to run the command
        if [ $cmd == "ssh" ]; then
                screen -X screen -t ""${1##*@}"" $cmd $*
        else
                screen -X screen -t "$cmd $*" $cmd $*
        fi
fi

Dann habe ich folgende Bash-Aliase gesetzt:

vim() {
        scr vim $*
}

man() {
        scr man $*
}

info() {
        scr info $*
}

watch() {
        scr watch $*
}

ssh() {
        scr ssh $*
}

Es wird ein neuer Bildschirm für die oben genannten Aliase geöffnet, und wenn ssh verwendet wird, wird der Bildschirmtitel mit dem ssh-Hostnamen umbenannt.

Prost z0mbix

z0mbix
quelle
:O. Hast du es von mir gehoben und angepasst? gist.github.com/137214
VxJasonxV
Nein, ich glaube, es war von einem Mitarbeiter von last.fm, der einmal darüber gebloggt hat.
z0mbix
4

Eine Sache, die ich nützlich finde, ist, dass der Bildschirm eine größere Breite als Ihr Terminal emulieren kann. Ich finde dies nützlich, wenn ich lessechte Protokolldateien verwende und die Zeilen nicht umbrechen soll. Verwenden von:

Ctrl-A:width -w 999

Ich kann festlegen, dass screen's breiter als mein Terminal ist, und Anmeldezeilen lesswerden nicht umgebrochen.

Josh
quelle
10
Zu Ihrer Information, die Option less -ssagt, dass keine Zeilen umbrochen werden sollen. Sie können verwendet werden Leftund Rightdie Zeilen zu blättern.
MikeyB
4

Die Möglichkeit, den Steuerschlüssel mit -eth zu ändern, wenn der Bildschirm gestartet wird. Ich benutze es, damit ich Bildschirmsitzungen ineinander verschachteln kann. Beispiel: "screen -e ^ w ^ x" bewirkt, dass die Steuertaste ctr-w gedrückt wird.

jeffball
quelle
2

Eine nette Funktion: Sie können verwenden backtick, um zusätzliche Informationen für die Anzeige in einer Beschriftung einzuziehen. Ich habe zum Beispiel ein Skript, das eine einzeilige Zusammenfassung der Anzahl neuer E-Mails in verschiedenen Ordnern ausgibt, und das in der untersten Zeile angezeigt wird, wenn meine Bildschirmsitzung zusammen mit dem Hostnamen mit einer Konfiguration wie folgt aussieht:

backtick 1 15 15 /home/waltermundt/bin/newmail

caption always
caption string "%{.kW}%1` example.com %{.bW}%-w%{.rW}%n %t%{-}%+w %{.gW}%h%{-}"

Der Schlüssel ist das% 1`-Bit, das sich auf die Ausgabe von Backtick-Job 1 bezieht.

(Ich benutze hardstatusals xterm den Titelstring und habe ihn anders gesetzt, also die Verwendung von captionstatt hardstatus alwayslastline.)

Walter Mundt
quelle
2

Keine "versteckte" Funktion, aber die Möglichkeit, eine Bildschirmsitzung mit einem anderen aktiven Benutzer zu teilen, ist sehr nützlich.

Es gibt komplizierte Möglichkeiten, die Bildschirmfreigabe einzurichten, einschließlich Zugriffssteuerungsberechtigungen und Benutzernamenverwaltung. Was ich am häufigsten mit Kollegen mache, ist viel schneller und schmutziger:

  1. Melden Sie sich bei der betreffenden Maschine in einem neuen Fenster an.
  2. Jedem erlauben, an mein Terminal zu schreiben: chmod 777 $(tty)
  3. Sudo auf ihr Konto: sudo su <username>
  4. Teile ihren Bildschirm: screen -x <session>

Dies erfordert keine vorherige Konfiguration oder Kennwortfreigabe.

Michael H.
quelle
1

Ein kleines Spickzettel habe ich für mich ausgedruckt;

(Hinweis: Alles ist vorangestellt von Ctrl-A)

A: Benenne ein Fenster um   
": Liste der Fenster anzeigen   
d: Detatch-Sitzung

Und screen -D -Rum eine laufende Sitzung anzuhängen und wieder anzuhängen (falls Sie irgendwie den Zugriff auf Ihre Sitzung verlieren).

Keine dieser Funktionen ist wirklich verborgen, aber ich finde, dass diese Funktionen am nützlichsten sind.

Michael Pobega
quelle
1

Es ist eine Kernfunktion, aber das Beste ist natürlich Ctrl-A:, direkt mit dem Bildschirm zu sprechen. : screen -t title ssh hostnameetc.

Zac Thompson
quelle