Usuń historię terminali w systemie Linux [zamknięte]


170

Używając klawisza w górę w terminalu systemu Linux, możesz ponownie użyć poprzednich poleceń. Świetna funkcja. Jednak zacząłem logować mysql do mysql z poufnymi szczegółami w poleceniu.

Jak mogę usunąć tę historię?


Przepraszam, zupełnie zapomniałem wspomnieć, że używam basha.
— Frank Vilea

16
Ponieważ to pytanie jest zamknięte, nie mogę go dodać jako odpowiedzi. Można powiedzieć, bash nie zapisać dowolną historię konkretnej sesji z tym poleceniem:export HISTFILE=/dev/null
— Chris Eberle

1
Mogę też dodać to: nie wpisuj poufnych informacji do linii poleceń - poczekaj na podpowiedź: D
— buczenie Ptak

Odpowiedzi:


343

Możesz wyczyścić swoją historię bash w następujący sposób:

history -cw


4
Naprawdę podoba mi się ta odpowiedź - działa to natychmiast, zamiast usuwania, .bash_historyktóre wymaga ponownego uruchomienia powłoki, aby odniosła skutek.
— mikemaccana,

1
Nie działa na moim komputerze z systemem Ubuntu 14.04. Historia pojawia się wraz z nowym terminalem. Wszystko, co działało, to >~/bash_history. Muszę jednak zrestartować terminal w tym celu.
— Aniket Thakur

Działa także w systemie Mac OS X El Capitan (testowane na wersji 10.11.2), ale trzeba dodać, że następujący wiersz do ~/.bash_profile: export SHELL_SESSION_HISTORY=0, a następnie zrobić source ~/.bash_profilei do końca zamknąć i ponownie uruchomić aplikację Terminal. Jeśli chcesz zrozumieć, co robi to polecenie eksportu, zdecydowanie powinieneś sprawdzić następujący link: superuser.com/questions/950403/…
— King-Wizard

1
nie wystarczy tylko -c? Instrukcje mówią, że -c czyści listę historii przez usunięcie wszystkich wpisów. -w zapisuje bieżącą historię do pliku historii i dołącza ją do listy historii. Po prostu -c działa dobrze.
— Kahn

24

Jeśli używasz basha, historia terminala jest zapisywana w pliku o nazwie .bash_history. Usuń go, a historia zniknie.

Jednak w przypadku MySQL lepszym podejściem jest nie wprowadzanie hasła w wierszu poleceń. Jeśli po prostu określisz opcję -p, bez wartości, zostaniesz poproszony o podanie hasła i nie zostanie ono zarejestrowane.

Inną opcją, jeśli nie chcesz za każdym razem wpisywać hasła, jest zapisanie go w pliku my.cnf. Utwórz plik o nazwie ~ / .my.cnf z czymś takim:

[client]
user = <username>
password = <password>

Upewnij się, że zmieniłeś uprawnienia do pliku, aby tylko Ty mógł odczytać plik.

Oczywiście w ten sposób twoje hasło jest nadal zapisywane w pliku tekstowym w twoim katalogu domowym, tak jak było wcześniej zapisane w .bash_history.


4
+1 do określenia -p. To jest całkowicie poprawne podejście do tego problemu
— andyb

2
Właściwie w moim systemie Linux bash pamięta historię i odtwarza plik przy wylogowaniu. Musisz się zalogować, usunąć plik, zalogować się ponownie, wylogować się z pierwszej powłoki, usunąć plik, a następnie wylogować się z drugiej powłoki.
— cHao,

Dzięki za zwrócenie uwagi. Myślałem, że jestem sprytny, używając opcji -p + hasło bezpośrednio w poleceniu, ponieważ naciśnięcie strzałki w górę było o wiele szybsze, ponieważ mam bardzo długie hasło. Czas to przemyśleć ...
— Frank Vilea,

5
Nie zapomnij, aby unset HISTFILEnie zapisywać bieżącej historii.
— Ignacio Vazquez-Abrams

Zredagowałem swoją odpowiedź i dodałem rozwiązanie uniemożliwiające każdorazowe wpisywanie hasła.
— sagi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.