我可以使用什么来捕获我在bash中运行的每个命令(a-la历史记录)

时间:2012-03-13 14:36:49

标签: linux bash shell

我知道历史记录会捕获我运行的命令,但它是特定于shell的。我使用多个shell和多个主机,并希望编写一个小脚本,在我运行的每个命令之后,将该命令与主机名一起转储到某个文件。这样,我可以实现我自己的历史命令,该命令从该文件中读取,并且可以将主机作为参数,这对我来说很方便。我不知道如何获得第一部分..即,获取我输入的每个shell命令以触发“将该命令转储到文件中”部分。有什么想法吗?

由于

2 个答案:

答案 0 :(得分:0)

在bash中,PROMPT_COMMAND环境变量包含将在显示PS1提示之前执行的命令。所以你的可能就像history | tail -n1 | perl -npe 's/^\s+\d+\s+//' | yourcommand HOST

答案 1 :(得分:0)

script实用程序应该可以解决您的问题。它会记录您键入的所有内容以及在终端上打印的所有内容(甚至包括终端控制代码,因此,如果您在控制台上cat该文件,您甚至可以重现原始文本颜色。)