it-swarm.com.de

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

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

Ich muss meiner .bashrc-Datei eine Zeile hinzufügen (ich verwende bash), aber wo ist meine .bashrc-Datei?

86
Yuval

Unter Mac OS X Snow Leopard und Mac OS X Lion heißt die geladene Datei also .profile und nicht .bashrc.

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

Geben Sie alle Informationen ein, die Sie zum Laden jeder Bash-Instanz benötigen (Danke, thepurplepixel).

Ein paar Randnotizen:

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

Bearbeiten: Chris Page stellt (korrekt) fest, dass alles, was Sie in eine .profile-Datei einfügen, auf die von Ihnen verwendete Shell (zhs, bash usw.) angewendet wird. Wenn der Inhalt nur die Bash-Shell betreffen soll, platzieren Sie den Inhalt in einer .bash_profile-Datei anstelle einer .profile-Datei.

58
Yuval

In Bezug auf das Problem mit .bashrc oben:

Auf den meisten Systemen wird ~/.bashrc nur verwendet, wenn ein interaktives Nicht-Login Shell gestartet wird. Wenn Sie jedoch eine neue Shell starten, handelt es sich häufig um eine interaktive login Shell. Da dies eine login Shell ist, wird der .bashrc ignoriert. Um die Umgebung zwischen nicht angemeldeten und angemeldeten Shells konsistent zu halten, müssen Sie den .bashrc aus Ihrem .profile oder Ihrem .bash_profile beziehen.

Siehe Bash-Referenzhandbuch, Abschnitt 6.2 Bash-Startdateien

Wird als interaktive Login-Shell oder mit --login aufgerufen

Wenn Bash als interaktive Anmeldeshell oder als nicht interaktive Shell mit der Option --login aufgerufen wird, werden zuerst Befehle aus der Datei/etc/profile gelesen und ausgeführt, sofern diese Datei vorhanden ist. Nach dem Lesen dieser Datei sucht sie in dieser Reihenfolge nach ~/.bash_profile, ~/.bash_login und ~/.profile und liest und führt Befehle von der ersten Datei aus, die vorhanden und lesbar ist.

Wird als interaktive Shell ohne Anmeldung aufgerufen

Wenn eine interaktive Shell gestartet wird, die keine Anmeldeshell ist, liest Bash Befehle von ~/.bashrc und führt sie aus, sofern diese Datei vorhanden ist.

Normalerweise enthält Ihr ~/.bash_profile die Zeile

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

nach (oder vor) Login-spezifischen Initialisierungen.

Auf meinem Mac (mit Leopard) gab es keine Quelle für ~/.bashrc. Ich musste 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 die Unterscheidung zwischen .bashrc und .bash_profile von der Community nicht gut verstanden. Wenn viele Entwickler "Add this to your .bashrc" sagen, meinen sie "Add this to your .bash_profile". Sie möchten, dass die Funktionalität zu Ihrer Login Shell (das ist .bash_profile) und nicht zu Ihrer Nicht-Login Shell hinzugefügt wird. In der Realität spielt es normalerweise keine Rolle und die Platzierung der Konfiguration in .bashrc ist akzeptabel.

78

Sie müssen Ihren eigenen .bashrc erstellen. Sie können einfach einen Texteditor verwenden, um eine Datei mit dem Namen .bashrc (keine Erweiterung) mit dem gewünschten Inhalt zu erstellen und in Ihrem Ausgangsverzeichnis (/Users/YourUserName/) zu speichern.

4
squircle

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

Sie benötigen jedoch ein Root-Konto, um es zu ändern. Die lokalen Benutzerspezifikationen "~/.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 den bashrc auf Systemebene ein, damit auch alle Benutzer darauf zugreifen können. Es sei denn, sie möchten Ihre Verknüpfungen und Aliase nicht verwenden.

Viel Glück!

3
geekborj

Verwenden Sie die Datei .profile etwas hinzufügen, die Sie auf eine Linux-Datei .bashrc hinzufügen würde.

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" 
1
Sable