Как сделать резервную копию истории терминала Linux

Терминал Linux имеет функцию «истории». Благодаря этой функции каждая вводимая вами командная операция будет сохранена на будущее. Поскольку все команды вашего терминала сохраняются в «истории», важно сохранить их резервную копию для сохранности.

В этом руководстве мы покажем вам, как создать резервную копию истории терминала Linux, а также как восстановить резервные копии. Итак, откройте свой любимый эмулятор терминала Linux и следуйте за ним!

Где хранится история терминала Linux?

Терминал Linux хранит свою историю в файле. Этот файл называется «.bash_history». Кто угодно может его редактировать, и он хранится в домашнем каталоге. Поскольку файл истории терминала для Linux хранится в пользовательском каталоге, каждый пользователь в системе имеет файл.

Специальные разрешения не защищают эти файлы истории, и любой пользователь в системе может просмотреть историю другого с помощью простой команды. Так, например, если я хочу взглянуть на историю терминала / командной строки имени пользователя «user» в моей системе Linux, я бы сделал:

cat /home/user/.bash_history

Пользователи также могут просматривать историю текущего пользователя, под которым они вошли в терминальную оболочку Linux, просто выполнив команду «history».

history

Лучше всего то, что «история» — это просто файл, его можно искать, как в обычном текстовом файле, с помощью функции grep. Так, например, чтобы найти экземпляры «git clone» в имени пользователя с помощью приведенной ниже команды.

cat /home/user/.bash_history | grep 'git clone'

Он также работает как текущий вошедший в систему пользователь с помощью команды «history».

history | grep 'search term'

Сохранить историю терминала в резервную копию

В предыдущем разделе этого руководства я говорил о том, что «история» для терминала Linux — это просто аккуратно скрытый текстовый файл, содержащий все введенные пользователем команды. Что ж, поскольку это всего лишь файл, это означает, что его очень легко создать резервную копию для безопасного хранения.

  Как использовать команду whois в Linux

Чтобы создать резервную копию, используйте команду cat. Почему? С помощью cat вы можете просмотреть весь текстовый файл прямо в терминале. Мы можем использовать эту команду в сочетании с символом «>», чтобы перенаправить вывод просмотра в файл резервной копии.

Так, например, чтобы сделать резервную копию вашей текущей истории, запустите команду cat для «~ / .bash_history» и сохраните ее в файл с меткой «history_backup».

cat ~/.bash_history > history_backup

Вы также можете запустить команду history в сочетании с «>» и сохранить ее таким образом.

history > history_backup

Наконец, можно создать резервную копию истории командной строки / терминала другого пользователя, не вошедшего в систему, выполнив приведенную ниже команду.

  Как установить настольное приложение WordPress в Linux

Примечание: не забудьте изменить «имя пользователя» на пользователя, от которого вы хотите сохранить историю.

cat /home/username/.bash_history > history_backup

Резервное копирование только определенных элементов истории

Возможно, вы захотите создать резервную копию определенных команд в истории вашего терминала Linux. Для этого можно просмотреть файл истории и объединить его с командой grep, которая будет фильтровать определенные ключевые слова.

Например, чтобы выполнить резервное копирование только тех команд в истории вашего терминала Linux, которые содержат команды git clone или git, вы можете выполнить операцию ниже.

Примечание: в этих примерах мы используем «>>», а не «>». Причина для «>>» заключается в том, что он не будет перезаписывать содержимое резервной копии файла истории и может быть повторно запущен несколько раз для добавления в резервную копию.

cat ~/.bash_history | grep 'git' >> history_backup

Или же

cat /home/username/.bash_history | grep 'git' >> history_backup

Фильтрация с помощью grep также может быть применена к команде history, например.

history | grep 'git' >> history_backup

Чтобы создать резервную копию определенных ключевых слов из файла истории, замените «git» в приведенных выше примерах любыми командами, резервную копию которых вы хотите создать. Не стесняйтесь повторно запускать эту команду сколько угодно раз.

  Как сделать SSH-туннель в Linux

Как восстановить резервную копию истории

Восстановить резервную копию истории так же просто, как удалить исходный файл и поместить резервную копию на его место. Чтобы удалить исходный файл истории, используйте команду rm в окне терминала, чтобы удалить «.bash_history».

rm ~/.bash_history

После удаления исходного файла истории из домашней папки пользователя, в котором вы хотите восстановить историю, используйте команду mv, чтобы переименовать «history_backup» в «.bash_history».

mv history_backup ~/.bash_history

Теперь, когда новый файл истории на месте, запустите команду history -rw, чтобы перезагрузить функцию истории терминала.

history -rw

После этого вы сможете просмотреть историю своего терминала с помощью:

history

Восстановить резервные копии для других пользователей

Необходимо восстановить резервные копии истории от других пользователей системы? Для этого начните с входа в систему своего пользователя с помощью команды su.

su username

После входа в систему для пользователя удалите текущий файл истории, который находится в домашнем каталоге пользователя (~).

rm ~/.bash_history

Оттуда переименуйте файл резервной копии истории в новый файл «.bash_history» в каталоге пользователя.

mv /path/to/backup/file/history-backup ~/.bash_history

Запишите изменения с помощью:

history -rw

Когда закончите, запустите историю, чтобы просмотреть восстановленные команды в окне терминала.