1.history显示时间

history命令默认会显示曾经输入的命令和编号,但是显示出命令的时间会更加有帮助,会帮助你判断问题所在。至少可以很方便的知道了自己什么时间干了什么事:

export HISTTIMEFORMAT='%F %T'

这样执行history会显示每条命令执行的时间

2.执行历史命令

!数字 执行history中执行过的对应的命令

!ps 执行history中以ps开头的命令

3.更改history保存指令的数目

~/.bash_profile中的HISTSIZE字段限制history保存的指令数量

HISTSIZE=500

只保存500条最新的命令,如果指定为0则不保存历史命令。

history -c 清除历史命令,但是在.bash_history中还可以看到

4.指定保存历史命令的文件

默认执行过的history命令保存在.bash_history中,可以更改~/.bash_profile中的HISTORY字段保存历史命令的文件:

HISTFILE=/root/.command_filename

这样不同shell中的用户所执行的命令便被记录到不同的文件中,便于以后查找。

5.去除历史中的重复执行的命令

export HISTCONTROL=ignoredups  #去除连续重复的命令

export HISTCONTROL=erasedups #去除整个历史中重复的命令

6.强制history忽略某条指定的命令

export HISTCONTROL=ignorespace

这样如果你想不让history记录你即将执行的命令,可以在此条命令之前加一个空格即可

export HISTIGNORE=“pwd:ls:ls -l:”

这样history不保存pwd,ls,和ls -l命令 #一定要准确写出要忽略的指令

7.调用上一条指令的参数

!!:$  作用同 esc + . 调用上一条指令的最后一个参数

假设执行cp test test.bak后,接下来想进行的操作想调用test,则可以用 !^ 代替。即vi !^ 和vi test效果一样

# cp ~/longname.txt /long/path/filename.txt

# ls -l !cp:2 效果同 ls -l /long/path/filename.txt

如果是!cp:$则表示调用以cp开头的命令的最后一个参数(此处依然是/long/path/filename.txt)