Czy możesz podzielić się mądrością na temat korzystania z HISTIGNORE w bash?

26

Czytałem strony podręcznika dotyczące uderzenia w samolocie i natknąłem się na zmienną HISTIGNORE. Aby to przetestować, natychmiast zmodyfikowałem swój .profile, aby zdefiniować tę zmienną:

eksport HISTIGNORE = ls

Przetestowałem to i to świetnie! Wyklucza proste polecenia „ls” z mojej historii, nie wykluczając ciekawszych poleceń z długimi ścieżkami, ale po zebraniu dużej ilości mądrości z SU jestem chętny, aby dowiedzieć się, jakie inne polecenia superużytkowników mogą polecić lub wyciągnąć inne wnioski.

Co możesz udostępnić na temat używania zmiennej HISTIGNORE w bash?

szałwia
źródło

Odpowiedzi:

29

I ignorować lsbez poleceń bg, fg, exit, pwd, clear,mount i umount:

Jeśli umieścisz to w swoim HISTIGNOREciągu, możesz pominąć wszystko, co chcesz, dodając spację na początku polecenia:

"[ \t]*" 

To jest moje HISTIGNORE:

HISTIGNORE="&:ls:[bf]g:exit:pwd:clear:mount:umount:[ \t]*"

Wykluczyłem niektóre inne rzeczy, które tam mam, które są powtarzającymi się poleceniami unikalnymi dla mojego serwera. Wszystko, co robisz, jest proste, dobrze jest wykluczyć.

Mam inne rzeczy, o których zapomniałem dodać, ale jestem daleko od mojego Linux-a, więc tracę pamięć.

Stanley Williams
źródło
6
Jeśli wartość HISTCONTROLobejmuje „ignorowanie” lub „ignorowanie obu”, polecenia rozpoczynające się spacją są pomijane w historii. Jeśli wartość obejmuje „ignore dups” lub „ignoreboth”, jest to to samo co „&” w HISTIGNORE.
Wstrzymano do odwołania.
Dla mnie również okazało się przydatne, aby histignore samego historypolecenia.
con-f-use
2
używając "[ \t]*"komendy ignoruje zaczynając od spacji lub t. ChceszHISTIGNORE=$'&:ls:[bf]g:exit:pwd:clear:mount:umount:[ \t]*'
Gregory Pakosz
14

Nie zapisuj trywialnych poleceń jedno i dwu znakowych na liście historii:

HISTIGNORE='?:??'

Jeśli extglobopcja jest włączona, możesz także używać rozszerzonych wzorców, np

HISTIGNORE='a*( )'
Eugene Yarmash
źródło