Измените командную строку, которая будет сохранена в history / .bash_history в Linux
Когда команды сохраняются в истории в Linux, есть ли способ добавить командную строку в истории к IP-адресу удаленного SSH и идентификатору процесса, чтобы можно было легко группировать команды из одного сеанса SSH, а также видеть, откуда они запускались? Я знаю, как получить IP-адрес и идентификатор процесса, но я не знаю, как получить его, чтобы сохранить это в истории.
Есть ли какой-нибудь способ изменить командную строку, которая сохраняется в.bash_history, или какой-то другой способ сделать это?
1 ответ
Даже если бы можно было изменить сохраненную команду, делать это было бы нежелательно, потому что это повлияло бы на фактическую историю команд, если вы собираетесь ее использовать (например, с помощью стрелки вверх, ctrl + r и т. Д.). Комментарии безопасно разрешены в файле истории (например, метка времени), и поэтому, исходя из этого, есть способ внести эту информацию в историю как комментарии. Недостатком является то, что нажатие ctrl+c приведет к запуску $PROMPT_COMMAND и, таким образом, к ненужному комментарию, добавленному в файл истории, но это относительно незначительно и отличается от того, что, похоже, делает свое дело. Следующее можно добавить в файл ~/.bash_profile целевого пользователя. Комментарий, который добавляется, является подробным для ясности.
shopt -s histappend
PROMPT_COMMAND='history -a; ssh_ip=`echo $SSH_CLIENT|awk "{print \\\$1}"`; echo "#command above was run from PPID $PPID, IP $ssh_ip" >>~/.bash_history '