SCRIPT(1) | Dienstprogramme für Benutzer | SCRIPT(1) |
BEZEICHNUNG¶
script - Eingabeskript einer Terminalsitzung anlegen
ÜBERSICHT¶
script [Optionen] [Datei]
BESCHREIBUNG¶
script erstellt ein Eingabeskript Ihrer gesamten Terminalsitzung. Die Terminal-Rohdaten werden in einer Protokolldatei und Timing-Informationen (optional) in einer weiteren, strukturierten Datei gespeichert. Die Timing-Protokolldatei ist zur späteren Wiedergabe der Sitzung mit scriptreplay(1) und zum Speichern zusätzlicher Informationen zur Sitzung notwendig.
Seit Version 2.35 unterstützt script mehrere Datenströme und ermöglicht die Protokollierung der Ein- und Ausgaben entweder in separate Dateien oder in eine Datei. Diese Version unterstützt auch eine neue Timing-Datei, welche zusätzliche Informationen aufzeichnet. Der Befehl scriptreplay --summary stellt dann alle Informationen bereit.
Falls das Argument Datei oder die Option --log-out Datei angegeben ist, speichert script den Dialog in dieser Datei. Falls kein Dateiname angegeben ist, wird der Dialog in der Datei typescript gespeichert.
Beachten Sie, dass die Protokolleingaben mit --log-in oder --log-io sicherheitskritisch sein können, da die Protokolldatei sämtliche Eingaben der Terminalsitzung beinhaltet (auch Passwörter), unabhängig davon, wie der Echo-Schalter des Terminals gesetzt ist.
OPTIONEN¶
Nachfolgend kann dem Argument Größe eines der multiplikativen Suffixe KiB (=1024), MiB (=1024*1024) und so weiter für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K« gleichbedeutend mit »KiB«) oder die Suffixe KB (=1000), MB (=1000*1000) und so weiter für GB, TB, PB, EB, ZB und YB folgen.
-a, --append
-c, --command Befehl
-E, --echo wann
Die Voreinstellung ist auto – in diesem Fall wird ECHO deaktiviert, falls die aktuelle Standardeingabe ein Terminal ist, um ein Doppel-Echo zu vermeiden, beziehungsweise aktiviert, falls die Standardeingabe kein Terminal ist (zum Beispiel eine Pipe: echo date | script), um fehlende Eingaben im Sitzungsprotokoll zu vermeiden.
Beachten Sie, dass sich der Modus »never« auf den Inhalt Sitzungsprotokollausgabe auswirkt, da die Benutzereingaben in der Ausgabe nicht wiederholt werden.
-e, --return
-f, --flush
--force
-B, --log-io Datei
-I, --log-in Datei
Verwenden Sie diese Protokollierungsfunktionalität mit Vorsicht, da sie alle Eingaben protokolliert, auch jene eines Terminals, bei denen der Echo-Schalter deaktiviert ist (zum Beispiel Passworteingaben).
-O, --log-out Datei
-T, --log-timing Datei
-m, --logging-format Format
Klassisches Format
Erweitertes (Multi-Datenstrom-) Format
-o, --output-limit Größe
-q, --quiet
-t[Datei], --timing[=Datei]
-h, --help
-V, --version
SIGNALE¶
Nach dem Empfang des Signals SIGUSR1 aktualisiert script sofort die Ausgabedateien.
UMGEBUNGSVARIABLEN¶
Die folgende Umgebungsvariable wird von script verwendet:
SHELL
ANMERKUNGEN¶
Das Skript endet, wenn die mit fork gestartete Shell beendet wird (ein Strg-D für die Bourne-Shell (sh(1p)) und exit, logout oder Strg-d (falls ignoreeof nicht gesetzt ist) für die C-Shell, csh(1)).
Bestimmte interaktive Befehle, wie vi(1), erzeugen Datenmüll in der Eingabeskript-Datei. Der Befehl script funktioniert mit Befehlen am besten, die den Bildschirm nicht manipulieren, die Ergebnisse sollen ein Hardcopy-Terminal nachahmen.
Es wird nicht empfohlen, script in nicht-interaktiven Shells auszuführen. Die innere Shell von script ist immer interaktiv, was zu unerwarteten Ergebnissen führen könnte. Falls Sie script in der Shell-Initialisierungsdatei verwenden, müssen Sie verhindern, dass es eine Endlosschleife durchläuft. Sie können beispielsweise die Datei .profile verwenden, die nur von Anmeldeshells gelesen wird:
if test -t 0 ; then
script
exit fi
Sie sollten es auch vermeiden, script in Befehlsweiterleitungen (Pipes) zu verwenden, da script mehr Eingaben lesen kann, als Sie erwarten würden.
GESCHICHTE¶
Der Befehl script erschien in 3.0BSD.
FEHLER¶
script schreibt alles in die Protokolldatei, auch Zeilenvorschübe und Rückschritte. Das ist nicht das, was der naive Benutzer erwartet.
script wurde primär für interaktive Terminalsitzungen entworfen. Wenn die Standardeingabe kein Terminal ist (zum Beispiel: echo foo | script), dann könnte die Sitzung hängenbleiben, weil der interaktiven Shell innerhalb der script-Sitzung die Dateiende-Markierung (EOF) fehlt und script keinen Anhaltspunkt hat, wann es die Sitzung schließen soll. Im Abschnitt ANMERKUNGEN finden Sie weitere Informationen.
SIEHE AUCH¶
csh(1) (für den history-Mechanismus), scriptreplay(1), scriptlive(1)
FEHLER MELDEN¶
Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem auf <https://github.com/util-linux/util-linux/issues>.
VERFÜGBARKEIT¶
Der Befehl script ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv <https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen werden kann.
2024-08-05 | util-linux 2.40.2 |