Terminal w systemie Linux posiada funkcję „historii”, która pozwala na archiwizowanie wszystkich wprowadzonych poleceń. Dzięki temu każda komenda jest zapisywana, co sprawia, że istotne jest, aby zachować kopię zapasową dla bezpieczeństwa.
W niniejszym przewodniku przedstawimy sposób na utworzenie kopii zapasowej historii terminala w systemie Linux oraz jej przywracanie. Otwórz swój ulubiony emulator terminala i zaczynajmy!
Gdzie znajduje się historia terminala w Linuxie?
Historia terminala w systemie Linux jest przechowywana w pliku o nazwie „.bash_history”. Plik ten można edytować i znajduje się w katalogu domowym każdego użytkownika. Oznacza to, że każdy użytkownik ma swój własny plik historii.
Nie ma specjalnych uprawnień, które by chroniły te pliki, co pozwala na przeglądanie historii innych użytkowników za pomocą prostego polecenia. Na przykład, aby zobaczyć historię poleceń użytkownika o nazwie „user”, należy wpisać:
cat /home/user/.bash_history
Aby przeglądać historię poleceń bieżącego użytkownika, wystarczy wpisać polecenie „history”.
history
Co więcej, ponieważ „.bash_history” to zwykły plik tekstowy, można go przeszukiwać jak każdy inny plik, korzystając z polecenia grep. Na przykład, aby znaleźć wystąpienia „git clone”, można użyć poniższego polecenia:
cat /home/user/.bash_history | grep 'git clone'
Podobnie działa to dla aktualnie zalogowanego użytkownika, używając polecenia „history”.
history | grep 'search term'
Kopia zapasowa historii terminala
W poprzedniej części wspomniałem, że historia terminala w systemie Linux to po prostu plik tekstowy, który zawiera wszystkie wprowadzone przez użytkownika polecenia. Oznacza to, że utworzenie kopii zapasowej jest bardzo proste.
Aby stworzyć kopię zapasową, używając polecenia cat, możemy przekierować wyjście do pliku z użyciem znaku „>”. Na przykład, aby wykonać kopię zapasową bieżącej historii, uruchom polecenie cat dla „~/.bash_history” i zapisz je w pliku o nazwie „history_backup”.
cat ~/.bash_history > history_backup
Można również użyć polecenia history w podobny sposób:
history > history_backup
Aby wykonać kopię zapasową historii terminala innego użytkownika, który nie jest zalogowany, możesz użyć poniższego polecenia. Pamiętaj, aby zmienić „nazwę użytkownika” na odpowiednią nazwę.
cat /home/username/.bash_history > history_backup
Kopia zapasowa wybranych elementów historii
Możesz chcieć wykonać kopię zapasową tylko niektórych poleceń z historii terminala. W tym celu wystarczy użyć polecenia grep w połączeniu z wyświetleniem pliku historii, aby filtrować określone słowa kluczowe.
Na przykład, aby utworzyć kopię zapasową tylko poleceń związanych z „git clone” lub „git”, można wykonać poniższe polecenia. Używając „>>” zamiast „>”, unikniesz nadpisania istniejącego pliku kopii zapasowej.
cat ~/.bash_history | grep 'git' >> history_backup
Możesz także zastosować grep do polecenia history.
history | grep 'git' >> history_backup
Aby utworzyć kopię zapasową poleceń zawierających inne słowa kluczowe, wystarczy zamienić „git” na odpowiednią frazę. Możesz powtarzać to polecenie w razie potrzeby.
Jak przywrócić kopię zapasową historii
Przywracanie kopii zapasowej historii polega na usunięciu oryginalnego pliku i wstawieniu kopii zapasowej na jego miejsce. Aby usunąć oryginalny plik historii, użyj polecenia rm w terminalu:
rm ~/.bash_history
Po usunięciu pliku historii, aby przywrócić historię, użyj polecenia mv, aby zamienić nazwę pliku kopii zapasowej na „.bash_history”.
mv history_backup ~/.bash_history
Następnie uruchom polecenie history -rw, aby ponownie załadować historię terminala.
history -rw
Teraz możesz przeglądać swoją historię poleceń za pomocą:
history
Przywracanie kopii zapasowych dla innych użytkowników
Jeśli chcesz przywrócić kopię zapasową historii innego użytkownika, rozpocznij od zalogowania się na jego konto za pomocą polecenia su.
su username
Po zalogowaniu usuń bieżący plik historii w katalogu domowym użytkownika:
rm ~/.bash_history
Następnie zmień nazwę pliku kopii zapasowej na „.bash_history” w katalogu domowym tego użytkownika.
mv /path/to/backup/file/history-backup ~/.bash_history
Aby zapisać zmiany, użyj:
history -rw
Po zakończeniu, uruchom polecenie history, aby zobaczyć przywrócone polecenia w terminalu.
newsblog.pl