Das Faszinierende am Menschen ist, dass wir alle einen bestimmten Lernstil haben. Manche Leute lesen lieber darüber, wie etwas gemacht wird. Manche Leute ziehen es vor, von Anfang an Anweisungen zu befolgen, während andere sich lieber einen Überblick verschaffen, bevor sie sich engagieren. Andere Leute hören gerne Anweisungen von einem Lehrer oder einem Podcast. Und wieder eine andere Gruppe wünscht sich eine Anleitung in Form eines Videos.
Das Problem bei Videos ist, dass es schwierig sein kann, sie zu produzieren und zu komprimieren, und dass es viel Arbeit bedeutet, sie zu ändern, sobald sie fertig sind. Außerdem können Zuschauer keine Linux-Befehle aus einem Video kopieren und in ihr Terminal einfügen.
Oder können sie?
Das script
und scriptreplay
-Befehle ermöglichen es Ihnen, eine Terminalsitzung aufzuzeichnen und später wiederzugeben. Es ist kein Video beteiligt. Stattdessen einfache Textdateien, die Typoskripte genannt werden verwendet werden, damit die Dateien klein sind und Benutzer Befehle während der Wiedergabe kopieren können.
Sowohl script
und scriptreplay
Befehle sind wertvolle Dokumentationswerkzeuge, und ich finde sie in zwei Szenarien nützlich:
- Egal wie aufrichtig ich mir selbst verspreche, dass ich meinen Shell-Verlauf durchgehen und die richtigen Befehle sammeln werde, sobald ich herausgefunden habe, wie man eine Aufgabe richtig erledigt, das tue ich selten.
- Manchmal möchten meine Benutzer die von ihnen verlangte Eingabe nicht sehen; sie wollen die Interaktion sehen zwischen ihnen und dem Computer. Sie können einem Benutzer sagen, dass er
ls
eingeben soll und beschreiben Sie, was sie als Reaktion erwarten können, aber es hat eine größere Wirkung, wenn sie es selbst sehen. Ich finde Benutzer im Terminal viel mutiger, nachdem sie eine Skriptdatei abgespielt haben, um zuerst zu sehen, wie es ist.
[Registrieren Sie sich für Ansible Basics:Automation Technical Overview und lernen Sie die Konfigurationsverwaltung, Bereitstellung, Bereitstellung und umgebungsübergreifende Verwaltung der Recheninfrastruktur mit Ansible kennen. ]
Ihr Terminal aufzeichnen
So starten Sie die Aufnahme mit script
, zwei Zieldateien bereitstellen:eine Timing-Datei und ein Typoskript Datei:
$ script --timing=time.tm myscript
Die Ausgabe weist Sie auf dieses script
hin hat mit der Aufnahme begonnen. Alles, was Sie in Ihrem Terminal tun, während script
aktiv ist, wird aufgezeichnet. Dazu gehört alles, was zu stdin, stdout und stderr geht, einschließlich Ihrer Pausen, Rückschritte, automatischen Vervollständigungen und sogar Ihrer Fehler.
Drücken Sie Strg+D oder geben Sie exit
ein um die Aufnahme zu stoppen, wenn Sie Ihre Demonstration beendet haben.
Die resultierende Typoskript-Datei, myscript
in diesem Beispiel ist unkompliziert und relativ selbstdokumentierend:
Script started on 2022-01-06 22:27:01+13:00
0;seth:~/script^G$ echo "hello world"
hello world
0;seth:~/script^G$ exit
exit
Script done on 2022-01-06 22:27:10+13:00
Sie können diese Datei bearbeiten. aber nehmen Sie nicht zu viele Änderungen vor, da das Timing der Ausgabe ebenfalls aufgezeichnet wurde.
Um kleinere Fehler zu korrigieren, ist eine schnelle Bearbeitung mit einem Texteditor eine einfache Lösung.
Wiedergabe eines Skripts
Sie können ein aufgezeichnetes Skript mit scriptreplay
abspielen Befehl:
$ scriptreplay --timing=time.tm myscript
Dies übernimmt Ihre Terminalsitzung und verwendet sie als Leinwand, um die Ein- und Ausgabe Ihrer Aufzeichnungen wiederzugeben. Das Timing wird ebenfalls repliziert, sodass sinnvolle Pausen zur Verdeutlichung beibehalten werden, was für einen Benutzer hilfreich sein kann, wenn er die Skriptwiedergabe verfolgt.
Natürlich werden die im Terminal wiedergegebenen Befehle nicht ausgeführt. Es ist nur eine sofortige Wiedergabe, daher ist es sicher, Skripts abzuspielen, die Dateien löschen, Git-Commits vornehmen oder Ansible-Spiele starten. Bei der Wiedergabe eines Skripts passiert eigentlich nichts. Es ist nur ein Film.
Dokumentation in Aktion
Das script
und scriptreplay
Befehle sind wertvolle Werkzeuge für die "show don't tell"-Philosophie. Ob Sie Ihre Zielgruppe irgendwann in der Zukunft sind, lange nachdem Sie vergessen haben, was Sie sicher nie vergessen würden, oder ein schüchterner neuer Terminalbenutzer, die Mensch-Computer-Interaktion zu sehen, kann aufschlussreich und ermutigend sein.
Im Gegensatz zu Screenshots haben Typoskripte eine kleine Dateigröße und lassen sich leicht aktualisieren und bearbeiten. Im Gegensatz zu Ihrem Shell-Verlauf rotieren Typoskripte nicht. Sie gehen nicht weg, es sei denn, Sie entfernen sie selbst. Und im Gegensatz zu Shell-Skripten demonstriert ein Typoskript die Schritte, ohne den Prozess auszuführen, und ermutigt den Betrachter, jeden Schritt auszuprobieren, ihn zu verinnerlichen und sich zu merken, und ein besseres Verständnis dafür zu erlangen, wozu das Terminal wirklich in der Lage ist.