Linux history命令记录设置

在 linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中。通过这个文件可以查询 shell 命令的执行历史,有助于运维人员进行系统审计和问题排查。

history命令

  • 用于显示或操作历史列表。历史列表是指用户执行过的指令命令。
  • 用于读取历史命令文件中的目录 到历史命令缓冲区 和将历史命令缓冲区中的目录 写入命令文件。
  • history命令是被保存在内存中的。当退出或者登录shell时,会自动保存或读取历史列表。
  • 该命令单独使用时,仅显示历史命令。加上number,则展示内存中最后number个历史命令。
  • 在命令行中,可以使用符号 ! 执行指定序号的历史命令。例如,要执行第 2 个历史命令,则输入!2。
  • 在内存中,历史命令仅能够存储 1000 条历史命令,该数量是由环境变量 HISTSIZE 进行控制。
  • 默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。

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

环境配置

  1. 配置显示历史命令的执行时间格式

    • export HISTTIMEFORMAT="%F %T "
  2. 历史列表忽略指定命令

    • export HISTIGNORE="pwd:ls:ll"
      场景: 忽略这些指令诸如“pwd”,“ls”之类的基本指令。注意在 HISTIGNORE 中添加“ls”,只忽略“ls”,而不忽略“ls –l”。一定要准确的写出要忽略的的指令,多个指令之间用 : 隔开。
  3. 配置历史列表缓存区的记录总数(默认 1000)

    • export HISTSIZE=500
  4. 配置历史列表文件 .bash_history 的记录总数(默认 2000)

    • export HISTFILESIZE=3000
  5. 配置指定历史列表文件(默认 ~/.bash_history)

    • export HISTFILE=~/.history
  6. 配置记录所有重复命令(默认 HISTCONTROL=ignoreboth)

    • export HISTCONTROL=ignoredups

    当 HISTCONTROL 为以下值时,作用分别如下:

    • ignoredups 记录此后所有操作命令,包括连续重复命令;
    • ignoreboth 消除此后命令历史中的连续重复条目(默认);
    • erasedups 消除此后命令历史列表中的重复命令。
  7. 禁用 history

    • export HISTSIZE=0
      效果:执行 history 后没有显示任何信息。

Tips: 上述配配置均是当前回话生效,如需永久生效,请将对应配置写入环境配置文件中,如 ~/.bashrc , /etc/profile

复用历史命令 

  1. 反向查询历史命令

    Ctrl+r ,再输入关键字

    Tips:

    • 在命令行提示符下按下 Ctrl+r ,终端将显示如下提示 (reverse-i-search)`':
    • 使用 Ctrl+r 反向查询历史命令,将匹配的最新一条显示出来,如果还想继续向上查询,继续按 Ctrl+r 。
  2. 执行上一个命令

    • !!
    • !-1
  3. 执行序号 num 的历史命令

    • !num
  4. 执行最近一个 cmd 开头的历史命令

    • !cmd
  5. 清空历史命令

    • 清空缓存中的历史命令
      • history -c
    • 清空历史列表文件
      • rm -f ~/.bash_history
      • echo "" > ~/.bash_history
  6. 复用上一条命令的参数

    • !!:^ 或 !:^ 或 !^ 执行上一条命令的第一个参数;
    • !!:$ 或 !:$ 或 !$ 执行上一条命令的最后一个参数;
    • !!:num 或 !:num 执行上一条命令的第 num 个参数;
  7. 复用最近一条 cmd 命令的参数

    • !cmd:^ 执行 cmd 命令的第一个参数;
    • !cmd:$ 执行 cmd 命令的最后一个参数;
    • !cmd:num 执行 cmd 命令的第 num 个参数;
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
历史命令Linux/Unix系统中的一个常用命令,用于查看当前用户在命令行中执行过的命令历史记录。通过使用history命令,您可以方便地查看、搜索、编辑和执行之前执行过的命令,从而提高操作的便利性和效率。 使用history命令可以显示当前会话中执行过的命令历史记录。默认情况下,它会显示最近执行的命令列表,每个命令前面都有一个数字作为索引。您可以使用这些索引来重新执行以前的命令。例如,要重新执行索引为10的命令,可以使用!10命令。 您可以通过history命令的选项来扩展其功能。例如,使用history -c命令可以清空当前会话的命令历史记录。这在某些情况下可能很有用,比如当您希望清除敏感信息或者只想保留当前会话的命令历史记录。 另一个有用的选项是history | grep命令,它可以在历史命令记录中搜索特定的命令。例如,如果您想找到所有包含"ls"的历史命令,可以使用history | grep ls命令。这对于查找特定命令的使用情况或者回顾之前执行过的类似命令非常有帮助。 您还可以使用HISTSIZE环境变量来设置历史命令记录的长度。默认情况下,命令历史记录的长度是1000个命令。通过设置HISTSIZE环境变量,您可以增加或减少历史命令记录的长度。例如,要将历史命令记录的长度设置为2000,可以在命令行中输入export HISTSIZE=2000。 综上所述,history命令Linux/Unix系统中一个非常有用的命令,它允许用户查看、搜索、编辑和执行之前执行过的命令历史记录。通过使用history命令的不同选项,您可以进一步扩展其功能,提高命令行操作的效率和便利性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值