Zauważam, że po otwarciu .bash_history
, że zawiera ona tylko wpisy z poprzedniej sesji, wydaje się, że bieżąca sesja jest dołączana tylko przy wyjściu. Czy istnieje sposób, aby zapobiec zapisaniu bieżącej sesji? Nawet awaria bash
jest opcją, jeśli ktoś wie, jak to zrobić. Zauważyłem, że mogę kill -9
proces, ale jeśli jest lepszy sposób, chciałbym wiedzieć.Nie zapisuj bieżącej sesji bash do historii
Odpowiedz
Być może bardziej elegancki niż upaść bash byłoby użyć komendy history -c
wyczyścić historię bieżącej sesji. Wtedy nie ma nic do zapisania (nawet wyciera się z historii).
To również nukeuje zawartość pliku histfile. –
To nie dla mnie. Może to się zmieniło w pewnym momencie? Używam bash 4.2. – FatalError
tak, to nukeuje historię dla 3.2 i nie dla 4.2 –
rozbroić $HISTFILE
zmienna
$ unset HISTFILE
Jeśli HISTFILE jest wyłączony, lub jeśli plik jest niezapisywalny historia, historia nie jest zapisywana.
http://www.faqs.org/docs/bashman/bashref_106.html
Dzięki, jest to dobre dla wersji Bash, które nuke całej historii na-c. – dotancohen
nie działa dla mnie – RSFalcon7
Co to jest korzyść w porównaniu z 'historia -r', ponieważ z tym stracisz wszystko, co zrobiłeś od czasu zalogowania. Ale z tym stracisz to i wszystko, czym jesteś _going_ do zrobienia w sesji. – Pylinux
To powinno zrobić:
HISTFILE=
rozbroić HISTFILE.
Dziękuję, to działa i wykorzystam je dla starszych Bashów na niektórych przestarzałych serwerach. – dotancohen
nie działa dla mnie – RSFalcon7
Można też spróbować: rozbrojony HISTFILE pewnością wystarcza jeśli nie chcesz nic z tej sesji się w historii. W przeciwnym razie zobacz mój komentarz powyżej o HISTCONTROL. – th3penguinwhisperer
Istnieje inna opcja, podobna do history -c
, ale to nie powoduje wyczyszczenia niczego wcześniejszego niż bieżąca sesja.
Jest history -r
, która ładuje się dzieje z HISTFILE
, jak gdyby po prostu zalogowany.
Nie wiem, czy to działa, czy jest dostępny w każdej wersji bash poprzedniego do 4.3.11, ale choć byłoby użyteczne włączenie go do listy.
Oto przykład pokazujący różnicę między tym poleceniem i jeden -c
:
[email protected]:~$ # I Just logged in
[email protected]:~$ history | tail -n6 # this shows commands from the previous session, which ends at item 4682 as well as from the current one
4679 2014-08-23 17:15:29 # Previous session
4680 2014-08-23 17:15:33 # Still the previous session
4681 2014-08-23 17:15:37 # note the datetime
4682 2014-08-23 17:15:44 exit
4683 2014-08-23 17:17:25 # I Just logged in
4684 2014-08-23 17:19:54 history | tail -n6 # this shows the last command, and the ones from the previous session
[email protected]:~$ # This is a secret command, so I need to remove the traces of this session
[email protected]:~$ history -r
[email protected]:~$ history | tail -n5 # Note that I went back to item 4682, and there are no traces of history -r command
6242 2014-08-23 17:15:29 # Previous session
6243 2014-08-23 17:15:33 # Still the previous session
6244 2014-08-23 17:15:37 # note the datetime
6245 2014-08-23 17:15:44 exit
6246 2014-08-23 17:22:26 history | tail -n5 # Note that I went back to item 4682, and there are no traces of history -r command
[email protected]:~$ history -C# instead if I issue history -c
[email protected]:~$ history # everything disappears
5248 2014-08-23 17:23:13 history # everything disappears
[email protected]:~$
W bashu 4.3.39, 'history -r' Dołącza zawartość pliku historii do bieżącej listy historii. Nie mogę powiedzieć, czy to właśnie robił, kiedy opublikowałeś swoją odpowiedź ... Liczby historii przeskakują dużo między twoimi poleceniami, ale nie podwajaj ich. – user1902689
Jesteś pewien, że dołącza je? W bashu 4.3.11 liczby przeskakują do przodu, ponieważ licznik nie jest resetowany, ale w rzeczywistości nie dołącza zawartości do oryginalnych. Rzeczywiście, jeśli się wylogujesz i zalogujesz, numery powrócą do pierwotnego stanu. –
następujące prace dla mnie.
export HISTFILE=/dev/null
Należy pamiętać, że ma przed sobą spację. Większość nowoczesnych dystrybucji nie dodawałaby poleceń wprowadzonych po spacji do bashowania historii. To uniemożliwi pojawienie się tej linii w twojej historii.
Wiem, że to stary wątek. Po prostu chciał dodać to do wykonania:
nie Jeśli chcesz tylko konkretne polecenia, aby być zapisanym sprawdzenia czy zmienna HISTCONTROL jest ustawiona: HISTCONTROL = ignoreboth lub HISTCONTROL = ignorespace
Każde polecenie, które zaczyna się od natarcia przestrzeń nie zostanie umieszczona w historii.
Tylko moje 2 centy.
Bardzo, dziękuję pingwinku! – dotancohen
To miło! –
- 1. Zapisuj wyjątki do pliku
- 2. Uzyskaj cały proces bieżącej aktywnej sesji
- 3. IsPersistent nie działa - plik cookie ważny tylko dla bieżącej sesji
- 4. Brak historii podczas używania bash w emacs?
- 5. Emulator Androida - domyślnie nie zapisuj stanu
- 6. Nie można użyć skryptu bash do usunięcia plików z historii git
- 7. Bash: Uzyskiwanie PID z demonizowanej sesji screenowej
- 8. Automatycznie zapisuj architekturę serwera
- 9. łatwiej pojedyncze polecenie, aby szukać w historii bash
- 10. Programowo programowo zapisuj tekst do pliku audio.
- 11. Python LDAP zapisuj wpis do Active Directory
- 12. Automatycznie zapisuj w Powershell
- 13. Dlaczego niektóre wiersze w historii Bash stają się "*"?
- 14. Nawigowanie do najwcześniejszego/najnowszego polecenia w historii, kiedy jesteś w środku historii
- 15. Zwiększenie długości historii IPythona
- 16. tmux: dlaczego te dwie linie powodują ".tmux.conf: 2: nie można ustanowić bieżącej sesji" podczas uruchamiania?
- 17. Mają przelotkę zaznacz wszystkie błędnie napisane słowa, nawet te, które nie zostały napisane podczas bieżącej sesji
- 18. dodaj dzień do bieżącej daty
- 19. SBCL REPL użyj klawiszy strzałek do pokazania historii
- 20. iPhone UIWebView loadHtmlString nie został dodany do historii
- 21. Nie można wysyłać poleceń do sesji TMUX z PHP
- 22. Skrypt Bash: zapisuj strumień z portu szeregowego (/ dev/ttyUSB0) do pliku, aż pojawi się określone wejście (np. Eof).
- 23. Zapisuj do pliku z wielu wątków asynchronicznie C#
- 24. Jak wyszukiwać w historii poleceń mysql
- 25. Zapisuj dane posta do pliku za pomocą PHP
- 26. Interfejs API historii HTML5 na Chrome iOS
- 27. Ruby on Rails nie wybierzesz zalegających do wartości bieżącej
- 28. Uzyskaj dostęp do historii rozmów Google Talk
- 29. Podejście do sesji memcached
- 30. Dos Pakiety: zapisuj do plików bez wiersza kończącego się
Hakowskim sposobem na osiągnięcie tego celu jest użycie 'kill -9 $$'. Wysyłając terminal SIGKILL, nie ma szansy na zapisanie do pliku historii. – jordanm