history命令(查看linux的shell执行命令记录)

history命令

history命令: 是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。

注: 如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查该用户~目录下的.bash_history文件,该文件记录了用户所使用的命令和历史信息。

语法:

history (选项) (参数)
选项:
  • -N: 显示历史记录中最近的N个记录;
  • -c:清空当前历史命令;
  • -a:将历史命令缓冲区中命令写入历史命令文件中;
  • -r:将历史命令文件中的命令读入当前历史命令缓冲区;
  • -w:将当前历史命令缓冲区命令写入历史命令文件中;
  • -d <offset>:删除历史记录中第offset个命令
  • -n <filename>:读取指定文件
参数:
  • n:打印最近的n条历史命令。

快捷键

  1. 使用CTRL+R搜索并执行历史命令

  2. 从命令历史中执行一个指定的命令

    # !number 执行第几条命令
    !4
    
  3. 指定关键字来执行以前的命令

    输入!ps并回车,将执行以ps打头的命令

  4. 快速重复执行上一条命令
    以下四种方法,上方向键!!!-1crtl+p

  5. 当前命令获取上一条命令参数

    !!:$!$都可以为当前命令获得上一条命令的参数
    !^获得上一条命令的第一项参数

修改history配置,优化记录

可以直接修改配置文件增加环境变量,也可以使用export 命令仅为此次登录修改。

配置显示执行历史记录时间:

默认情况下,history并不记录命令的执行时间,可以使用HISTTIMEFORMAT在历史中显示TIMESTAMP
export HISTTIMEFORMAT="%F %T " 追加到~/.bashrc,执行source .bashrc 让其生效。仅针对当前账号有效

使用 HISTSIZE 控制历史命令记录的总行数

将这两行内容追加到/etc/profile文件中,当你再次重新登录bash时,历史命令总行数会变成100000

export HISTSIZE=100000
export HISTFILESIZE=100000

使用 HISTFILE 更改历史文件名称

默认情况下,历史命令存放在~/.bash_history文件中,可以修改环境变量

export HISTFILE=/.logs/history_${LOGNAME}

备注:这样可以将每个用户的历史文件清晰的使用文件名来标记,方便分析

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

HISTCONTROL=ignoredups剔除连续的相同命令的条目,仅剩余一条,如下:

#执行命令
export HISTCONTROL=ignoredups
#执行3次相同命令
# cd
# cd
# cd

效果

 history | tail -n 5
  234 2022-08-22 20:11:14 history 
  235 2022-08-22 20:11:31 export HISTCONTROL=ignoredups
  236 2022-08-22 20:11:43 cd
  237 2022-08-22 20:11:58 history | tail -n 5

三个cd变成一个了

使用 HISTCONTROL 强制 history 不记住特定的命令

HISTCONTROL=ignorespace,在不想被记住的命令前面输入一个空格

$ export HISTCONTROL=ignorespace
$ cd ./
$  ls
$ ll

注意,我在ls前输入了一个空格,ls没有保存!

$ history | tail -5
 241 export HISTCONTROL=ignorespace
 242 cd ./
 243 ll
 244 history | tail -5

使用HISTSIZE禁用history

如果想禁用history,可以将HISTSIZE设置为0:

$ export HISTSIZE=0
$ history 

使用HISTIGNORE忽略历史中的特定命令

忽略pwdls命令:

$ export HISTIGNORE="pwd:ls:"
$ pwd
$ cd
$ ls

效果如下

$ history 4
 257 export HISTIGNORE="pwd:ls:"
 258 cd
 259 history 5
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值