当我在 ssh 由于连接问题断开连接后重新连接到服务器时,我希望能够告诉我的旧 bash 会话终止并保存其命令历史记录。
我想会有一种方法可以"写入"丢失的外壳的tty输入缓冲区,或者发送bash的信号。
在修改了对我不起作用ttyecho
之后,我从手册页中意识到,只需一个简单的SIGHUP
信号即可轻松实现干净退出,甚至不需要 root(如果是同一个用户):
$ kill -HUP 11597
将导致"挂断"被打印在"丢失"外壳中(如果您对此进行测试并可以访问它),并保存丢失外壳的历史记录。
另外:
$ history -a; history -r
然后 (1) 确保不要覆盖我们的新 shell 刚刚写入的历史记录,以及 (2) 使旧 shell 中的历史记录立即可用于新 shell。