So zeichnen Sie Linux-Terminalbefehle mit “Skript” auf

0
64
fatmawati achmad zaenuri

Mit dem Skriptbefehl können Sie Aktivitäten in Ihrem Terminal aufzeichnen und wiedergeben. Dies ist hilfreich, wenn Sie eine Referenz der Schritte erstellen möchten, die Sie unternommen haben, oder wenn Sie eine Anleitung erstellen, der andere folgen können.

script gibt ein Typoskript aller Befehle aus, die Sie ausgeführt haben. Es funktioniert, indem es Sie in eine Sub-Shell verschiebt, die alles protokolliert, was Sie ausführen. Ihre Sitzung wird als Klartext gespeichert, wenn Sie die Shell verlassen. Dies macht Skript zuverlässiger als umgeleitete Eingabeströme.

Grundlegende Verwendung

Der Skriptbefehl kann ohne Argumente ausgeführt werden:

script

Eine neue Aufnahmesitzung wird gestartet. Ihre Terminalsitzung wird unter ./typescript in Ihrem Arbeitsverzeichnis gespeichert. Sie können eine andere Datei angeben, indem Sie script ein Argument angeben:

script example_session

Verwenden Sie Ihre Shell, um die Befehlssequenz auszuführen, die Sie aufzeichnen möchten. Wenn Sie fertig sind, drücken Sie Strg+D oder geben Sie exit ein, um die Sub-Shell zu verlassen. Sie kehren zu Ihrer Haupt-Shell-Sitzung zurück.

Jetzt können Sie das erstellte Sitzungsprotokoll einsehen:

cat example_session Advertisement

Sie&#8217 ;Die Ausgabe Ihrer Skriptsitzung wird mit Anmerkungen in eckigen Klammern durchsetzt. Diese Anmerkungen werden vom Skript verwendet, um Details über das Terminal selbst und die darin auftretenden Ereignisse aufzuzeichnen.

Da Protokolldateien Klartext sind, können Sie sie in Ihrem bevorzugten Editor frei bearbeiten. Schneiden Sie einfach alle Zeilen aus, die Sie nicht behalten möchten oder die andere nicht sehen sollten.

Dies ist nützlich, wenn Ihre Sitzung versehentlich potenziell sensible Informationen ausgibt oder Sie überflüssige Zeichen ausschneiden möchten das Protokoll. Das Skript zeichnet alles auf, was in Ihrem Terminal passiert, einschließlich der Rücktaste, Zeilenumbrüche und Steuerzeichen, von denen einige im endgültigen Typskript möglicherweise nicht benötigt werden.

Das Skript gibt den Namen der Datei aus, in die es zu Beginn und am Ende Ihrer Sitzung schreibt. Sie können diese Ausgabe deaktivieren, indem Sie das Flag -q hinzufügen, um den stillen Modus zu aktivieren.

Die Umgebungsvariable SHELL wird gelesen, wenn die Shell für den inneren Prozess bestimmt wird. Wenn die Variable nicht festgelegt ist, verwendet das Skript standardmäßig sh.

An eine vorhandene Datei anhängen

Es ist möglich, neue Befehle an ein vorhandenes Typoskript anzuhängen. Auf diese Weise können Sie “Pause” und “Fortsetzen” Aufnahme, indem Sie Ihre Sub-Shell verlassen und eine neue Sitzung starten.

Werbung

Fügen Sie das Flag -a hinzu, um Ihre Befehle an die angegebene Datei anzuhängen. script überschreibt den Inhalt der Datei, wenn das Flag nicht angegeben ist.

script -a example_session

Hinzufügen von Timing-Daten

Das einfache Typoskript ist ideal, wenn Sie Ihre Schritte einfach zum späteren Lesen oder Teilen aufzeichnen möchten. script kann neben seinem Textprotokoll auch Zeitdaten speichern. Diese Informationen können verwendet werden, um Ihre gesamte Terminalsitzung mit entsprechenden Verzögerungen zwischen den Befehlen abzuspielen.

Führen Sie ein Skript mit dem Flag -t aus, um einen Pfad zum Schreiben von Timings anzugeben. Timing-Dateien haben ein zweispaltiges Format. Jeder Eintrag enthält die verstrichene Zeit seit dem letzten Datensatz in der ersten Spalte. Die zweite Spalte zeichnet die Anzahl der eingegebenen Zeichen auf und ermöglicht so genaue Wiederholungen der Tippgeschwindigkeit.

script -q -t example_session_timings example_session

Wiedergabe von Sitzungen

Der Befehl scriptreplay liest Typescripts und Timing-Dateien, die von Script erstellt wurden. Es gibt ihre Ausgabe in Ihrem Terminal wieder. Die Timing-Daten werden verwendet, um die Dauer jedes eingegebenen Zeichens an seine Länge in Ihrer ursprünglichen Befehlssequenz anzupassen.

scriptreplay -t example_session_timings example_session

Einige Typskripte können unerwünschte Verzögerungen enthalten oder mit einer unangenehm langsamen Geschwindigkeit ausgeführt werden. Verwenden Sie das Flag -d, um die Ausgabe zu beschleunigen. Alle aufgezeichneten Zeiten werden durch die Anzahl geteilt, die Sie bestehen.

# Führen Sie scriptreplay viermal schneller aus -d 4 -t Timings typescript

Sie können auch das Flag -m verwenden, um die maximale Verzögerung zwischen einzelnen Aktualisierungen zu begrenzen. Auf diese Weise können Sie die längste zulässige Pause in Sekunden angeben, bevor scriptreplay zum nächsten Befehl übergeht, auch wenn das Typescript eine längere Verzögerung vorgibt.

# Maximale Verzögerung von 2 Sekunden scriptreplay -m 2 -t Timings typescript

Verwenden mit interaktiven Befehlen

Es wird nicht empfohlen, Skripte mit stark interaktiven Befehlen zu verwenden. Terminal-Texteditoren, auf Flüchen basierende Anwendungen und Dialog-Eingabeaufforderungen fügen wahrscheinlich schädliche Zeichen in Ihr Typoskript ein. Skript konzentriert sich auf die Erfassung typischer textbasierter Ausgaben, nicht auf Befehle, die Ihr Terminal manipulieren, um eine grafische Oberfläche zu erzeugen.

Werbung

Skript ist nicht für die Verwendung mit nicht interaktiven Shells als inneres Shell ist von Natur aus immer interaktiv. Es sollte auch nicht erwartet werden, dass der Befehl mit Pipe-Eingaben funktioniert.

Andere Optionen

Mit dem Flag -c für das Skript können Sie einen Befehl angeben. Wenn dieser Modus verwendet wird, führt das Skript den Befehl aus und erfasst seine Ausgabe, anstatt eine neue interaktive Shell zu forken. Dies kann beim Erfassen der Ausgabe von einigen Prozessen effektiver sein, die sich anders verhalten, wenn sie nicht direkt mit einem TTY verbunden sind.

Das Flag -f weist das Skript an, nach jedem Ereignis direkt in das Sitzungsprotokoll zu schreiben. Dies verbessert die Sicherheit, indem sichergestellt wird, dass die Ausgabe sofort erfasst wird.

Die Handbuchseite des Skripts schlägt vor, dass dieses Flag auch verwendet werden könnte, um das Terminal eines Benutzers in Echtzeit zu überwachen, beispielsweise in einem Lehrer- und Schülerszenario. Der Schüler würde script -f ausführen, dann würde der Lehrer SSH verwenden, um eine Verbindung herzustellen und die Typoskriptdatei live zu streamen.

script akzeptiert normalerweise keinen symbolischen Link als Typoskriptpfad. Das Flag –force aktiviert dieses Verhalten und weist das Skript an, harte und weiche Links zu ihrem Ziel aufzulösen.

Zusammenfassung

Mit dem Skript können Sie Ihre Terminalsitzungen im Klartext aufzeichnen Textdateien mit genauen Zeitdaten. Sie können die Typoskripte manuell überprüfen, teilen und drucken oder sie mit scriptreplay in Ihrem Terminal wiedergeben.

Werbung

Die Befehle sind in den meisten gängigen Linux-Distributionen enthalten. Sie funktionieren mit allen Terminaltypen, aber einzelne Typoskripte werden möglicherweise nicht richtig in einem Terminal wiedergegeben, das sich von dem für die Aufzeichnung verwendeten unterscheidet. Für beste Ergebnisse führen Sie scriptreplay in demselben Terminaltyp aus, den Sie mit script verwendet haben.