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; fipo (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"