web-dev-qa-db-ja.com

Mac OS X Snow LeopardとLionの.bashrcファイルはどこにありますか?

私のSnow Leopardマシンにrvmをインストールしたい。

それは私が私の.bashrcファイルに行を追加する必要があると言っています(私はbashを使っています)が、私の.bashrcファイルはどこにありますか?

87
Yuval

つまり、Mac OS X Snow LeopardやMac OS X Lionでは、ロードされるファイルは.profileではなく.bashrcという名前です。

あなたがしたいのは、~/.profileでファイルを作成し、それを.profileと呼ぶことです(まだ存在していない場合)。

Bashの各インスタンスにロードするために必要な情報をそこに入れてください(ありがとう、thepurplepixel)。

いくつかの補足説明:

  1. ファイルの前のピリオドは、デフォルトではFinderとlsコマンドには表示されないことを示しています。 Terminalからlsコマンドを使って見えないファイルを一覧表示するには、-aをパラメータとして使います:ls -a
  2. ~記号は/Users/YourUserNameを表します。ここで、YourUserNameはユーザー名の短縮名です。

編集:Chris Pageは、.profileファイルに配置したものは、使用しているシェル(zhs、bashなど)にも適用されることを(正しく)指摘しています。内容をbashシェルだけに適用したい場合は、.bash_profileファイルではなく.profileファイルに内容を入れてください。

58
Yuval

上記の.bashrcの問題に関して:

ほとんどのシステムで、~/.bashrcは、対話型非ログインシェルを起動するときにのみ使用されます。ただし、新しいシェルを起動すると、多くの場合対話型ログインシェルになります。これはログインシェルなので、.bashrcは無視されます。非ログインシェルとログインシェルの間で環境の一貫性を保つには、.bashrcまたは.profileから.bash_profileを取得する必要があります。

Bashリファレンスマニュアルのセクション を参照してください。6.2 Bash起動ファイル

対話型ログインシェルとして、または--loginを使用して呼び出されます。

Bashが対話型ログインシェル、または--loginオプション付きの非対話型シェルとして呼び出されると、そのファイルが存在する場合は、最初に/ etc/profileファイルからコマンドを読み込んで実行します。そのファイルを読み込んだ後、〜/ .bash_profile、〜/ .bash_login、および〜/ .profileの順に検索し、存在して読み取り可能な最初のコマンドからコマンドを読み取って実行します。

対話型の非ログインシェルとして呼び出されます

ログインシェルではない対話型シェルが起動されると、そのファイルが存在する場合、Bashは〜/ .bashrcからコマンドを読み込んで実行します。

そのため、通常、〜/ .bash_profileには次の行が含まれています。

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

ログイン固有の初期化の後(または前)。

私のMac(Running Leopard)では、~/.bashrcをソースにする行がありませんでした。私は自分でこの機能を追加しなければなりませんでした。

一部のシステムや他のOSでは、.bashrcはグローバルな/etc/profileまたは/etc/bash_profileから供給されるか、/etc/skelからのテンプレートファイルを使用して行われます。

.bashrc.bash_profileの区別は、率直に言ってコミュニティによってよく理解されていません。多くの開発者が「これをあなたの.bashrcに追加する」と言うとき、彼らが本当に意味するのは「これをあなたの.bash_profileに追加する」ということです。彼らはあなたのログインシェル(これは.bash_profile)に追加されるべきであり、あなたの非ログインシェルには追加されたくないのです。実際には、通常それは問題ではなく、設定を.bashrcに配置することは許容されます。

78

あなたはあなた自身の.bashrcを作らなければなりません。テキストエディタを使用して、必要な内容の.bashrc(拡張子なし)というファイルを作成し、ホームディレクトリ(/Users/YourUserName/)に保存することができます。

4
squircle

私のOS 10.6.5ではbashの設定が "/ etc/bashrc"にあることがわかりました。これはShellのトップレベルの仕様だと思います。

ただし、それを変更するにはrootアカウントが必要です。システムレベルのbash設定を読み込んで読み込むには、ローカルのユーザーごとの指定 "〜/ .bashrc"を次のスニペットで始める必要があります。

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

私は通常、システムレベルのbashrcにエイリアスを追加して、すべてのユーザーがそれらにアクセスできるようにします。あなたのショートカットやエイリアスを使いたくないのでなければ。

がんばろう!

3
geekborj

.profileファイルを使用して、Linuxの.bashrcファイルに追加するものをすべて追加します。

例えば

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