Mac OS X .bashrc не працює


77

Я маю однорядковий .bashrcфайл у своєму домашньому каталозі:

alias countlines='find . -type f -print0 | xargs -0 cat | wc -l'

Але це не створення псевдоніму. Чому це могло бути?

Відповіді:


101

В OSX .bash_profileвикористовується замість .bashrc.

І так, .bash_profileфайл повинен розташовуватися в /Users/YourName/
(Іншими словами, ~/.bash_profile)

Наприклад, /Users/Aaron/.bash_profile


11
Це не правильна відповідь. Псевдоніми не успадковуються, тому, якщо ви їх визначите лише у .bash_profile, вони не будуть визначені в оболонках, які не входять у систему (наприклад, коли ви запускаєте bash всередині bash).
ЛК

1
Або можна використовувати bash_aliases, який має той самий ефект, що і розміщення псевдонімів у bashrc, але більш керований: ss64.com/osx/syntax-bashrc.html
Atul Ingle

4
у своєму .bash_profile я щойно написав один рядок на псевдонім (на зразок) bashrc ->source ~/.bashrc
Ерік Ходонський

86

.[bash_]profileі .bashrcможе використовуватися як в OS X, так і в Linux. Перший завантажується, коли оболонка - оболонка для входу; останній, коли його немає. Справжня різниця полягає в тому, що Linux запускає оболонку входу, коли користувач заходить у графічний сеанс, а потім, коли ви відкриваєте термінальну програму, ці оболонки є оболонками без входу; тоді як OS X не запускає оболонку за графічним входом, а коли ви запускаєте оболонку з Terminal.app, це оболонка для входу.

Якщо ви хочете, щоб ваші псевдоніми працювали як в оболонках для входу, так і без входу в систему (і зазвичай ви це робите), вам слід помістити їх у .bashrc та source .bashrc у вашому .bash_profile таким рядком:

[ -r ~/.bashrc ] && source ~/.bashrc

Це стосується будь-якої системи, що використовує bash.


15
+1 із застереженням про те, що все в PATH=$PATH:/my/private/binaries. Дивіться це для вирішення.
Гордон Девіссон

2
Правда. Оскільки експортовані змінні екземплярів успадковуються, я просто встановлюю їх .profileзамість .bashrc.
ЛК

1
@LaC чи можете ви пояснити _Змінні експортовані змінні екземпляри успадковуються, я просто встановив їх у .profile_…?
сам

1
@sam, я не знаю, звідки взявся "екземпляр". Я просто мав на увазі "експортовані змінні". На жаль, я не можу редагувати цей коментар.
LaC

2
@dinosaur: "-r" перевіряє, чи файл читається.
mhvelplund

7

Або створіть символьне посилання під назвою .bash_profile, вказане на ваш .bashrc

ln -s .bashrc .bash_profile

2

Він не є псевдонімом, тому що .bash_profileвикористовується замість .bashrcMac OS X.

Отже, у вас є два варіанти:

  • Поставте псевдонім у свій ~/.bash_profile

  • Або вихідний код свого .bashrcвід вашого .bash_profile, додавши наступний рядок в .bash_profile:

    . ~/.bashrc


1

На Mac OS X Yosemite запустіть таку команду:

vi ~/.profile

Потім додайте наступний рядок:

source ~/.bashrc

Тепер збережіть і закрийте .profile, а потім відкрийте нове вікно терміналу або просто запустіть:

source ~/.profile

Дивіться також цю відповідь . Він працював на v10.10.3.


Це трохи більше, ніж повторна відповідь з чотирьох років тому.
G-Man

Звичайно, просто простий читати і застосовувати його. Плюс невеликий внесок - оскільки інші згадані файли були недоступні в моїй ОС Yosemite.
Рікардо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.