Поиск по сайту

    Мои услуги на Kwork

Советы по настройке history команд в Bash

Каждая вводимая в терминале команда сохраняется в файле ~/.bash_history. Чтобы посмотреть историю команд – введите history.

Настройка истории команд в Bash осуществляется путем добавления переменных окружения в файл ~/.bashrc.

Чтобы изменения в ~/.bashrc вступили в силу, выполните:

source ~/.bashrc

1. Добавляем Отображение Даты и Времени в Bash History

Иногда очень полезно узнать время, когда какая-либо команда была выполнена.

Установите HISTTIMEFORMAT, чтобы сохранять время выполнения каждой команды.

Для этого добавьте следующую строку в файл ~/.bashrc:

export HISTTIMEFORMAT="%h %d %H:%M:%S "

Теперь, набрав history, Вы получите следующий вывод:

113  Jun 08 16:31:06 sudo ifconfig
114  Jun 08 16:31:10 top
115  Jun 08 16:31:19 ping disnetern.ru
116  Jun 08 16:31:22 history

2. Увеличиваем Размер Хранимой Истории

Увеличьте HISTSIZE — количество команд, которые необходимо запоминать в списке истории (стандартное значение — 500).

export HISTSIZE=5000

Увеличьте HISTFILESIZE — максимальное количество строк, содержащееся в файле истории (стандартное значение — 500).

export HISTFILESIZE=5000

3. Добавляем Команды Bash в Файл с Историей

Bash перезаписывает файл .bash_history?

Чтобы добавлять новые команды в файл с историей, а не переписывать его каждый раз, добавьте следующую строку в ~/.bashrc:

shopt -s histappend

4. Мгновенно Сохранять Историю Команд

По умолчанию, Bash записывает историю команд в .bash_history, при завершении сессии.

Если сессия внезапно оборвется Вы потеряете текущую историю команд.

Используйте переменную $PROMPT_COMMAND, чтобы сохранять команды сразу после выполнения:

Добавьте следующую строку в файл ~/.bashrc, если переменная $PROMPT_COMMAND не была задана ранее:

PROMPT_COMMAND='history -a'

Добавьте следующую строку, если переменная $PROMPT_COMMAND уже была задана:

PROMPT_COMMAND='$PROMPT_COMMAND; history -a'

5. Контролируйте Bash History

HISTCONTROL — представляет из себя список опций, разделенных двоеточиями.

Они контролируют каким образом список команд сохраняется в истории.

Опция Описание
ignorespace не сохранять строки начинающиеся с символа <пробел>
ignoredups не сохранять строки, совпадающие с последней выполненной командой
ignoreboth использовать обе опции ‘ignorespace’ и ‘ignoredups’
erasedups удалять ВСЕ дубликаты команд с истории

Пример:

export HISTCONTROL=ignorespace:erasedups

6. Игнорировать Определенные Команды

HISTIGNORE — список шаблонов через двоеточие, используемых для принятия решения о сохранении строк с командами в списке истории.

Не сохранять команды lsps и history:

export HISTIGNORE="ls:ps:history"

Не сохранять команды начинающиеся с s:

export HISTIGNORE="s*"

7. Исправление случайных ошибок

Добавьте

shopt -s cdspell

Таким образом ошибки в написании (например, ehco вместо echo) исправятся.

8. Одна Команда — Одна Запись в Истории

Сохранять все строки многострочной команды в одной записи списка истории:

shopt -s cmdhist

9. Изменить Имя Файла с Историй Команд

Используйте HISTFILE для изменения имени файла, в котором сохраняется история команд. Стандартное значение ~/.bash_history.

export HISTFILE=~/.custom_file

Полезные советы при работе с bash

1. Нажать Ctrl-R в bash, и начать набирать команду. При этом будут сразу предлагаться команды из истории, которые Вы уже вводили раннее. Намного удобнее, чем много раз нажимать клавишу “вверх”, что бы найти нужную команду.

2. Или классический поиск команды с помощью grep

history | grep "foo"

3. Команда “cd -осуществляет возврат к последней посещенной директории — бывает полезно, когда нужно перейти куда-то чтобы что-то изменить, а затем быстро вернуться назад.

4. Нажать «Esc»+”.” вызывает последний упомянутый объект.

Например, если набрать cat /root/.bashrc, а потом mcedit и нажать «Esc»+”.”, то команда будет автоматически завершена:  mcedit /root/.bashrc

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar



Яндекс.Метрика Рейтинг@Mail.ru