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=ignoredupszmienia 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 extglobwłą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, lslub 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-idlub 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ł wszystkichcds,lss i innych codziennych poleceń, których używam; i do tych kilku poleceń, których potrzebuję w historii, mogę teraz użyć prefiksu ..