Как я могу настроить историю терминала Mac OS X, чтобы она действовала как linux при использовании стрелок вверх / вниз?

12

Я хотел бы, чтобы приложение Mac OS Terminal прокручивало мою историю команд так же, как оно работает в Linux, если это возможно. В настоящее время, если я нажму стрелку вверх в терминале, он будет прокручивать каждую из моих недавних команд, даже если последние 50 были одной и той же командой . В большинстве систем Linux, которые я использовал, это поведение прокручивает историю команд назад, но в большинстве случаев пропускает дубликаты команд . Возможно ли такое поведение в терминальном приложении Mac OS X, или мне нужно использовать другое терминальное приложение? Спасибо.

Nate
источник
2
Это не действие приложения Terminal, а то, как вы настроили свою оболочку - вероятно, bash см. Документацию по истории
user151019
Также проверьте iTerm2. ИМО, это лучший инструмент. iterm2.com
Harv

Ответы:

11

Марк, который прокомментировал мои вопросы выше, был прав. Это настройка bash. Если вы добавите следующее в ваш ~/.bash_profileскрипт, вы получите это поведение.

HISTCONTROL=ignoredups

Вы также можете игнорировать любые строки, начинающиеся с пробела:

HISTCONTROL=ignorespace

Или сделать оба, используя:

HISTCONTROL=ignoreboth
Nate
источник
1
Строго лучше добавьте в .bashrc и сделайте .bash_profile исходным кодом .bashrc - см. Руководство по bash
user151019
3

Предполагая, что вы используете Bash, то

HISTCONTROL=ignoreboth

или

HISTCONTROL=ignoreboth:erasedups

в одном из ваших файлов bash rc.

fd0
источник