Es gibt viele Fragen, die sich auf diese beziehen, aber alle beginnen mit der (richtigen) Annahme, dass die Ausgabe nicht protokolliert wird.
Meine Frage lautet also: Wo?
Nirgendwo: Die Ausgabe von Bash (und jeder anderen mir bekannten Shell) wird nicht protokolliert.
Da die Ausgabe auf dem Bildschirm angezeigt wird, muss sie ohnehin irgendwo gespeichert werden.
Es ist, aber höchstwahrscheinlich nicht im Klartext und nicht einmal auf der Festplatte (obwohl dies wirklich dem Terminalemulator überlassen ist): höchstwahrscheinlich und zumindest in den meisten Fällen in einem vom Terminalemulator zugewiesenen Speichersegment.
Es ist jedoch sicher, dass es nicht in einer Datei protokolliert wird, zumindest nicht von der Shell, und ich kenne keine Terminalemulatoren, die die Ausgabe standardmäßig in einer Datei protokollieren.
In der Tat bedeutet dies nicht, dass es unmöglich ist, die Terminal-Ausgabe zu protokollieren: Zuerst möchte ich etwas erwähnen, von dem ich glaube, dass es nicht vielen bekannt ist, da ich hier auf Ask Ubuntu noch nie jemanden gesehen habe, der dies erwähnt Zurückscrollen zu einer Datei (vielleicht gibt es andere Terminalemulatoren, die eine solche Funktionalität bieten, Konsole ist nur die einzige, die ich kenne), obwohl dies durch die Größenbeschränkung für das Zurückscrollen von Konsole begrenzt ist.
Dies ist jedoch häufig nicht wirklich nützlich, und höchstwahrscheinlich möchten Sie nach "geeigneten" Lösungen suchen, um die Ausgabe einer gesamten Sitzung in einer Datei zu protokollieren ( Wie protokolliere ich alle Eingaben und Ausgaben in einer Terminalsitzung? Und die Antwort von Ron ).
Dies hat nichts mit Ihrer shell (
bash
) zu tun , es ist keine Funktion des von Ihnen verwendeten Terminal-Emulators. Es wird im "Scrollback Buffer" Ihres Terminals gespeichert. Ich konnte keine klaren Erklärungen finden, wo genau dies gespeichert ist, aber die persönliche Erfahrung hat mir gezeigt, dass es irgendwo in gespeichert ist/tmp
.Wie die Antwort auf die Frage oben nahelegt, wird sie höchstwahrscheinlich in einer namenlosen Datei gespeichert. Um zu sehen, was ich meine, öffnen Sie eine neue Datei mit einem Texteditor:
Schreiben Sie eine Textzeile in die Datei und speichern Sie sie. Öffnen Sie jetzt, während diese Datei noch geöffnet ist, ein Terminal und löschen Sie es:
Da Sie die Datei noch geöffnet haben
gedit
, können Sie weiter darauf schreiben. Sie können sogar mehrere Gigabyte an Daten darauf schreiben, obwohl die Datei gelöscht wurde. Das liegt daran, dass beim Löschen einer Datei lediglich der Link entfernt wird, der auf den Inode verweist . Wenn sein Dateideskriptor von einem anderen Programm offengehalten wird, können Daten darauf geschrieben werden, obwohl es keine tatsächliche Verknüpfung (Datei) mehr gibt, die dem Dateideskriptor auf dem Dateisystem entspricht.Das alles soll heißen, dass der Verlauf Ihres Terminals wahrscheinlich mit einem solchen Trick irgendwo in einer gelöschten Datei gespeichert wird
/tmp
. Was Sie wahrscheinlich tatsächlich wollen, ist, einfach den Scrollback-Puffer Ihres Terminal-Emulators zu vergrößern, damit Sie einfach nach oben scrollen und ihn sehen können. Die Einzelheiten dazu hängen vom verwendeten Terminal-Emulator ab. Die meisten haben einen Befehlszeilenschalter, mit dem Sie dies tun können, und viele haben auch eine GUI-Methode, mit der Sie dies einstellen können. Ingnome-terminal
(der Standardeinstellung unter Ubuntu) ist es beispielsweise Bearbeiten -> Einstellungen -> Profile - Klicken Sie auf Ihr Profil -> Bearbeiten -> Scrollen -> Scrollen auf NNN beschränken:quelle
script
wie in der angenommenen antwort beschrieben.Die Terminalsitzung wird in einer
.bash_history
Datei gespeichert . Geben Sie dies in Ihr Terminal einecho $HISTFILE
. Dadurch erhalten Sie den Pfad der.bash_history
Datei.quelle