Команды, выполняемые в терминале с префиксом (-ами), не записываются в файл истории команд. Но есть ли способ получить обратное, то есть история должна записывать только те, которые имеют префикс с пробелом?
Вы можете изменить настройки Ubuntu по умолчанию, установив две переменные (HISTIGNORE a HISTCONTROL), используя команды, как показано ниже:
HISTIGNORE='!( *)'
HISTCONTROL=ignoredups
HISTCONTROL=ignoredups
изменяет поведение истории, чтобы игнорировать только повторяющиеся строки, а не игнорировать строки, начинающиеся с пробела. (Вы также можете установить HISTCONTROL в пустую строку (с HISTCONTROL=
), если вы хотите сохранить дубликаты, но это обычно не требуется.)
HISTIGNORE='!( *)'
заставляет историю игнорировать каждую строку, которая не начинается с пробела: ( *)
соответствует каждой строке, начинающейся с пробела, но ведущая !
сводит на нет совпадение, поэтому она соответствует всему, что не начинается с пробела. И все, что соответствует шаблону HISTIGNORE, будет игнорироваться историей. (Этот последний вариант требует, чтобы bash запускался с extglob
включенным, с shopt -s extglob
, но это настройка по умолчанию в Ubuntu.)
Если вы хотите сделать это постоянным, не забудьте поместить две вышеупомянутые команды в вашу ~/.bashrc
.
.bashrc
.. мне нужно было это, чтобы bash не записывал каждуюcd
s,ls
s и другие повседневные команды, которые я использую; и для тех немногих команд, которые мне нужны в истории, теперь я могу использовать префикс ..HISTIGNORE='ls*:cd*'
, что заставит историю игнорировать каждую строку, начинающуюся сls
илиcd
, вы можете расширить этот список с помощью других команд, просто поставив:
между командами , Но не забывайте, что функция отзыва команд, доступ к которой вы можете получить с помощью «клавиши со стрелкой вверх», также использует эту историю, поэтому, если вы установите что-то для игнорирования, вы не сможете вызывать эти игнорируемые команды с помощью «». стрелка вверх".ssh-copy-id
илиssh-keygen
. ВHISTIGNORE
, я включил "ssh\ *
" с другими моими игнорируемыми командами. Выход из космического символа представляется обязательным.« Команды, выполняемые в терминале с префиксом (ами), не записываются в файл истории команд »
Да.
источник