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

Wo finde ich die .bashrc-Datei unter Mac OS X Snow Leopard und Lion?

Ich möchte rvm auf meinem Snow Leopard-Rechner installieren.

Hier steht, dass ich eine Zeile zu meiner .bashrc-Datei hinzufügen muss (ich verwende die bash), aber wo ist meine .bashrc-Datei?

Antworten (5)

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

Zum Problem mit .bashrc oben:

Auf den meisten Systemen wird ~/.bashrc nur beim Start einer interaktiven nicht eingeloggten Shell verwendet. Wenn Sie jedoch eine neue Shell starten, ist es oft eine interaktive Login-Shell. Da es sich um eine Anmeldeshell handelt, wird die .bashrc ignoriert. Um die Umgebung zwischen Nicht-Login- und Login-Shell konsistent zu halten, müssen Sie die .bashrc von Ihrer .profile oder Ihrer .bash_profile beziehen.

Siehe das Bash-Referenzhandbuch, Abschnitt 6. 2 Bash-Startdateien

Aufgerufen als interaktive Anmeldeshell, oder mit –login

Wenn die Bash als interaktive Anmeldeshell oder als nicht-interaktive Shell mit der Option –login aufgerufen wird, liest sie zunächst die Datei /etc/profile, falls diese Datei existiert, und führt Befehle aus. Nachdem sie diese Datei gelesen hat, sucht sie nach ~/.bash_profile, ~/.bash_login und ~/.profile, in dieser Reihenfolge, und liest und führt Befehle aus der ersten aus, die existiert und lesbar ist.

Aufgerufen als interaktive Shell ohne Login-Shell

Wenn eine interaktive Shell, die keine Login-Shell ist, gestartet wird, liest die Bash Befehle aus ~/ und führt sie aus. bashrc, falls diese Datei existiert.

Also enthält Ihr ~/.bash_profile typischerweise die Zeile

if [-f ~/.bashrc]; then . ~/.bashrc; fi

nach (oder vor) irgendwelchen login-spezifischen Initialisierungen.

Auf meinem Mac (unter Leopard) gab es keine Zeile zur Quelle ~/.bashrc. Ich mußte diese Funktionalität selbst hinzufügen.

Auf einigen Systemen und anderen Betriebssystemen wird .bashrc aus dem globalen /etc/profile oder /etc/bash_profile bezogen, oder es werden die Vorlagendateien aus /etc/skel verwendet.

Um ehrlich zu sein, wird der Unterschied zwischen .bashrc und .bash_profile von der Gemeinschaft nicht gut verstanden. Wenn viele Entwickler sagen: “Fügen Sie das zu Ihrer .bashrc hinzu”, meinen sie in Wirklichkeit: “Fügen Sie das zu Ihrem .bash_Profil hinzu”. Sie wollen, dass die Funktionalität zu Ihrer Anmeldeshell (also `.bashprofile) hinzugefügt wird, nicht zu Ihrer _Nicht-Anmeldeshell_. In Wirklichkeit spielt das normalerweise keine Rolle, und die Platzierung der Konfiguration in.bashrc` ist akzeptabel.

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

Es stellt sich also heraus, dass sowohl unter Mac OS X Snow Leopard als auch unter Mac OS X Lion die Datei, die geladen wird, .profile heißt, nicht .bashrc.

Was Sie tun möchten, ist, eine Datei in ~/.profile anzulegen und sie .profile zu nennen (falls sie noch nicht existiert).

Geben Sie dort die Informationen ein, die Sie mit jeder Instanz der bash laden mussten (Danke, thepurplepixel).

Ein paar Randbemerkungen:

  1. Der Punkt vor der Datei markiert sie als unsichtbar für den Finder und den ls-Befehl als Standard. Um unsichtbare Dateien mit dem Befehl ls vom Terminal aus aufzulisten, verwenden Sie den Parameter -a als solchen: ls -a
  2. Das Symbol ~ steht für /Users/YourUserName, wobei YourUserName der Kurzname Ihres Benutzernamens ist.

Bearbeiten: Chris Page merkt (korrekt) an, daß alles, was Sie in einer .profile-Datei platzieren, auf die von Ihnen verwendete Shell zutrifft (d.h. zhs, bash, usw.). Wenn Sie möchten, dass der Inhalt nur die Bash-Shell betrifft, platzieren Sie den Inhalt in einer .bash_profile-Datei statt in einer .profile-Datei.

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

Sie müssen Ihr eigenes .bashrc erstellen. Sie können einfach einen Texteditor verwenden, um eine Datei namens .bashrc (ohne Erweiterung) mit dem gewünschten Inhalt zu erstellen und sie in Ihrem Heimatverzeichnis (/Users/YourUserName/) zu speichern.

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

Ich finde, dass in meinem OS 10.6.5 die Bash-Einstellungen in “/etc/bashrc” sind. Ich denke, das sind die Toplevel-Spezifikationen für die Shell.

Sie benötigen jedoch einen root-Account, um sie zu ändern. Die lokalen pro-Benutzer-Spezifikationen “~/.bashrc” sollten mit dem folgenden Snippet beginnen, um die Bash-Einstellungen auf Systemebene zu lesen und zu laden:

if [-r /etc/bashrc]; then
    . /etc/bashrc 
fi

Normalerweise füge ich Aliase in die Bashrc auf Systemebene ein, damit alle Benutzer ebenfalls darauf zugreifen können. Es sei denn, sie wollen Ihre Verknüpfungen und Aliase nicht verwenden.

Viel Glück!

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

Verwenden Sie die .profile-Datei, um alles hinzuzufügen, was Sie zu einer Linux-.bashrc-Datei hinzufügen würden.

Zum Beispiel

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"