CentOS6.7
Нахожусь под рутом (su) Набираю в командной строке history -c . История команд исчезает. Потом я случайно набрал su и вся предыдушая история команд вновь появилась
shell-ы между собой историей не обмениваются. Каждый новый интерактивный sh загружает при старте историю из файла $HOME/.bash_history (который в случае su или sudo может ещё и в другом месте оказаться или - что ещё хуже - может быть сохранён по завершении с чужими правами), держит её в памяти и сохраняет в файл по завершении. В этом механизме надёжно только хранение в памяти. Что, кем и когда будет сохранено - это не слишком предсказуемо.
Я обнулил .bash_history и этот эффект исчез. А до этого при вводе su вынимались оттуда какие-то несколько последних строк истории, потому что вся история была огромная
HISTSIZE
The number of commands to remember in the command history (see
HISTORY below). If the value is 0, commands are not saved in
the history list. Numeric values less than zero result in every
command being saved on the history list (there is no limit).
The shell sets the default value to 500 after reading any
startup files.
Еще нужно понимать, чем отличается $ su от $ su -:
(su(1)) писал(а):...
It is
recommended to always use the --login option (instead of its shortcut
-) to avoid side effects caused by mixing environments
...
-, -l, --login
Start the shell as a login shell with an environment similar
to a real login:
o clears all the environment variables except TERM
o initializes the environment variables HOME, SHELL,
USER, LOGNAME, and PATH
o changes to the target user's home directory
o sets argv[0] of the shell to '-' in order to make
the shell a login shell
Еще нужно понимать, чем отличается $ su от $ su -:
(su(1)) писал(а):...
It is
recommended to always use the --login option (instead of its shortcut
-) to avoid side effects caused by mixing environments
...
-, -l, --login
Start the shell as a login shell with an environment similar
to a real login:
o clears all the environment variables except TERM
o initializes the environment variables HOME, SHELL,
USER, LOGNAME, and PATH
o changes to the target user's home directory
o sets argv[0] of the shell to '-' in order to make
the shell a login shell
Тогда понятно, я заходил на сервер как юзер по ssh, поскольку по ssh вход root запрещен, набирал su и удалял историю рута, а надо было наверное удалять историю пользователя, под именем которого я входил по ssh