Есть ли способ сохранить все команды bash со всех терминалов в один файл?

Есть ли способ сохранить все команды bash со всех терминалов в один файл?

Есть ли способ сохранить все команды bash со всех терминалов в один файл? По умолчанию разные терминалы имеют разную историю, и это сбивает с толку. Я бы хотел сохранить всю историю в один файл и при желании вместо этого искать эти команды? Возможно, shift+ uparrowмог бы искать в истории в центральном файле?

решение1

Во-первых, вы должны указать оболочке, что нужно добавить время и имя пользователя в историю каждого пользователя и расширить размер каждого файла истории с его значения по умолчанию в 500 строк с помощью примерно такой команды (задайте желаемое значение), введенной в командной строке оболочки, с помощью

echo 'HISTTIMEFORMAT="%F %T $USER"' >> ~/.bashrc && HISTSIZE=10000

и перезагрузите после этого, чтобы изменение активировалось. Зачем? Ну, история без даты и времени, и не идентифицирующая, кто ввел команду, может быть не очень полезной.

Затем периодически копируйте содержимое ~/.bash_history для каждого пользователя в общий файл истории и сортируйте его так, чтобы объединенная история была отсортирована по дате, времени и пользователю.

После этого удалите исходные файлы в каждом пользовательском каталоге с помощью скрипта уровня администратора, проходящего через цикл

cd /home/userx && rm ~/.bash_history && history -c

меняетсяИксчтобы выполнить эту строку для каждого пользователя.

Связанный контент