Чому це відбувається?
MacOS і Ubuntu налаштовані по-різному поза коробкою для обробки дублікатів в історії команд bash. Ці конфігурації зберігаються в ряді так званих " точкових файлів ". Вони також мають форму ~ / .bash *, а також системний / etc / profile. Усі ці файли можуть бути налаштовані на ваш смак та розрізняти інтерактивні оболонки, вхідні оболонки, віддалені оболонки тощо. Ці файли читаються у певному порядку та виконують певні функції.
Як отримати таку саму поведінку на macOS?
Якщо ви хочете саме цього, єдиного налаштування "ігнорування точних дублікатів командних рядків", ви можете виконати щось на зразок відповіді Аллана, тобто додати один єдиний рядок, наприклад, ваш файл bash_profile. Існує не "правильний шлях", але незліченна кількість варіантів.
Якщо це не єдине налаштування для вашого bash, це може бути не найкращим варіантом:
Кілька інших приміток:
- Все, що повинно бути доступним для графічних додатків АБО до sh (або bash, що викликається sh), ОБОВ'ЯЗКОВО бути в ~ / .profile
- ~ / .bashrc нічого не повинен виводити
- Все, що повинно бути доступним лише для оболонок для входу, має містити ~ / .profile
- Переконайтесь, що ~ / .bash_login не існує.
Це означає , що, коли ситуація стає більш складною це гарна ідея , щоб розкласти в налаштуваннях на кілька файлів, кожен з яких спеціалізується і високоупорядоченние в їх зміст:
Усі exports
можуть перебувати у власному файлі для спрощеного контролю.
Створіть файл, який читається bash в корені вашого каталогу користувачів, наприклад, який називається .exports
:
# Omit duplicates and commands that begin with a space from history.
export HISTCONTROL='ignoreboth';
Це потрібно "знайти", щоб файл читався bash при інтерактивному запуску:
Пошукові файли
Якщо у вас багато конфігурацій оболонок, ви можете розбити їх на декілька підфайлів і використовувати вбудований джерело для завантаження їх із вашого .bashrc: з додаванням source ~/.exports
до нього.
Крім того, щоб переконатися, що файли існують перед завантаженням
if [ -f ~/.exports ]; then
. ~/.exports
fi
Команда . ~/.exports
буде джерелом ~/.exports
у контексті поточно запущеної оболонки.
Це особливо корисно для додавання псевдонімів, окремий файл полегшує їх повторну завантаження під час внесення змін.
zsh
і навіть далі, щоб налаштувати zsh з різними сценаріями.