Polecenia wykonywane w terminalu poprzedzonym pustymi spacjami nie są zapisywane w pliku historii poleceń. Ale czy istnieje sposób, aby uzyskać odwrotną sytuację, tj. Historia powinna rejestrować tylko te, które są poprzedzone spacją?
Możesz odwrócić domyślne ustawienia Ubuntu, ustawiając dwie zmienne (HISTIGNORE i HISTCONTROL), użyj następujących poleceń:
HISTIGNORE='!( *)'
HISTCONTROL=ignoredups
HISTCONTROL=ignoredups
zmienia zachowanie historii, aby zignorować tylko zduplikowane linie i nie ignorować linii zaczynających się od spacji. (Możesz także ustawić HISTCONTROL na pusty ciąg (z HISTCONTROL=
), jeśli chcesz zachować duplikaty, ale zwykle nie jest to pożądane.)
HISTIGNORE='!( *)'
powoduje, że historia ignoruje każdą linię, która nie zaczyna się od spacji: ( *)
pasowałaby do każdej linii zaczynającej się od spacji, ale wiodąca !
neguje dopasowanie, więc dopasowuje wszystko, co nie zaczyna się od spacji. A wszystko, co odpowiada wzorowi HISTIGNORE, zostanie zignorowane przez historię. (Ta ostatnia opcja wymaga, bash jest prowadzony z extglob
włączone, z shopt -s extglob
, ale to ustawienie domyślne na Ubuntu).
Jeśli chcesz uczynić to trwałym, nie zapomnij umieścić powyższych dwóch poleceń w swoim ~/.bashrc
.
.bashrc
... Potrzebowałem tego, aby bash nie zapisywał wszystkichcd
s,ls
s i innych codziennych poleceń, których używam; i do tych kilku poleceń, których potrzebuję w historii, mogę teraz użyć prefiksu ..HISTIGNORE='ls*:cd*'
, że historia zignoruje każdą linię zaczynającą się od,ls
lubcd
, możesz rozszerzyć tę listę o inne polecenia, po prostu umieść:
między poleceniami . Ale nie zapominaj, że funkcja przywoływania poleceń, do której można uzyskać dostęp za pomocą „klawisza strzałki w górę”, również korzysta z tej historii, więc jeśli ustawisz coś do zignorowania, nie będziesz w stanie przywołać tych ignorowanych poleceń za pomocą „ strzałka w górę".ssh-copy-id
lubssh-keygen
. WHISTIGNORE
, mam włączone „ssh\ *
” z innymi moimi ignorowane poleceń. Wydawanie znaków spacji wydaje się być obowiązkowe.„ Polecenia wykonywane w terminalu poprzedzonym pustymi spacjami nie są zapisywane w pliku historii poleceń ”
Tak, oni są.
źródło