Wie kann ich BEIDE ausführen, sudo apt-get install
um den Installationsprozess zu sehen (in meinem Fall lang) und die Ausgabe in einer Textdatei zu speichern?
25
Wie kann ich BEIDE ausführen, sudo apt-get install
um den Installationsprozess zu sehen (in meinem Fall lang) und die Ausgabe in einer Textdatei zu speichern?
apt-get
richtig?Antworten:
benutze den
script
Befehl. Es kopiert alles, was in einer Datei angezeigt wirdquelle
script
Sendet die Befehlsausgabe an eine Datei, zeigt sie jedoch nicht auf dem Bildschirm an.script -c "history" ~/hist.txt
und sah die Ausgabe, dieScript started
und anzeigtScript done
, aber ich sah nicht die Ausgabe des tatsächlichen Befehls auf dem Bildschirm.history
ist eine eingebaute Shell, kein externer Befehl. Was passiert ist: 1) Skript startet, 2) Skript durchsucht den Verlaufsbefehl, findet ihn nicht, daher wird vermutet, dass es dies über eine Shell ausführen sollte. 3) Das Skript führt den Befehlhistory
über eine Shell aus. 4) Eine neue Shell wird gestartet und führt den internen Verlaufsbefehl aus. Da dies eine neue nicht interaktive Shell ist, hat die Geschichte nichts zu sagen.script
kann auch interaktiv ausgeführt werden. Geben Sie einfachscript
an der Eingabeaufforderung ein. Sie erhalten eine neue Shell und bei jedem Befehl, den Sie eingeben, wird die Ausgabe gespeichert. Geben Sie einexit
, um die Shell zu beenden und die Datei zu speichern. Standardmäßig wird die Ausgabe aufgerufentypescript
und enthält alles, was auf Ihrem Bildschirm angezeigt wird, unabhängig davon, ob Sie es eingegeben haben oder ob es sich um die Ausgabe eines Befehls handelte. Derhistory
Befehl sollte auch in der neuen Shell noch verfügbar sein.Sie können den
tee
Befehl verwenden, um dies zu erreichen.Schau hier für mehr Infos , oder führe aus
man tee
Hinweis: Wie bereits erwähnt,
2>&1
muss STDERR nach STDOUT umgeleitet werden, um Fehler abzufangen. In dieser StackOverflow-Frage finden Sie eine gute Erklärung der2>&1
tatsächlichen Funktionsweise.quelle
script
da der Befehl nicht in Anführungszeichen gesetzt werden muss. So lassen sich Vorteile wie die Bash-Vervollständigung leichter erzielen.-c "something ..."
: if nicht, dann werden Sie auf eine Shell umgeleitet und beendet, wenn Sie diese Shell beenden . Ermöglicht mehrere Befehle usw. Außerdem bleiben mehr "Formatierungs" -Infos erhalten, wodurch einige weitere Dinge (wie: Bildschirm löschen usw.) wiedergegeben werden können (dies kann jedoch auch die Ausgabe durcheinander bringen ... ymmv)|&
anstelle von2>&1 |
in Bashtee
erledigt die Arbeit nach Bedarf.Verwenden Sie zum Erfassen der Ausgabe in eine Datei Folgendes:
Dadurch wird nur die Ausgabe erfasst, jedoch keine Fehlermeldung. Wenn Sie auch Fehlermeldungen aufzeichnen möchten, ändern Sie den Befehl wie folgt:
quelle
bash
der|&
Operator dies unterstützt ,sudo apt-get install your_software |& tee log_file.txt
sowohl stdout als auch stderr antee
. (Ein großes Lob an JF Sebastian, der dies an anderer Stelle vorgeschlagen hat .)Das Schöne an apt-get (und APT im Allgemeinen) ist, dass sie Protokolldateien für fast alles speichern, selbst für die Terminalausgabe aller Befehle, die Sie in der Anwendung ausführen
/var/log/apt
. Dies ist zum Beispiel der letzte Eintrag in meinem/var/log/apt/term.log
:Nun zum Vergleich mit der tatsächlichen Ausgabe:
Es hat mir mehrere Zeilen erspart, die in den meisten Fällen nicht relevant sind, und das geschieht automatisch. Sie benötigen also keinen zusätzlichen Befehl, um das zu tun, was Sie tun möchten. Apt-get erledigt dies für Sie.
quelle
versuche den tee Befehl. Sie können finden hier einige Beispiele.
Einfache Bedienung:
Beispiel:
quelle