从man中可以获得主要用法,如下:     

  !      Start a history substitution, except when followed by a blank, newline, = or (.

  !n     Refer to command line n.

  !-n    Refer to the current command minus n.

  !!     Refer to the previous command.  This is a synonym for `!-1’.

  !string  Refer  to  the  most  recent  command  preceding  the current position in the history list starting with string.

  !?string[?]

       Refer to the most recent command preceding the current postition in the history list containing  string.

       The trailing ? may be omitted if string is followed immediately by a newline.

  ^string1^string2^

              Quick   substitution.   Repeat  the  last  command,  replacing  string1  with  string2.   Equivalent  to

              ``!!:s/string1/string2/‘’ (see Modifiers below).

  !#     The entire command line typed so far.

################end###################

下面的内容来自csdn

现在大多数的Linux系统都使用bash作为默认的shell吧,下面就介绍一下bash的history命令管理功能吧,history命令可以回顾,修改和重用之前使用过的历史命令。

1.一些变量说明:

$HISTFILE bash启动的时候会读取~/.bash_history文件并载入到内存中,这个变量就用于设置.bash_history文件,bash退出时也会把内存中的历史回写到.bash_history文件

$HISTSIZE 设置bash会员期间历史包含的命令数量

$HISTFILESIZE 设置历史文件中实际存储的命令数量

2.显示历史命令

history 显示全部历史

history 数字 显示之前执行过的若干命令,例:history 2 显示执行过的上两条命令

使用上下箭头键也可以查看上一条根下一条命令,

3.运行历史命令

!! 运行上一条命令

!88 运行第88条命令

!88 /test 运行第88条命令并在命令后面加上/test

!?CF? 运行上一个包含CF字符串的命令

!ls 运行上一个ls命令

!ls:s/CF/l 运行上一个ls命令,其中把CF替换成l

fc 编辑并运行上一个历史命令

fc 66 编辑并运行第66个历史命令

fc -e /usr/bin/vim 66 使用vim编辑第66个命令并运行

4.搜索历史命令

使用ctrl+r搜索历史中的字符串,重复按ctrl+r可以在历史命令列表中不断的向前搜索包含字符串的命令,回车就会执行查找的命令

5.清空历史命令

history -c

6.写history

history -w 让bash将历史命令立即从内存写到.bash_history文件

history -a 将目前新增的 history 历史命令写入.bash_history文件

7.history历史命令记录删除

修改/etc/profile将HISTSIZE=1000改成0或1

清除用户home路径下.bash_history

8.history配置

运行 set | grep HISTFILE

显示:HISTFILE=/root/.bash_history

HISTFILESIZE=1000

在.bash_profile文件中添加

HISTFILE=/root/history

export HISTFILE

重新登录后历史命令都会写入到/root/history文件中

其余的一些设置可以在.bashrc文件中设置

export HISTCONTROL=ignoredups #忽略重复的命令

export HISTIGNORE=”[ ]*:&:bg:fg:exit” #忽略由冒号分割的这些命令

export HISTFILESIZE=1000 #设置保存的历史命令的文件大小

export HISTSIZE=100 #设置保存的历史命令的条数

技巧:

shopt -s histappend 在shell中执行这个命令可以使shell保存历史命令的时候使用追加的方式,因为默认是覆盖,在多终端的清空下,最后退出的终端灰覆盖以前的历史记录

在history历史记录中显示时间和执行命令的用户 echo ‘export HISTTIMEFORMAT=”%F %T `whoami` “‘ >> /etc/profile