2010-05-30 21:03:42 +0000 2010-05-30 21:03:42 +0000
90
90

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?

Odpowiedzi (5)

79
79
79
2010-06-01 17:26:31 +0000

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.

61
61
61
2011-12-20 23:51:49 +0000

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:

  1. Kropka przed plikiem oznacza ją jako niewidoczną dla Findera i domyślnie dla komendy ls. Aby wyświetlić listę niewidzialnych plików za pomocą komendy ls z Terminala, użyj parametru -a jako takiego: ls -a
  2. Symbol ~ 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.

4
4
4
2010-05-30 21:05:13 +0000

Musisz zrobić swój własny .bashrc. Możesz po prostu użyć edytora tekstowego, aby utworzyć plik o nazwie .bashrc (bez rozszerzenia) z żądaną zawartością i zapisać go w swoim katalogu domowym (/Users/YourUserName/).

3
3
3
2010-11-26 08:02:07 +0000

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!

1
1
1
2010-06-01 18:18:27 +0000

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"