Эта же команда снова и снова указана в моей истории. Как я могу избежать этого? Я знаю, что это возможно через HISTCONTROL
, но я не нашел правильный путь.
Эта же команда снова и снова указана в моей истории. Как я могу избежать этого? Я знаю, что это возможно через HISTCONTROL
, но я не нашел правильный путь.
На странице bash
man:
HISTCONTROL р>
Список значений, определяющих порядок сохранения команд, разделенных двоеточиями список истории. Если в список значений входят
ignorespace
, строки которые начинаются с символа пробела, не сохраняются в списке истории. Значениеignoredups
вызывает строки, соответствующие предыдущей записи истории, не сохраняются. Значениеignoreboth
является сокращением дляignorespace
и %код%. Значениеignoredups
вызывает все предыдущие строки, соответствующие текущую строку, которая должна быть удалена из списка истории до того, как эта строка будет сохранены. Любое значение, не указанное в приведенном выше списке, игнорируется. Если HISTCONTROL unset или не включает действительное значение, все строки, считанные оболочкой анализатор сохраняется в списке истории с учетом значения HISTIGNORE. Вторая и последующая строки многострочной команды соединения не проверены и добавлены в историю независимо от значения HISTCONTROL.
Итак, поставьте следующую строку в свой файл erasedups
:
~/.bashrc
р>
Вставьте это в свой ~/.bashrc
:
export HISTCONTROL=ignoredups
Вместо этого вы можете использовать ignoreboth
. Это сокращает как ignorespaces
(команды, начинающиеся с пробелов), так и ignoredups
(дубликаты).
Я предпочитаю ignoredups
самостоятельно, поскольку я считаю поведение по умолчанию игнорирования команд с пробелами на фронте довольно раздражающим, когда я копирую команду с веб-сайта, и она не сохраняется, потому что я случайно скопировал ее в пространстве .... Но каждому свое.
Помещая это в ~/.bashrc
, будет применяться решение @ alvin на разных сеансах, как wlell
HISTCONTROL=ignoredups:erasedups
shopt -s histappend
PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"
Источник: Linux: история Bash: «проигнорированные» и «удаленные» настройки конфликтуют с общей историей в сеансах р>
export HISTCONTROL=erasedups
Добавьте в свой ~/.bashrc
следующее:
export HISTCONTROL=ignoredups
Для этого вы можете использовать эту команду:
nano ~/.bashrc
Чтобы однозначно записать каждую новую команду, сложно. Сначала вам нужно добавить "~ / .profile" или аналогичный:
HISTCONTROL=erasedups
PROMPT_COMMAND='history -a'
Затем вам нужно добавить в «~ / .bash_logout»:
history -a
history -w