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