Терминал 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 — это просто аккуратно скрытый текстовый файл, содержащий все введенные пользователем команды. Что ж, поскольку это всего лишь файл, это означает, что его очень легко создать резервную копию для безопасного хранения.
Чтобы создать резервную копию, используйте команду cat. Почему? С помощью cat вы можете просмотреть весь текстовый файл прямо в терминале. Мы можем использовать эту команду в сочетании с символом «>», чтобы перенаправить вывод просмотра в файл резервной копии.
Так, например, чтобы сделать резервную копию вашей текущей истории, запустите команду cat для «~ / .bash_history» и сохраните ее в файл с меткой «history_backup».
cat ~/.bash_history > history_backup
Вы также можете запустить команду history в сочетании с «>» и сохранить ее таким образом.
history > history_backup
Наконец, можно создать резервную копию истории командной строки / терминала другого пользователя, не вошедшего в систему, выполнив приведенную ниже команду.
Примечание: не забудьте изменить «имя пользователя» на пользователя, от которого вы хотите сохранить историю.
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» в приведенных выше примерах любыми командами, резервную копию которых вы хотите создать. Не стесняйтесь повторно запускать эту команду сколько угодно раз.
Как восстановить резервную копию истории
Восстановить резервную копию истории так же просто, как удалить исходный файл и поместить резервную копию на его место. Чтобы удалить исходный файл истории, используйте команду 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
Когда закончите, запустите историю, чтобы просмотреть восстановленные команды в окне терминала.