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.