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?

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ęć.


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*( )'
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.