鱼 Shell 审计

Fish Shell Auditing

我想在这篇文章之后为 Fish Shell 编写一个小脚本 - How (and Why) to Log Your Entire Bash History

限制:

  1. 我没有在 Fish 中找到任何 BASH PROMPT_COMMAND 等价物。
  2. 我正在使用自定义 Oh My Fish 提示。如果不用修改自定义鱼提示就好了

你的做法是错误的。您想记录您输入的所有命令吗?默认情况下,Fish 已保留所有会话中的最后 256k 个重复数据删除条目,因此您实际上不需要执行任何操作。

如果你想要一个 PROMPT_COMMAND 等价物,好吧,要显示提示有 fish_prompt 功能(你已经自定义了),每次出现提示时做其他事情有fish_prompt 事件,您可以为其定义监听器

function name --on-event fish_prompt
    # do stuff
end

如果您希望将执行的所有操作都记录到其他文件中,可以使用 fish_preexec 事件,因此

function log_commands --on-event fish_preexec
    # fish_preexec functions receive the commandline as the argument (see `function --help`)
    echo $argv >> ~/fish.log
end

会起作用。