Получить историю bash, чтобы запомнить только команды с пробелом с префиксом!

10

Команды, выполняемые в терминале с префиксным пробелом (-ами), не записываются в файл истории команд. Но есть ли способ получить обратное, то есть история должна записывать только те, которые имеют префикс пространства?

    
задан precise 20.02.2014 в 15:17
источник

2 ответа

12

Вы можете изменить настройки Ubuntu по умолчанию, установив две переменные (HISTIGNORE a HISTCONTROL), используя команды, как показано ниже:

HISTIGNORE='!( *)'
HISTCONTROL=ignoredups

HISTCONTROL=ignoredups изменяет поведение истории, чтобы игнорировать только повторяющиеся строки и не игнорировать строки, начинающиеся с пробела. (Вы также можете установить HISTCONTROL в пустую строку (с HISTCONTROL= ), если хотите сохранить дубликаты, но обычно этого не требуется.)

HISTIGNORE='!( *)' заставляет историю игнорировать каждую строку, которая не начинается с пробела: ( *) будет соответствовать каждой строке, начинающейся с пробела, но ведущий ! отрицает совпадение, поэтому он соответствует всем, что не начните с пробела. И все, что соответствует шаблону HISTIGNORE, будет проигнорировано историей. (Этот последний параметр требует, чтобы bash запускался с включенным extglob , shopt -s extglob , но это значение по умолчанию для Ubuntu.)

Если вы хотите сделать это постоянным, не забудьте добавить две вышеуказанные команды в ваш ~/.bashrc .

    
ответ дан falconer 20.02.2014 в 15:52
источник
2

" Команды, выполняемые в терминале с префиксным пробелом (-ами), не записываются в файл истории команд "

Да, они есть.

    
ответ дан MrVaykadji 20.02.2014 в 15:30