和历史命令相关的变量

在历史记录中显示时间

我们可以用HISTTIMEFORMAT这个变量来定义显示历史记录时的时间参数:

  1. export HISTTIMEFORMAT='%F %T '
  2. history
  3. ... ... ...
  4. 1740 2016-01-05 22:45:28 man history
  5. 1741 2016-01-05 22:45:33 export HISTTIMEFORMAT='%F %T'
  6. 1742 2016-01-05 22:45:34 history
  7. 1743 2016-01-05 22:45:38 export HISTTIMEFORMAT='%F %T '
  8. 1744 2016-01-05 22:45:40 history

你也可以用下面的别名来定义显示历史命令的数量:

  1. alias h1='history 10'
  2. alias h2='history 20'
  3. alias h3='history 30'

改变历史记录的大小限制.

!/.bashrc中有这两个变量控制者bash储存的历史命令的数量:

  1. # vi ~/.bash_profile
  2. HISTSIZE=450
  3. HISTFILESIZE=450

他们的含义就跟他们的名字一样.

用HISTFILE改变存放历史命令的文件.

  1. # vi ~/.bash_profile
  2. HISTFILE=/root/.commandline_warrior

( 都是些没有太多用处的东西, 尽管可定制化水平很高…

用HISTCONTROL来删除重复的历史记录

下面的例子中, 有三个pwd命令, 那么在history中就会显示三次pwd, 有点不那么人性化.

  1. # pwd
  2. /
  3. # pwd
  4. /
  5. # pwd
  6. /
  7. # history | tail -4
  8. 44 pwd
  9. 45 pwd
  10. 46 pwd
  11. 47 history | tail -4

所以我们可以这样修改:

  1. export HISTCONTROL=ignoredups

然后就不会出现相邻的重复记录了~

在历史命令中去重

如果你还嫌弃历史记录中的那些不相邻的重复记录, 你可以用这个:

  1. export HISTCONTROL=erasedups

不记录某些命令

(这个一般是默认的)

  1. export HISTCONTROL=ignorespace

这样历史记录中就不会储存以空格开头的命令了.

禁止记录历史命令

如果你不想记录任何历史命令的话, 可以这样做:

  1. export HISTSIZE=0

把历史命令记录的大小设置为0

( 还可以把历史记录的保存文件改成/dev/null, 殊途同归 ~)

不记录某些命令II

  1. export HISTIGNORE="pwd:ls:ls –ltr:"

这种方法的效果是, 历史记录不会记录这几个命令.

扩展阅读

15个例子

忽然想到, 这些扩展阅读也都是英文的啊…. 不知道各位看官有没有兴趣看呢?