Jak wykonać kopię zapasową historii terminala Linux

Terminal Linux ma funkcję „historii”. Dzięki tej funkcji każda wprowadzona operacja polecenia zostanie zarchiwizowana na później. Ponieważ wszystkie polecenia terminala są zapisywane w „historii”, ważne jest, aby zachować ich kopię zapasową w celu bezpiecznego przechowywania.

W tym przewodniku pokażemy, jak wykonać kopię zapasową historii terminala systemu Linux i jak również przywrócić kopie zapasowe. Więc otwórz swój ulubiony emulator terminala Linux i podążaj za nim!

Gdzie jest przechowywana historia terminala Linux?

Terminal Linux przechowuje swoją historię w pliku. Ten plik nosi nazwę „.bash_history”. Każdy może go edytować i jest przechowywany w katalogu domowym. Ponieważ plik historii terminala dla systemu Linux jest przechowywany w katalogu użytkownika, każdy użytkownik w systemie ma plik.

Specjalne uprawnienia nie chronią tych plików historii, a każdy użytkownik systemu może przejrzeć historię innego użytkownika za pomocą prostego polecenia. Na przykład, jeśli chcę spojrzeć na historię terminala / wiersza poleceń nazwy użytkownika „user” w moim systemie Linux, zrobiłbym:

cat /home/user/.bash_history

Użytkownicy mogą również przeglądać historię bieżącego użytkownika, do którego są zalogowani, w powłoce terminala systemu Linux, po prostu wykonując polecenie „history”.

history

A co najlepsze, ponieważ „historia” jest tylko plikiem, można ją przeszukiwać jak zwykły plik tekstowy za pomocą funkcji grep. Na przykład, aby znaleźć wystąpienia „git clone” w nazwie użytkownika za pomocą poniższego polecenia.

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

Działa również jako aktualnie zalogowany użytkownik za pomocą polecenia „historia”.

history | grep 'search term'

Zapisz historię terminala w kopii zapasowej

W poprzedniej części tego przewodnika mówiłem o tym, że „historia” terminala linuksowego jest po prostu starannie ukrytym plikiem tekstowym zawierającym wszystkie polecenia wprowadzone przez użytkownika. Cóż, ponieważ jest to tylko plik, oznacza to, że tworzenie kopii zapasowych w celu przechowywania jest bardzo łatwe.

Aby utworzyć kopię zapasową, użyj polecenia cat. Dlaczego? Dzięki cat możesz przeglądać cały plik tekstowy bezpośrednio w terminalu. Możemy użyć tego polecenia w połączeniu z symbolem „>”, aby przekierować wyświetlanie danych wyjściowych do pliku kopii zapasowej.

Na przykład, aby wykonać kopię zapasową bieżącej historii, uruchom polecenie cat w odniesieniu do „~ / .bash_history” i zapisz je w pliku z etykietą „history_backup”.

cat ~/.bash_history > history_backup

Możesz także uruchomić polecenie historii w połączeniu z „>” i zapisać je w ten sposób.

history > history_backup

Wreszcie, można wykonać kopię zapasową historii wiersza poleceń / terminala innego użytkownika, który nie jest zalogowany, uruchamiając poniższe polecenie.

Uwaga: pamiętaj, aby zmienić „nazwę użytkownika” na użytkownika, od którego chcesz zapisywać historię.

cat /home/username/.bash_history > history_backup

Tworzenie kopii zapasowych tylko niektórych elementów historii

Możesz chcieć wykonać kopię zapasową tylko określonych poleceń w historii terminala Linux. Sposobem na to jest wyświetlenie pliku historii i połączenie go z poleceniem grep, które będzie filtrować określone słowa kluczowe.

Na przykład, aby wykonać kopię zapasową tylko poleceń w historii terminala systemu Linux, które zawierają polecenia git clone lub git, możesz uruchomić poniższą operację.

Uwaga: w tych przykładach używamy „>>” zamiast „>”. Powodem „>>” jest to, że nie nadpisze zawartości kopii zapasowej pliku historii i może być wielokrotnie uruchamiane ponownie w celu dodania do kopii zapasowej.

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

Lub

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

Filtrowanie za pomocą grep można również zastosować do polecenia historii, w ten sposób.

history | grep 'git' >> history_backup

Aby utworzyć kopię zapasową niektórych słów kluczowych z pliku historii, zamień „git” w powyższych przykładach na dowolne polecenia, których kopię zapasową chcesz utworzyć. W razie potrzeby możesz ponownie uruchomić to polecenie.

Jak przywrócić kopię zapasową historii

Przywrócenie kopii zapasowej historii jest tak proste, jak usunięcie oryginalnego pliku i umieszczenie kopii zapasowej w jego miejscu. Aby usunąć oryginalny plik historii, użyj polecenia rm w oknie terminala, aby usunąć „.bash_history”.

rm ~/.bash_history

Po usunięciu oryginalnego pliku historii z folderu domowego użytkownika, w którym chcesz przywrócić historię, użyj polecenia mv, aby zmienić nazwę „history_backup” na „.bash_history”.

mv history_backup ~/.bash_history

Teraz, gdy nowy plik historii jest na swoim miejscu, uruchom polecenie history -rw, aby ponownie załadować funkcję historii terminala.

history -rw

Będziesz wtedy mógł zobaczyć historię terminala za pomocą:

history

Przywróć kopie zapasowe dla innych użytkowników

Chcesz przywrócić kopie zapasowe historii od innych użytkowników w systemie? Aby to zrobić, zacznij od zalogowania się do użytkownika za pomocą polecenia su.

su username

Po zalogowaniu się do użytkownika usuń bieżący plik historii znajdujący się w katalogu domowym użytkownika (~).

rm ~/.bash_history

Następnie zmień nazwę pliku kopii zapasowej historii na nowy plik „.bash_history” w katalogu użytkownika.

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

Zapisz zmiany za pomocą:

history -rw

Po zakończeniu uruchom historię, aby wyświetlić przywrócone polecenia w oknie terminala.