-
删除无意义命令
export HISTIGNORE='pwd:exit:fg:bg:top:clear:history:ls:uptime:df'使用该选项后,在历史记录中就不会记录选项后包含的命令。
-
忽略敏感命令
export HISTCONTROL=ignorespace例如:你不想在历史记录中出现带有密码的命令,可以在输入密码的命令前添加空格,这样就不会保存在历史记录中。
-
删除重复命令
HISTCONTROL=ignoredups使用改选项后,历史记录中不会记录连续重复执行的命令,例如:连续输入了 3 次 ls,只会记录一次。
如果你想更为激进,那么可以使用以下选项,删除整个历史记录里面的重复项。
HISTCONTROL=erasedups -
不丢失重要命令
Bash 的 history 文件默认是覆盖,如果并发打开了多个 Shell 会话,只会记录最后一个退出的 Shell 的命令历史(历史命令保存在内存中,且在退出时写入历史文件)。
使用以下选项,将历史记录修改为追加模式。
shopt -s histappend与此同时,在共享 Shell 的情况下,可能会由于历史文件太小而丢失重要的记录,因此,可以把历史记录的上限调大,避免丢失有用的命令。
HISTSIZE=10000 HISTFILESIZE=10000HISTFILESIZE定义了在.bash_history中保存命令的记录总数.HISTSIZE定义了history命令输出的记录数 -
记录命令执行时间
export HISTTIMEFORMAT="%F %T "HISTTIMEFORMAT的格式是strftime函数的格式:%F : Y-M-D ,%T: H-M-S,需要在后面再加个空格,不然时间会和命令连到一起。 -
修改历史记录文件名称
默认情况下,历史记录都保存在
~/.bash_history文件中。export HISTFILE=/var/history/$USER-$UID.log使用
HISTFILE将历史记录保存到指定的文件中。 -
实时追加历史命令
PROMPT_COMMAND="history -a"PROMPT_COMMAND添加的是每个命令后执行的命令,添加上history -a命令,可以直接将当前缓冲区的命令写入到文件中。# history 命令一些常用选项: -N: 显示历史记录中最近的N个记录; -c:清空当前历史命令; -a:将历史命令缓冲区中命令写入历史命令文件中; -r:将历史命令文件中的命令读入当前历史命令缓冲区; -w:将当前历史命令缓冲区命令写入历史命令文件中; -d<offset>:删除历史记录中第offset个命令 -n<filename>:读取指定文件