Answers:
您可以history -a; history -c
在所有窗口中运行以保存历史记录。然后history -r
刷新它。
要更永久地解决它,请将其添加到您的.bashrc
:
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
听起来很难。这里有一些可能对您有用的方法。
如果您已经安装了流程记帐工具(在Linux上,请查找名为的软件包acct
)并具有使用它们的许可权,那么您可以确定何时以及可能在哪个终端上运行convert
:
lastcomm convert
如果这不可用或不确定,则可以history
在每个bash实例中执行命令以查找convert
命令。这也将查找bash启动时历史文件中的命令。
: >/tmp/convert.history
for w in $(seq 0 11); do
screen -p $w -X stuff \
'history | sed 's/^.*convert/'$w'&/" >>/tmp/convert.history
'; done
$(seq 0 11)
遍历屏幕窗口的数量。确保跳过当前未运行bash的窗口,但跳过其他会不同地解释输入的窗口。screen -p $w stuff …
将以下字符串作为输入发送到指定的窗口。您需要在字符串末尾使用换行符。/tmp/convert.history
将包含诸如行的列表。3 convert foo.jpg
convert foo.jpg
history | grep convert
在所有窗口中运行。我很失望,我想接受Gilles的另一个不错的答复!
setopt share_history
在/etc/zsh/zshrc
所以这个问题不应该发生在我身上:P