Frage Versteckte Funktionen von `Bildschirm`


Da ich das benutze * Nix-Befehl screen den ganzen Tag, und ich konnte niemanden finden, der diese Frage beginnt, ich dachte, dass es anfangen sollte. Sie kennen das Wiki von drill: community, eine Antwort pro Funktion, damit wir alle abstimmen können.


31


Ursprung


Bildschirm ist so nützlich, dass es auf allen Seiten gehört: stackoverflow.com/questions/70614/gnu-screen-survival-guide - Zac Thompson


Antworten:


ich Liebe Verwendung für die Verbindung mit seriellen Konsolen, d. h.

screen /dev/ttyS0 19200

Dieser Befehl öffnet einfach eine Verbindung zur seriellen Schnittstelle 0 (ttyS0) mit einer Baud-Geschwindigkeit von 19200


31



Das ist eine meiner Lieblingsbeschäftigungen, mit denen man Leute verarschen kann, wirklich eines der am wenigsten erwarteten Features des Bildschirms - epic9x
Und wirklich einer meiner Favoriten. Keine Notwendigkeit, mit Minicom, conserver, etc. umzugehen oder zu konfigurieren. Ich fühlte mich wie ein kleines Kind in einem Süßwarenladen, als ich das entdeckte. - Scott Pack
Absolut - es ist schön, eine Bildschirmsitzung geöffnet zu haben, die in zwei Fenster aufgeteilt ist, wobei beide USB-Serial-Dongles sichtbar sind. - dotwaffle


Die beste Eigenschaft von screen ist Byobu (ehemals Screen-Profile), welches standardmäßig seit Juni 2009 mit Ubuntu ausgeliefert wird: https://launchpad.net/byobu

Es ist ein Konfigurationsmanager mit sehr schönen Standardeinstellungen, vielen Statusmeldungen und nützlichen Tastaturkürzeln (d. H. F2 für neuen Bildschirm, f3-f4 für prev / next usw.)

Ich gehe wirklich nirgendwohin ohne es :)


10





Von KTamas 'Amswer: Mehr als eine Person kann den gleichen Bildschirm benutzen, d. H. Wenn ein Freund von dir ist ssh in Ihren Computer, dann kann er sich mit Ihrem Bildschirm verbinden. Es ist toll, wenn zwei oder drei Personen an denselben Projekten arbeiten.


10



Dies ist viel besser, um zu verfolgen, was Remote-Support-Benutzer tun, und ihre Sitzung zu beenden, wenn sie nicht gut sind! - Tom O'Connor


Nicht gerade ein "verstecktes Feature"; aber eine richtig eingerichtete .screenrc-datei kann eine welt von unterschied machen. Eines der besseren Beispiele ist googling screenrc und 'brad sims' - er hat eine exzellente Datei zum basteln.

Das heißt, meine Lieblingseinstellung 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

6



Wenn man bedenkt, dass ctrl + a zu oft außerhalb des Bildschirms verwendet wird (Anfang der Zeile in bash jemand?) Ich mag das. - Scott Pack
Strg + a / Strg + e zum Bewegen des Cursors, aber auch wenn minicom auf einem Bildschirm läuft. Strg + a, a, o für Optionen ... - petrus


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

#!/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 stelle ich die folgenden Bash-Aliase ein:

vim() {
        scr vim $*
}

man() {
        scr man $*
}

info() {
        scr info $*
}

watch() {
        scr watch $*
}

ssh() {
        scr ssh $*
}

Es öffnet sich ein neuer Bildschirm für die obigen Aliase und wenn er ssh verwendet, benennt er den Bildschirmtitel mit dem SSH-Hostnamen um.

Prost z0mbix


6



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


Eine Sache, die ich nützlich finde, ist, dass der Bildschirm eine größere Breite emulieren kann als Ihr Terminal. Ich finde das nützlich, wenn ich benutze less zu echten Protokolldateien, und ich möchte nicht, dass die Zeilen umbrechen. Verwenden:

Strg-A:width -w 999 

Ich kann einstellen screenist mit breiter als mein Terminal und Log-Linien in less wird nicht umgebrochen.


4



FYI, die weniger Option -s werde es sagen, Zeilen nicht zu umbrechen. Sie können verwenden Left und Right um die Zeilen zu scrollen. - MikeyB


Die Möglichkeit, die Steuerungstaste mit-zu ändern, wenn der Bildschirm gestartet wird. Ich benutze es, damit ich Bildschirmsitzungen ineinander verschachteln kann. Beispiel: "screen -e ^ w ^ x" macht den Kontrollschlüssel ctr-w.


4





Ein nettes Feature: Sie können verwenden backtick um zusätzliche Informationen für die Anzeige in einer Beschriftung einzublenden. Zum Beispiel habe ich ein Skript, das eine einzeilige Zusammenfassung von neuen Mailzählern in verschiedenen Ordnern ausgibt, und ich habe das in der unteren Zeile, wenn meine Bildschirmsitzung zusammen mit dem Hostnamen mit einer Konfiguration, die so 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 hardstatus als xterm title string und habe es anders gesetzt, also die Verwendung von caption anstatt hardstatus alwayslastline.)


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 zum Einrichten der Bildschirmfreigabe, einschließlich Zugriffssteuerungsberechtigungen und Benutzernamenverwaltung. Was ich am häufigsten mit Kollegen mache, ist viel schneller und dreckiger:

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

Dies erfordert keine Vorauskonfiguration oder Passwortfreigabe.


2





Ein kleiner Spickzettel, den ich für mich selbst ausgedruckt habe;

(Hinweis: Alles ist vorangestellt von Strg-A)

A: Benenne ein Fenster um
": Zeigt eine Liste von Fenstern an
d: Sitzung trennen

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

Keine davon sind wirklich versteckte Funktionen, aber das sind die Funktionen, die ich am nützlichsten finde.


1





Es ist ein Kernmerkmal, aber natürlich ist das Beste Strg-A: um direkt mit dem Bildschirm zu sprechen. : screen -t title ssh hostname usw.


1