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ę?

Frank Vilea
źródło
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

Eddie
źródło
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.

sagi
źródło
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