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.