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.[...]
因此,它会完全重新初始化您所在的终端会话,清除所有数据(但它仍会被存储~/.bash_history,如果您觉得保密,请删除它)。如果您只想重新加载设置,可以运行. ~/.bashrc. 如果您只想在不重置的情况下拥有一个空白终端窗口,请运行clear或点击Ctrl + L.
来自
man reset
:因此,它会完全重新初始化您所在的终端会话,清除所有数据(但它仍会被存储
~/.bash_history
,如果您觉得保密,请删除它)。如果您只想重新加载设置,可以运行. ~/.bashrc
. 如果您只想在不重置的情况下拥有一个空白终端窗口,请运行clear
或点击Ctrl + L
.reset
来自ncurses
,不是coreutils
。它重置了终端的许多属性,但到目前为止还不是全部。同样在许多终端仿真器中,包括最近版本的 gnome-terminal,它还会清除整个回滚缓冲区,因为它不再可以通过 UI 访问,例如使用滚动条。
我不确定你所说的 RAM 是什么意思(我的意思是,我显然知道它代表什么,但我不太明白你在问什么方面)。
终端仿真器可以自由地以它想要的任何方式实现所需的行为。例如,它可能使用带有垃圾收集的编程语言或库,在这种情况下,当数据实际上从 RAM 中消失时,您几乎无法控制。
GNOME 终端有一个非常复杂的回滚历史实现。比通常可见的行多一点(即假设您没有向后滚动)保留在 RAM 中。在某个时间点之后,被滚动出的数据被转换为不同的格式(仍然在 RAM 中),分批成更大的块,一旦一个完整的块被填满,然后被压缩、加密并写入磁盘。(所有这些都假设 vte-0.40 或更新版本;旧版本完全不同。)但它仍然在进程的 RAM 中,直到其他东西(即终端中的更多数据)取代它。还有一个可能存在的读取缓存。
但是,只有当您检查进程的内存占用量时,所有这些都应该是相关的,例如试图了解如果有人闯入实时系统并获得 root 访问权限可以恢复哪些数据。从这个意义上说,无法保证在视觉上擦除的数据
reset
根本无法恢复。它可能仍然存在于 RAM 中或磁盘上(使用 RAM 中的密钥加密,直到您关闭给定的终端选项卡)。如果您是检查进程的用户可见行为的普通用户,那么您应该关心这个用户可见行为,当数据实际上从进程的 RAM 中永久清除时,这是无关紧要的(并且很难遵循) .
所以,让我假设您实际上并不关心 RAM,您关心的是“普通”用户的用户可见行为。如果是这样,那么是
reset
的,之后就无法恢复该数据。