在 linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history
文件中。通过这个文件可以查询 shell 命令的执行历史,有助于运维人员进行系统审计和问题排查。
- 用于显示或操作历史列表。历史列表是指用户执行过的指令命令。
- 用于读取历史命令文件中的目录 到历史命令缓冲区 和将历史命令缓冲区中的目录 写入命令文件。
- history命令是被保存在内存中的。当退出或者登录shell时,会自动保存或读取历史列表。
- 该命令单独使用时,仅显示历史命令。加上number,则展示内存中最后number个历史命令。
- 在命令行中,可以使用符号
!
执行指定序号的历史命令。例如,要执行第 2 个历史命令,则输入!2。 - 在内存中,历史命令仅能够存储
1000
条历史命令,该数量是由环境变量HISTSIZE
进行控制。 - 默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。
Tips: 如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查Home目录下的用户主目录下的 .bash_history
文件,该文件记录了用户所使用的命令和历史信息。
配置显示历史命令的执行时间格式
export HISTTIMEFORMAT="%F %T "
历史列表忽略指定命令
export HISTIGNORE="pwd:ls:ll"
场景: 忽略这些指令诸如“pwd”,“ls”之类的基本指令。注意在 HISTIGNORE 中添加“ls”,只忽略“ls”,而不忽略“ls –l”。一定要准确的写出要忽略的的指令,多个指令之间用:
隔开。
配置历史列表缓存区的记录总数(默认 1000)
export HISTSIZE=500
配置历史列表文件 .bash_history 的记录总数(默认 2000)
export HISTFILESIZE=3000
配置指定历史列表文件(默认 ~/.bash_history)
export HISTFILE=~/.history
配置记录所有重复命令(默认 HISTCONTROL=ignoreboth)
export HISTCONTROL=ignoredups
当 HISTCONTROL 为以下值时,作用分别如下:
ignoredups
记录此后所有操作命令,包括连续重复命令;ignoreboth
消除此后命令历史中的连续重复条目(默认);erasedups
消除此后命令历史列表中的重复命令。
禁用 history
export HISTSIZE=0
效果:执行 history 后没有显示任何信息。
Tips: 上述配配置均是当前回话生效,如需永久生效,请将对应配置写入环境配置文件中,如 ~/.bashrc
, /etc/profile
反向查询历史命令
Ctrl+r
,再输入关键字Tips:
- 在命令行提示符下按下 Ctrl+r ,终端将显示如下提示 (reverse-i-search)`':
- 使用 Ctrl+r 反向查询历史命令,将匹配的最新一条显示出来,如果还想继续向上查询,继续按 Ctrl+r 。
执行上一个命令
!!
!-1
执行序号 num 的历史命令
!num
执行最近一个 cmd 开头的历史命令
!cmd
清空历史命令
- 清空缓存中的历史命令
history -c
- 清空历史列表文件
rm -f ~/.bash_history
echo "">~/.bash_history
- 清空缓存中的历史命令
复用上一条命令的参数
!!:^
或!:^
或!^
执行上一条命令的第一个参数;!!:$
或!:$
或!$
执行上一条命令的最后一个参数;!!:num
或!:num
执行上一条命令的第 num 个参数;
复用最近一条 cmd 命令的参数
!cmd:^
执行 cmd 命令的第一个参数;!cmd:$
执行 cmd 命令的最后一个参数;!cmd:num
执行 cmd 命令的第 num 个参数;
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享标题:Linuxhistory命令记录设置-创新互联
网页链接:http://lswzjz.com/article/dopedj.html