Linux基础命令之-history

history是用来查看命令历史记录的工具,系统默认保留1000条。该命令是通过shell自动记录在缓存中,退出后会自动保存在历史命令文件中。默认文件位置为 ~/.bash_history

[root@Centos7 ~]# history
    1  who a i
    2  who is sb
    3  who
    4  init 5
    5  runlevel
    6  tty
    7  init 0
    8  whoami
    9  who am i
   10  startx
   11  ifconfig
  • 格式:

history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]

  • 选项:
    n: 显示最近的n条历史
    -c: 清空命令历史
    -d n: 删除历史中指定的命令,n表示命令号
    -a: 追加本次会话新执行的命令历史列表至历史文件,因为多终端所以如果想看当前都发生了什么操作就可以执行-a进行查看
    -n: 读历史文件(本地数据)中未读过的行到历史列表(内存数据)
    -r: 读历史文件(本地数据)附加到历史列表(内存数据)
    -w: 保存历史列表(内存数据)到指定的历史文件(本地数据)
    -s: 展开历史参数成一行,附加在历史列表后。用于伪造命令历史。记录但不操作。


    history -s

-p: 展开历史参数成多行,但不记录在历史列表中。操作但不记录历史


history -p
  • 环境变量
    HISTFILE 指定存放历史文件位置,默认位置在~/.bash_profile(针对用户)
    /etc/profile(针对全局,如果~/.bash_profile内没有相关环境变量内容则使用全局变量设置)

    HISTFILESIZE 命令历史文件记录历史的条数 修改方法同下
    HISTSIZE 命令历史记录的条数,默认为1000

    HISTSIZE

    HISTTIMEFORMAT="%F %T" 显示命令发生的时间

    HISTTIMEFORMAT

    HISTIGNORE="str1:str2:..." 忽略string1,string2历史
    HISTCONTROL 包含以下4项,让哪一项生效只需要让其=下面一项即可
    ignoredups 忽略重复的命令;连续且相同方为“重复”
    ignorespace 忽略所有以空白开头的命令
    ignoreboth 同时启用ignoredups,ignorespace
    erasedups 删除重复命令

  • 快捷方式
    !number 再次执行在history里记录number编号的命令
    !! 执行刚刚执行的命令
    !-1 同上
    ctrl-p 同上
    方向键上 同上
    !:0 执行上一次命令中的单独命令
    如:> ls -l /etc/motd, !:0 会执行ls

    !word 搜索历史中最近的以word开始的命令并执行
    !?word 搜索包含word的
    !$:p 打印并输入上一个命令的最后一个参数
    !* 打印并输入上一个命令的所有参数

你可能感兴趣的:(Linux基础命令之-history)