Pro*_*jol 9 command-line gnome-terminal
这是我想知道很长时间的事情,但从未真正提出问题。
我知道在Linux发行版提供的终端中,使用方向键可以看到整个命令的历史(如果有其他方法,我不知道),那么这是怎么发生的呢?
是否有终端记录所有击键的地方?它是某种缓冲区吗?但是,话又说回来,如果它是一个缓冲区,它会在一段时间后被清除,不是吗?
这个系统是如何工作的?
Tar*_*run 10
命令历史通常以每个用户为基础存储.bash_history在您的主目录中的文件中。意味着,每个用户都有自己的一组他执行过的命令。
当多个终端会话打开时,它们可能会在按下箭头键时向您显示不同的命令,但是当您关闭所有终端窗口时,来自不同终端会话的历史记录将合并到一个公共~/.bash_history文件中。
Ada*_*hon 10
这是命令历史记录,它是 shell 而非终端的一个功能。
在 Ubuntu(以及许多其他 Linux 发行版)上,交互式使用的默认 shell 是 Bash ( /bin/bash)。Bash 保留您的历史记录,即~/.bash_history. 当你打开一个 shell(通常是通过打开一个终端)这个文件被读取并加载到这个 shell 的内部历史中。关闭 shell 后,更改将写回到文件中。默认情况下,这仅限于最后 500 个命令。
有一些变量和 shell 选项可以改变它的工作方式。man bash如果您想了解更多信息,请查看 bash 联机帮助页 ( )。只需搜索HISTORY(输入/^HISTORY并用 确认,用Enter跳转到下一个查找n)
还有很多方法可以绕过历史,而不仅仅是Upand Down:
例如,按Ctrl+R和前一个命令的一部分,bash 将在历史记录中向后搜索匹配的命令,如果第一个匹配不是您要查找的,则重复按Ctrl+ R。(请参阅 bash 联机帮助页中的“用于操作历史记录的命令”)
复制/etc/inputrc到~/.inputrc并取消与线history-search-forward和history-search-backward在其中。如果您键入命令的第一个字母并按PgUp,bash 将仅显示历史记录中以相同字母开头的命令。(仅在进行此更改后打开的外壳中工作)
类型!!,而不是对shell命令,这将重复上一次的命令(见的bash手册页“历史扩展”的详细信息,这一点)。
| 归档时间: |
|
| 查看次数: |
2408 次 |
| 最近记录: |