存储命令历史记录以及调用的目录

存储命令历史记录以及调用的目录

有时,回顾一下我知道用于特定分析的命令会很有用,但也许我不记得用于分析的文件(或其他文件)所在的确切文件路径。

有谁知道可以存储命令历史记录以及调用时的工作目录的任何第三方工具或解决方法?

答案1

如果您愿意编写一些小脚本,Bash 有两个功能可能会有所帮助。

  1. Bash 变量PROMPT_COMMAND将在每个命令完成后执行命令或函数。

  2. Bashtrap DEBUG将在每个命令开始之前执行 bash 函数。

$PWD您可以为这些功能编写一个函数,将当前目录和命令字符串输出到您选择的文件中$BASH_COMMAND

答案2

有限情况的解决方法是将当前目录添加到您的$PS1.这在以下有限情况下会很有帮助:1)使用在具有向后滚动功能的 X11 窗口中运行的终端模拟器; 2)使用任何终端仿真器甚至原始控制台,但使用tmux或其他提供其自己的回滚功能的此类程序。

请注意,它tmux确实提供了一个命令来搜索向后滚动,这将帮助您找到特定的命令。一些终端仿真器可能还具有搜索功能。

主要缺点是回滚将包含除了 STDIN 之外的所有 STDOUT 和 STDERR。

最后tmux有一个插件叫 tmux 日志记录可以将所有会话保存到文件中。

相关内容