history
é um comando interno para bash, portanto você não deseja executar o executável history
, você deseja executar o executável bash
. ls
funciona porque é um executável por si só, geralmente em /bin/ls
.
Além disso, por padrão o bash desativa o histórico em shells não interativos, como é o caso quando você executa um comando remoto.
Você pode criar um script de shell na máquina remota para ativá-lo e executar o histórico, por exemplo:
#!/usr/bin/bash
HISTFILE=~/.bash_history
set -o history
history
Ou, se você realmente quiser fazer tudo isso a partir da chamada ssh, você pode fazer:
ssh [email protected] 'echo -e "HISTFILE=~/.bash_history\nset -o history\nhistory" | bash'
Note que também não leva em consideração a variável HISTTIMEFORMAT
, se você usá-lo na máquina remota, então planeje isso.
Referências: Comando de histórico dentro do script bash