使用HISTCONTROL来消除命令历史中的连续重复条目

使用HISTCONTROL来消除命令历史中的连续重复条目

在下面的例子中pwd被输入了三次,当你使用history的时候,你会看到这三条命令连续出现。设置HISTCONTROLignoredups,来消除重复命令

# pwd

# pwd

# pwd

# history | tail -4

44 pwd

45 pwd

46 pwd

47 history | tail -4

[: 上面pwd被执行了三次之后,历史中有三条pwd命令]

# export HISTCONTROL=ignoredups

# pwd

# pwd

# pwd

# history | tail -3

56 export HISTCONTROL=ignoredups

57 pwd

58 history | tail -4 [注:即使上面pwd被执行了三次,历史中也只有一条pwd命令]

 

用HISTIGNORE让history在存储时忽略某些指令

HISTIGNOREhistory在存储时忽略某些指令

有时你不想在记录里看到诸如“pwd”,“ls”之类的基本指令,可以用HISTIGNORE忽略这些指令。

注意在HISTIGNORE中添加“ls”,只忽略“ls”不忽略“ls –l”。一定要准确的写出要忽略的的指令。

# export HISTIGNORE=”pwd:ls:ls –ltr:”

 

用Ctrl + R搜索历史命令

我非常确信这应该是你最常使用的history特性,当你执行了一串相当长的命令之后,你只要用关键字搜索一下历史命令然后重新执行这条命令而不需要将整条命令再输一遍。

方法是:按下Ctrl + R然后输入关键字

在以下示例中,我搜索“red”,则显示以前的命令中含有”red”的命令“cat /etc/redhat-release”

[注:在命令行提示符下按下CtrlR,终端将显示如下提示―reverse-i-search(reverse-i-search)`red`: cat /etc/redhat-release [注:当看到你要的命令后按回车键,就可以重新执行这条命令了]

# cat /etc/redhat-release Fedora release 9 (Sulphur) 而有的时候你需要在执行一条历史命令之前编辑它.比如,你可以像下面那样搜索“httpd”,终端显示历史命令“service httpd stop”,选择它把“stop”改为“start”然后执行它

[: 在命令提示符下按 Ctrl+R , 将会显示提示符reverse-i-search] (reverse-i-search)`httpd`: service httpd stop