Gdzie znaleźć plik .bashrc na Mac OS X Snow Leopard i Lion?
Chcę zainstalować rvm na moim komputerze Snow Leopard.
Mówi on, że muszę dodać linię do mojego pliku .bashrc
(używam bash), ale gdzie jest mój plik .bashrc
?
Chcę zainstalować rvm na moim komputerze Snow Leopard.
Mówi on, że muszę dodać linię do mojego pliku .bashrc
(używam bash), ale gdzie jest mój plik .bashrc
?
Jeśli chodzi o problem z .bashrc
powyżej:
Na większości systemów, ~/.bashrc
jest używany tylko przy uruchamianiu interactive non-login shell. Jednakże, gdy uruchamiasz nową powłokę, często jest to powłoka interaktywna non-login. Ponieważ jest to powłoka login, .bashrc
jest ignorowany. Aby zachować spójność środowiska pomiędzy powłokami nieloginowymi i logującymi, musisz pozyskać .bashrc
z twojego .profile
lub twojego .bash_profile
.
Zobacz podręcznik referencyjny Basha, sekcja 6. 2 Bash Startup Files
Wywołany jako interaktywna powłoka zgłoszeniowa, lub z –login
Gdy Bash jest wywoływany jako interaktywna powłoka zgłoszeniowa, lub jako powłoka nie-interaktywna z opcją –login, najpierw odczytuje i wykonuje polecenia z pliku /etc/profile, jeśli taki plik istnieje. Po przeczytaniu tego pliku, szuka ~/.bash_profile, ~/.bash_login i ~/.profile, w tej kolejności, i czyta i wykonuje polecenia z pierwszego istniejącego i czytelnego.
Wywołany jako powłoka interaktywna nie będąca powłoką logowania
Gdy uruchamiana jest powłoka interaktywna nie będąca powłoką zgłoszeniową, Bash czyta i wykonuje polecenia z ~/. bashrc, jeśli plik ten istnieje.
Więc, zazwyczaj, twój ~/.bash_profile zawiera wiersz
if [-f ~/.bashrc]; then . ~/.bashrc; fi
po (lub przed) każdą inicjalizacją specyficzną dla logowania.
Na moim Macu (Running Leopard), nie było wiersza do źródła ~/.bashrc
. Musiałem dodać tę funkcjonalność na własną rękę.
Na niektórych systemach i innych OS, .bashrc
pochodzi z globalnego /etc/profile
lub /etc/bash_profile
, lub jest wykonywana przy użyciu plików szablonów z /etc/skel
.
Szczerze mówiąc rozróżnienie między .bashrc
i .bash_profile
nie jest dobrze rozumiane przez społeczność. Kiedy wielu programistów mówi “Dodaj to do swojego .bashrc”, tak naprawdę mają na myśli “Dodaj to do swojego .bash_profile”. Chcą, aby funkcjonalność została dodana do Twojej powłoki login (która jest .bash_profile
), a nie do Twojej powłoki non-login. W rzeczywistości, zwykle nie ma to znaczenia i umieszczenie konfiguracji w .bashrc
jest dopuszczalne.
Okazuje się więc, że na Mac OS X Snow Leopard, jak i Mac OS X Lion, załadowany plik nazywa się .profile
, a nie .bashrc
.
To, co chcesz zrobić, to stworzyć plik w ~/.profile
i nazwać go .profile (jeśli jeszcze nie istnieje).
Umieść tam wszystkie informacje, które potrzebne są do załadowania z każdą instancją basha (Dzięki, Thepurplepixel).
Parę notatek bocznych:
-a
jako takiego: ls -a
~
oznacza /Users/YourUserName
, gdzie YourUserName jest nazwą skróconą Twojej nazwy użytkownika. Edycja: Chris Page zauważa (poprawnie), że cokolwiek umieścisz w pliku .profile będzie miało zastosowanie do powłoki, której używasz (np. zhs, bash, itd.). Jeżeli chcesz, by zawartość dotyczyła tylko powłoki bash, umieść ją w pliku .bash_profile
zamiast w pliku .profile
.
Stwierdzam, że w moim systemie operacyjnym 10.6.5 ustawienia bash są w “/etc/bashrc”. Myślę, że jest to specyfikacja toplevela dla powłoki.
Jednakże, potrzebujesz konta root, aby je zmodyfikować. Lokalna specyfikacja użytkownika “~/.bashrc” powinna zacząć się od następującego fragmentu, aby odczytać i załadować ustawienia bash na poziomie systemowym:
if [-r /etc/bashrc]; then
. /etc/bashrc
fi
Normalnie dodaję aliasy na poziomie systemowym bashrc, aby wszyscy użytkownicy mieli do nich dostęp. Chyba, że nie chcą używać Twoich skrótów i aliasów.
Powodzenia!
Użyj pliku .profile do dodania wszystkiego, co dodałbyś do pliku .bashrc linuksa.
Na przykład
PATH=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/:/opt/local/bin:/opt/depot_tools/:~/bin:$PATH
alias t='/Users/<username>/.todo/todo.sh'
alias punch='python /Users/<username>/.todo/Punch.py'
alias clock='cat </dev/tcp/time.nist.gov/13'
alias sudotext="sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit"