我通过ssh
登录了许多服务器。通常,我只使用简单的bash
history search来滚动浏览“ ssh”命令的历史记录并找到我想要的命令。但是,最终我的.bash_history
达到了极限,尽管增加了极限,但我开始丢失条目。
我宁愿调整我的$PROMPT_COMMAND
,以便在执行每个命令之后,它检查是否使用ssh
运行了命令,如果是,则将该命令附加到文件中的某个位置。
我看到了here和here的一些相关问题,但是我很难理解如何在我可以从.bashrc
提取并添加到{{ 1}},它将检查输入的最后一条命令是否以$PROMPT_COMMAND
开头并将其复制到文件中。
例如,这不起作用:
ssh
这也不起作用:
$ PROMPT_COMMAND="echo; foo; "
$ foo () { echo "command was: $BASH_COMMAND" ; }
$ ssh cn-0030
...(Ctrl-D)...
$ logout
Connection to cn-0030 closed.
command was: echo "command was: $BASH_COMMAND"
因为$ foo () { echo !! | grep ssh --color ; }
被扩展为立即运行的实际最后一条命令,然后保存到!!
,而不是在评估foo
时被评估