我正在尝试创建一个审核文件。我看到你可以使用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 设置为包含cd
和cd *
(以及ls
和ls *
)以涵盖您展示的案例。
答案2
你可以试试:
以可编辑模式打开 /etc/profile,因为它是只读的。
定义以下两个变量并保存文件:
HISTTIMEFORMAT='%d-%m-%y %T'
HISTIGNORE='ls:pwd:日期:cd'
- 源/etc/profile
这适用于全局,如果您只想为您的用户,请按照 ~/.bash_profile 中的相同步骤操作。
祝你好运