告诉 Bash 你想要它记住什么,甚至删除不需要的记录重写历史。
运行 Bash 的 Linux 终端有内置的历史记录,你可以用来跟踪最近的操作。要查看你的 Bash 会话的历史记录,请使用内置命令 history:
$ echo "foo"
foo
$ echo "bar"
bar
$ history
1 echo "foo"
2 echo "bar"
3 history
与大多数命令不一样,history 命令不是文件系统上的可执行文件,而是 Bash 的功能。你可以使用 type 命令来验证:
$ type history
history is a shell builtin
历史控制
shell 历史记录的行数上限由 HISTSIZE 变量定义。你可以在 .bashrc 文件中设置此变量。以下将你的历史记录设置为 3,000 行,之后将最早的行删除以为最新命令腾出空间,该命令位于列表的底部:
export HISTSIZE=3000
还有其他与历史相关的变量。 HISTCONTROL 变量控制哪些历史被记录。你可以在 .bashrc 中写入下面的行来强制 Bash 排除以空格开头的命令:
export HISTCONTROL=$HISTCONTROL:ignorespace
现在,如果你输入以空格开头的命令,那么它将不会记录在历史记录中:
$ echo "hello"
$ mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1 echo "hello"
2 echo "world"
3 history
你也可以避免重复的条目:
export HISTCONTROL=$HISTCONTROL:ignoredups
现在,如果你一个接着一个输入两个命令,历史记录中只会显示一个:
$ ls
$ ls
$ ls
$ history
1 ls
2 history
如果你喜欢这两个忽略功能,那么可以使用 ignoreboth:
export HISTCONTROL=$HISTCONTROL:ignoreboth