Jak wykonać kopię zapasową historii terminala Linux

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