Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Terminal nie zapisuje historii sesji

Termin Definicja
Terminal nie zapisuje historii sesji

Terminal niezapisujący historii sesji wskazuje na wyłączoną opcję zapisu historii poleceń w ustawieniach powłoki.

Jak działa zapisywanie historii poleceń

Terminal nie zapisuje historii sesji wtedy, gdy powłoka przechowuje polecenia wyłącznie w pamięci procesu albo ma wyłączony mechanizm utrwalania historii na dysku. Sama aplikacja terminala, czyli okno uruchomione w systemie graficznym, zwykle nie decyduje o tym, czy polecenia zostaną zapisane. Odpowiada za to powłoka działająca wewnątrz tego okna, na przykład Bash, Zsh albo PowerShell. Historia może być widoczna podczas bieżącej sesji, a mimo to zniknąć po jej zamknięciu, jeśli nie wykonano zapisu do właściwego pliku.

Typowy mechanizm historii składa się z kilku etapów. Powłoka rozpoznaje wykonane polecenie, dodaje je do bufora bieżącej sesji, a następnie — zależnie od konfiguracji — zapisuje je do pliku historii. Znaczenie mają między innymi zmienne środowiskowe, ustawienia uruchomieniowe powłoki, uprawnienia do katalogu domowego oraz sposób zamknięcia procesu. Niektóre powłoki zapisują dane dopiero przy zakończeniu sesji, dlatego awaria, wymuszone zamknięcie terminala lub przerwanie procesu może pozostawić historię tylko w pamięci.

Plik historii, konfiguracja i uprawnienia

W systemach uniksowych Bash najczęściej korzysta z pliku wskazywanego przez zmienną HISTFILE, a w wielu instalacjach domyślną lokalizacją jest plik ~/.bash_history. Zsh używa ustawienia HISTFILE, lecz jego wartość może wskazywać inny plik, często ~/.zsh_history. W PowerShell historia trwała jest obsługiwana przez moduł PSReadLine i może być przechowywana w pliku zależnym od systemu oraz profilu użytkownika. Nie należy zakładać, że każda powłoka korzysta z tej samej ścieżki ani z identycznych zmiennych.

Brak pliku historii nie zawsze oznacza błąd. Może on jeszcze nie istnieć, jeżeli żadna sesja nie została prawidłowo zakończona albo konfiguracja zapisuje dane w innym miejscu. Trzeba również sprawdzić, czy zmienna wskazująca plik nie jest pusta, czy plik nie został przekierowany do urządzenia specjalnego oraz czy użytkownik ma prawo zapisu do pliku i jego katalogu nadrzędnego. W systemie Linux pomocne jest porównanie wyniku polecenia echo "$HISTFILE" z rzeczywistą zawartością katalogu domowego. W Bash można też sprawdzić bieżący bufor poleceniem history, ale jego wynik nie dowodzi jeszcze, że dane zostaną zachowane po zamknięciu sesji.

Rozróżnienie historii bieżącej i trwałej

Ważnym etapem rozpoznania jest ustalenie, czy problem dotyczy tylko poprzednich sesji, czy również bieżącego bufora. Jeżeli strzałka w górę pokazuje wcześniej wpisane polecenia podczas pracy, powłoka prawdopodobnie gromadzi historię w pamięci. Przyczyną może być wtedy nieudany zapis końcowy, nieprawidłowa ścieżka pliku, brak uprawnień albo uruchamianie kolejnych sesji z konfiguracją, która czyści historię przy starcie lub zamknięciu.

Jeżeli historia nie pojawia się nawet podczas bieżącej sesji, należy sprawdzić, czy mechanizm nie został wyłączony przez konfigurację powłoki lub profil użytkownika. W Bash znaczenie mogą mieć ustawienia historii oraz polecenia uruchamiane z pliku profilu, takiego jak ~/.bashrc. W Zsh konfiguracja jest zwykle ładowana z plików profilu Zsh, a zapis może zależeć od ustawień takich jak HIST_SAVE_BY_COPY lub trybów zapisu historii. W PowerShell trzeba odróżnić historię poleceń prowadzoną przez PSReadLine od starszego mechanizmu historii dostępnego w samym środowisku. Dodatkowo część poleceń może nie być zapisywana zgodnie z regułami ignorowania, na przykład gdy konfiguracja pomija powtórzenia lub wpisy zaczynające się od określonego znaku.

Postępowanie serwisowe przy utracie historii terminala

Bezpieczna diagnostyka zaczyna się od ustalenia systemu operacyjnego, używanej powłoki i sposobu uruchamiania terminala. Następnie sprawdza się aktywną konfigurację, wartość ścieżki pliku historii, istnienie pliku oraz możliwość jego odczytu i zapisu. Warto wykonać kontrolne polecenie, zamknąć sesję w zwykły sposób, otworzyć nowe okno i sprawdzić, czy wpis powrócił. Jeżeli plik istnieje, ale nie zmienia daty modyfikacji, trzeba przeanalizować konfigurację zapisu oraz komunikaty powłoki. Jeżeli plik jest nadpisywany przy każdym uruchomieniu, przyczyną może być błędny wpis w profilu albo konflikt kilku konfiguracji.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnostyką problemów z konfiguracją powłoki, profilem użytkownika oraz działaniem terminala. W praktyce należy odróżnić brak historii od usunięcia pliku przez narzędzie czyszczące, zmianę konta użytkownika lub uruchomienie terminala w innym środowisku. Przed modyfikacją plików konfiguracyjnych warto wykonać ich kopię i zapisać aktualne wartości ustawień. Samo przywrócenie pliku historii nie odtworzy poleceń, które nigdy nie zostały zapisane, dlatego najpierw trzeba ustalić, czy dane są jeszcze dostępne w bieżącej sesji, kopii zapasowej albo innym profilu.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę