Как избежать дублирования записей в .bash_history

У вас установлен MIXX dj Player? Это иногда испортит звуковой сервер. По крайней мере, если вы установите его, он изменит вашу звуковую тему по умолчанию «ubuntu» на freedesktop.

Вы можете попробовать установить «Настройки PulseAudio» из программного центра Ubuntu. Существуют некоторые параметры конфигурации, связанные с сетью.

1
задан 5 October 2012 в 22:02

5 ответов

Вставьте это в свой ~/.bashrc:

export HISTCONTROL=ignoredups

Вместо этого вы можете использовать ignoreboth.

Я предпочитаю ignoredups самостоятельно, поскольку я нахожу поведение по умолчанию игнорирования команд с пробелами в фронт довольно раздражает, когда я копирую команду с веб-сайта, и она не сохраняется, потому что я случайно скопировал ее в пространстве ... Но каждому свое.

18
ответ дан 26 May 2018 в 00:08
  • 1
    Существуют еще дубликаты. Какая может быть проблема? imgur.com/fXeLQ.png – karthick87 10 December 2010 в 22:19
  • 2
    @ karthick87 цитируется из другого ответа: Значение ignoredups заставляет строки, соответствующие предыдущей записи истории, не сохраняться . Он удаляет только последовательные одинаковые строки. – A.L 4 February 2015 в 13:28

Помещая это в ~/.bashrc, будет применяться решение @ alvin для разных сеансов, как wlell

HISTCONTROL=ignoredups:erasedups
shopt -s histappend
PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"

Источник: Linux: история Bash: настройки «ignoredups» и «erasedups» конфликтуют с общей историей на всех сеансах

7
ответ дан 26 May 2018 в 00:08
  • 1
    Почему его использование export HISTCONTROL и твой нет? Какая разница? Он работает для меня без экспорта, мне просто интересно – felwithe 7 April 2018 в 21:30
  • 2
    Хороший вопрос! Я также хотел бы узнать ответ. В общем случае export делает переменную доступной для подпроцессов. stackoverflow.com/q/1158091/552621 В случае HISTCONTROL, PROMPT_COMMAND и т. д. эти переменные используются самой оболочкой, поэтому, возможно, их экспорт (для дочерних процессов) не требуется , – Nour Chawich 9 April 2018 в 18:23
[F1]
4
ответ дан 26 May 2018 в 00:08

Добавьте к вашему ~/.bashrc следующее:

export HISTCONTROL=ignoredups

. Для этого вы можете использовать эту команду:

nano ~/.bashrc
3
ответ дан 26 May 2018 в 00:08

Для уникальной записи каждой новой команды сложно. Сначала вам нужно добавить в «~ / .profile» или подобное:

HISTCONTROL=erasedups
PROMPT_COMMAND='history -a'

Затем вам нужно добавить в «~ / .bash_logout»:

history -a
history -w
0
ответ дан 26 May 2018 в 00:08

Другие вопросы по тегам:

Похожие вопросы: