历史命令 - 忽略特定命令

历史命令 - 忽略特定命令

我正在尝试创建一个审核文件。我看到你可以使用history它来查看已执行的命令。

可以修改它以显示时间戳和其他功能,例如阻止在教程中显示特定命令,但我发现它无法按照教程中的功能工作

添加时间:

export HISTTIMEFORMAT='%F %T  '

应该删除 ls、pwd、cd 和 date:

export HISTIGNORE='ls:pwd:date:cd:'

输入这些命令后的历史输出:

 2077  2020-04-30 11:47:25 export HISTIGNORE='ls:pwd:date:cd:'
 2078  2020-04-30 11:47:33 cd ..
 2079  2020-04-30 11:47:41 history
 2080  2020-04-30 11:48:25 cd a2
 2081  2020-04-30 11:48:32 cd a2
 2082  2020-04-30 11:48:38 history

我是否正在查看过时的教程或者我弄乱了命令?

答案1

您的cd命令不会被忽略,因为您的 HISTIGNORE 模式仅包含cd;这bash手册部分指出HISTIGNORE

每个模式都锚定在行的开头,并且必须匹配完整的行(不附加隐式“*”)

您可能有兴趣将 HISTIGNORE 设置为包含cdcd *(以及lsls *)以涵盖您展示的案例。

答案2

你可以试试:

  1. 以可编辑模式打开 /etc/profile,因为它是只读的。

  2. 定义以下两个变量并保存文件:

HISTTIMEFORMAT='%d-%m-%y %T'

HISTIGNORE='ls:pwd:日期:cd'

  1. 源/etc/profile

这适用于全局,如果您只想为您的用户,请按照 ~/.bash_profile 中的相同步骤操作。

祝你好运

相关内容