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ą?
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ą?
Odpowiedzi:
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
.
HISTIGNORE='ls*:cd*'
, że historia zignoruje każdą linię zaczynającą się od, ls
lub cd
, 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
lub ssh-keygen
. W HISTIGNORE
, 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ą.
.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 ..