通过 ssh 读取 bash 历史记录不起作用

gue*_*tli 4 bash history

这确实有效:

server:~> history | tail -100   | grep etc
  908  2018-01-17 08:53:43 cd /etc/apache2/vhosts.d/default.d/
  ....
  ....
Run Code Online (Sandbox Code Playgroud)

但这不会:

ssh root@server "history | tail -100 | grep etc"
Run Code Online (Sandbox Code Playgroud)

为什么?

wur*_*tel 9

显然 bash 在非交互式运行时不启用历史处理。

您可以通过使用-ifor 交互选项启动 bash 来解决此问题:

ssh root@server "echo history | bash -i | tail -100 | grep etc"
Run Code Online (Sandbox Code Playgroud)