Il y a une commande reset
que je peux utiliser dans bash, qui, je pense, fait partie de core-utils
. Est-ce que cela nettoie la RAM utilisée par les commandes précédentes de la session Terminal?
Je veux dire tout ce qui est écrit dans le terminal et la mémoire utilisée par les commandes.
De 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.[...]
Donc, il réinitialise complètement la session de terminal dans laquelle vous vous trouvez, purgeant toutes les données (il sera toujours stocké ~/.bash_history
bien que, supprimez-le si vous vous sentez secret). Si vous souhaitez simplement recharger les paramètres, vous pouvez exécuter . ~/.bashrc
. Si vous souhaitez simplement avoir une fenêtre de terminal vierge sans réinitialisation, exécutez clear
ou appuyez sur Ctrl + L
.
reset
provient de ncurses
et non coreutils
.
Il réinitialise de nombreuses propriétés du terminal, mais de loin pas toutes. De plus, dans de nombreux émulateurs de terminal, y compris les versions récentes de gnome-terminal, il efface également la totalité de la mémoire tampon de défilement, en ce sens qu'elle n'est plus accessible via l'interface utilisateur, par exemple. en utilisant la barre de défilement.
Je ne suis pas sûr de ce que vous entendez par RAM (je veux dire, je sais évidemment ce que cela signifie, mais je ne comprends pas tout à fait l'aspect que vous demandez).
Un émulateur de terminal est libre d'implémenter le comportement souhaité de la manière qu'il souhaite. Par exemple. il peut utiliser un langage de programmation ou une bibliothèque avec garbage collection, auquel cas vous n’avez pratiquement aucun contrôle lorsque les données disparaissent de la RAM.
Le terminal GNOME a une implémentation très complexe de l’historique de défilement. Un peu plus que les lignes normalement visibles (c’est-à-dire si vous n’avez pas fait défiler en arrière) sont conservées dans la RAM. Après un certain temps, les données qui ont été extraites sont converties dans un format différent (toujours en RAM), groupées en blocs plus grands, une fois qu'un bloc complet est rempli, puis compressé, crypté et écrit sur le disque. (Tout cela en supposant que vte-0.40 ou une version plus récente; les versions antérieures étaient assez différentes.) Mais le processus RAM est toujours en cours jusqu'à ce que quelque chose d'autre (c'est-à-dire encore plus de données dans le terminal) prenne sa place. Il existe également un cache de lecture où il pourrait être présent.
Mais tout cela ne devrait être pertinent que si vous examinez l'empreinte mémoire du processus pour des raisons telles que tenter de comprendre quelles données peuvent être récupérées si une personne pénètre dans un système en direct et obtient un accès root. En ce sens, rien ne garantit que les données effacées visuellement par reset
ne soient pas du tout récupérables. Il peut-être existe toujours dans la RAM ou sur le disque (chiffré avec une clé se trouvant dans RAM jusqu'à ce que vous fermiez l'onglet de terminal donné).
Si vous êtes un utilisateur habituel qui examine le comportement visible du processus par l'utilisateur, ce comportement visible par l'utilisateur est tout ce dont vous devez vous soucier. Ce n'est pas pertinent (et il est assez difficile à suivre) lorsque les données sont réellement effacées de la mémoire RAM du processus. .
Alors, supposons que vous ne vous souciez pas de la RAM, mais du comportement visible de l'utilisateur pour les utilisateurs "normaux". Si oui, alors oui, après un reset
, il n’ya aucun moyen de récupérer ces données.