Da ich den ganzen Tag den Befehl * nix verwendescreen
und niemanden finde, der diese Frage startet, sollte sie gestartet werden. Sie kennen die Übung: Community-Wiki, eine Antwort pro Funktion, damit wir alle abstimmen können.
Da ich den ganzen Tag den Befehl * nix verwendescreen
und niemanden finde, der diese Frage startet, sollte sie gestartet werden. Sie kennen die Übung: Community-Wiki, eine Antwort pro Funktion, damit wir alle abstimmen können.
Antworten:
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
Das beste Feature von screen
ist 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 :)
Aus KTamas 'Antwort: Mehr als eine Person kann denselben Bildschirm verwenden, dh wenn ein Freund von Ihnen ssh
an 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.
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
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
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 less
echte 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 less
werden nicht umgebrochen.
-s
sagt, dass keine Zeilen umbrochen werden sollen. Sie können verwendet werden Left
und Right
die Zeilen zu blättern.
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 hardstatus
als xterm den Titelstring und habe ihn anders gesetzt, also die Verwendung von caption
statt hardstatus alwayslastline
.)
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:
chmod 777 $(tty)
sudo su <username>
screen -x <session>
Dies erfordert keine vorherige Konfiguration oder Kennwortfreigabe.
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 -R
um 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.
Es ist eine Kernfunktion, aber das Beste ist natürlich Ctrl-A:, direkt mit dem Bildschirm zu sprechen. : screen -t title ssh hostname
etc.