it-swarm.com.de

Löscht der Befehl "reset" den von Befehlen verwendeten Sitzungsspeicher?

Es gibt einen reset -Befehl, den ich in bash verwenden kann. Ich denke, er ist Teil von core-utils. Bereinigt es das RAM, das von früheren Befehlen aus der Terminal-Sitzung verwendet wurde?

Ich meine alles, was in das Terminal und den Speicher geschrieben ist, die von Befehlen verwendet werden.

4
userDepth

Von _man reset_:

_reset - reinitialization
       When  invoked  as  reset,  tset  sets  cooked and echo modes, turns off
       cbreak and raw modes, turns on newline translation and resets any unset
       special  characters  to  their default values before doing the terminal
       initialization described above.  This is useful after  a  program  dies
       leaving a terminal in an abnormal state.[...]
_

Damit wird die Terminalsitzung, in der Sie sich gerade befinden, vollständig neu initialisiert, und alle Daten werden gelöscht (es werden _~/.bash_history_ gespeichert. Löschen Sie diese, wenn Sie sich geheim fühlen.). Wenn Sie die Einstellungen nur neu laden möchten, können Sie _. ~/.bashrc_ ausführen. Wenn Sie nur ein leeres Terminalfenster ohne Zurücksetzen haben möchten, führen Sie clear aus oder drücken Sie _Ctrl + L_.

4
NeoTheThird

reset stammt von ncurses, nicht von coreutils.

Es werden viele Eigenschaften des Terminals zurückgesetzt, aber bei weitem nicht alle. In vielen Terminal-Emulatoren, einschließlich neuerer Versionen von gnome-terminal, wird auch der gesamte Scrollback-Puffer in dem Sinne gelöscht, dass er nicht mehr über die Benutzeroberfläche zugänglich ist, z. Verwenden Sie die Bildlaufleiste.

Ich bin nicht sicher, was Sie mit RAM meinen (ich meine, ich weiß offensichtlich, wofür es steht, aber ich verstehe nicht ganz, welchen Aspekt Sie fragen).

Ein Terminal-Emulator kann das gewünschte Verhalten beliebig implementieren. Z.B. Möglicherweise wird eine Programmiersprache oder Bibliothek mit Garbage Collection verwendet. In diesem Fall haben Sie kaum Kontrolle darüber, wann die Daten tatsächlich aus dem RAM verschwinden.

GNOME Terminal hat eine sehr komplexe Implementierung des Scrollback-Verlaufs. Etwas mehr als die normalerweise sichtbaren Zeilen (d. H. Vorausgesetzt, Sie haben nicht zurückgeblättert) werden im RAM gespeichert. Nach einer gewissen Zeit werden die gescrollten Daten in ein anderes Format (immer noch im RAM) konvertiert und zu größeren Blöcken zusammengefasst. Sobald ein vollständiger Block gefüllt ist, werden sie komprimiert, verschlüsselt und auf die Festplatte geschrieben. (Dies alles unter der Annahme von vte-0.40 oder neuer; ältere Versionen waren ganz anders.) Aber es befindet sich immer noch im RAM -Prozess, bis etwas anderes (d. H. Noch mehr Daten im Terminal) seinen Platz einnimmt. Es gibt auch einen Lese-Cache, in dem es vorhanden sein könnte.

All dies sollte jedoch nur relevant sein, wenn Sie den Speicherbedarf des Prozesses untersuchen, um beispielsweise zu verstehen, welche Daten wiederhergestellt werden können, wenn jemand in ein Live-System einbricht und Root-Zugriff erhält. In diesem Sinne gibt es keinerlei Garantie dafür, dass Daten, die von reset visuell gelöscht wurden, überhaupt nicht wiederhergestellt werden können. Es könnte befindet sich immer noch im RAM oder auf der Festplatte (verschlüsselt mit einem Schlüssel, der sich in RAM befindet, bis Sie die angegebene Terminalregisterkarte schließen).

Wenn Sie als normaler Benutzer das vom Benutzer sichtbare Verhalten des Prozesses untersuchen, sollten Sie sich nur um dieses vom Benutzer sichtbare Verhalten kümmern. Es ist irrelevant (und ziemlich schwer nachzuvollziehen), wenn die Daten tatsächlich endgültig aus dem RAM des Prozesses gelöscht werden .

Lassen Sie mich also annehmen, dass Sie sich nicht wirklich für RAM interessieren, sondern für das sichtbare Benutzerverhalten für "normale" Benutzer. Wenn ja, dann ja, nach einem reset gibt es keine Möglichkeit, diese Daten zurückzubringen.

2
egmont