Zsh oder Bash: Alle Befehlsausgabe automatisch über Pager App weiterleiten?

438
Brad Parks

Gibt es in bash oder zsh eine Möglichkeit, alle Ausgaben von Befehlen, die ich durch ein anderes Programm ausführt, automatisch weiterzuleiten?

Zum Beispiel, wenn ich diesen Befehl ausgeführt habe

$ cat /tmp/it 

Ich möchte, dass es so läuft, als hätte ich es so geschrieben:

$ cat /tmp/it | tee /tmp/cmdoutput 

wo könnte der | tee /tmp/cmdoutputTeil überhaupt ein Befehl sein. Meine Anwendungsfälle sind zum Kolorieren und zum Speichern von Ausgaben für Befehle, die ich ausführen, damit ich sie in vim bearbeiten oder in vim durchsuchen kann. Ich mache diese Dinge bereits manuell, möchte aber wissen, ob es eine Möglichkeit gibt, dies automatisch durchzuführen, und suche nach einer allgemeinen Lösung!

1
Benötigen Sie den Befehl, den Sie in Ihre Ausgabedatei eingegeben haben? oliv vor 5 Jahren 0
Ich bin am meisten daran interessiert, jeden Befehl, den ich ausführen möchte, in einer temporären Datei irgendwo gespeichert zu haben. Wenn ich also die Ausgabe eines Befehls überprüfen möchte, den ich zum Beispiel heute ausgeführt habe, könnte ich in einem temporären Ordner suchen das hatte meine Befehle mit einem Zeitstempel gespeichert und die Ausgabe dort auch. Irgendwie ein Protokoll von dem, was ich an der Kommandozeile mache. Aber die Idee der Einfärbung ist eine andere Sache, für die ich diesen Prozess auch gerne verwenden möchte, ohne bestimmte Befehle manuell zu pfeifen oder zu benennen. Brad Parks vor 5 Jahren 0
Ich empfehle einen Blick auf [auditd] (https://linux.die.net/man/8/auditd). Ansonsten kann eine unformatierte Ausgabe von Befehlen einer interractiven Sitzung einfach mit `bash | tee / tmp / cmdoutput` oliv vor 5 Jahren 1
Eine andere Alternative könnte [script] sein (https://linux.die.net/man/1/script). mpy vor 5 Jahren 1
Wie wäre es mit einem Alias ​​für die meist verwendeten Befehle? Fanatique vor 5 Jahren 0

1 Antwort auf die Frage

1
harrymc

Verwenden Sie den Skriptbefehl :

Skript erstellt ein Typoskript für alles, was auf Ihrem Terminal angezeigt wird. Es ist nützlich für Studenten, die eine Hardcopy-Aufzeichnung einer interaktiven Sitzung als Beleg für eine Aufgabe benötigen, da die Typoscript-Datei später mit lpr (1) ausgedruckt werden kann.

Wenn die Argumentdatei angegeben ist, speichert das Skript den Dialog in dieser Datei. Wenn kein Dateiname angegeben wird, wird der Dialog im Datentyposkript gespeichert.

Wenn Sie mit der Aufzeichnung einer Protokolldatei beginnen möchten, geben Sie Folgendes ein:

script /tmp/cmdoutput 

Nun, bis Sie das Skript anhalten, werden alle Ein- und Ausgaben im Terminal in gespeichert cmdoutput. Wenn Sie fertig sind, geben Sie einfach Folgendes ein:

exit 

Quelle: Wie protokolliere ich alle Ein- und Ausgaben in einer Terminalsitzung?