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


89

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

.bashrcファイルに行を追加する必要があります(bashを使用しています)が、.bashrcファイルはどこにありますか?


1
ソリューションを回答に入れて受け入れる必要があります(SUが許可するまでに1〜2日待つ必要があります)。同じ問題のある人が質問を見ると、回答があることがわかります。
ライフル

1
彼の解決策は、トップからの異なる答えを投票しない..です
デヴィッド・コーデン

念のため、これは「Linux = .bashrc vs. Mac OS =。(bash_)profile」の問題ではありません。シェル起動ファイルはLinuxとMacで同じように機能し、.bashrcファイルはSessionに適した場所です特定の設定。たとえば、tmuxやscreenを使用する場合、ログインセッションはないかもしれませんが、エイリアスが必要です。Macが違うと感じるのは、ほとんどのLinuxディストリビューションがシステムプロファイルスクリプトまたはスケルトンプロファイルを同梱しているためです。
eckes

回答:


78

.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)では、sourceに行がありませんでした~/.bashrc。この機能を自分で追加する必要がありました。

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

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


このリンクは、シェルのタイプの概要と起動ファイルがロードされるタイミングを示してい
studgeek

ここで「ソース」とはどういう意味ですか?
elgrego

@elgregoは、ここに良い説明がありますファイルがソースされると(コマンドラインでソースファイル名または。参照してくださいtldp.org/HOWTO/Bash-Prompt-HOWTO/x237.html
ステファンLasiewski

60

そのため、Mac OS X Snow LeopardとMac OS X Lionでは、ロードされるファイルは.profileでなくであることが判明しました.bashrc

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

bashの各インスタンスで読み込むために必要な情報をそこに入れます(ありがとう、purplepixel)。

サイドノートのカップル:

  1. ファイルの前のピリオドは、デフォルトでFinderおよびlsコマンドから見えないものとしてマークします。ターミナルからlsコマンドを使用して非表示のファイルを一覧表示するに-aは、パラメータとしてasを使用します。ls -a
  2. この~記号は/Users/YourUserName、YourUserNameがユーザー名の短縮名を表します。

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


5
あなたの質問は、2010年6月1日(あなたが質問した翌日)に[正しく]回答されました。以上の年後、あなたは...戻ってくるとまったく同じ答えを提供し、あなた自身の答えを受け入れる
デヴィッド・コーデン

3
実際、彼の答えは2010年6月1日に与えられた答えよりも詳細を追加します。彼は、私が役立ったと感じたMac OS Xの問題に特に取り組んでいます。
webworm

3
.bash_profileホームディレクトリに既に存在する場合、.profileファイルは読み取られないことに注意してください!
ファニ14

Mac Os El capitanを新しくインストールしました。プロファイルファイルはありません。.profileファイルを作成するだけで機能します。個人的に.bashrcの名前を.profileに変更しました。
ニコラスセリー

4

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


1
実際には、それはうまくいきませんでしたが、あなたは私に自分のファイルを作るように言って正しい方向に送ってくれました。Snow Leopardの設定で機能するファイルは、.bashrcではなく.profileでした(これは何らかの理由でこのOSにロードされていません)。質問に詳細な手順を掲載します。ありがとう!
ユバル

@Yuval:デフォルトでは、.bashrcは機能しますが、がない場合のみです.profile~/.profileただし、デフォルトで存在すると思います。お役に立てて嬉しいです!(そして、あなたはあなたのソリューションを答えに入れて、この質問の将来の読者のためにそれを受け入れるべきです)。
リス

.profileがない場合のみについてのあなたのコメントは間違っていると思います。.bashrcは、対話型の非ログインシェル内で、または.profileをソースとする場合に機能します(.profileはBourneシェル用であるため、おそらく.bash_profileの方が適しています)。.profileは、対話型の非ログインシェルで使用されます。
ステファンLasiewski

@Stefanそれは正しいですね。私は専門家ではありません:)
squircle

2
誰も;)ではありません。このようなもの(.bashrc vs .profile vs.
ステファンLasiewski

3

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

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

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

通常、すべてのユーザーがエイリアスにアクセスできるように、システムレベルのbashrcにエイリアスを追加します。ショートカットとエイリアスを使用したくない場合を除きます。

幸運を!


2
/ etc / profile(ログインシェルで実行)は、すべてのユーザーに適用され、ログインシェルのデフォルトの動作を提供するグローバルなbash起動スクリプトです。次に、/ etc / bashrcを実行します。これには、ログインシェルと非ログインシェルの両方に適用されるカスタマイズが含まれています。同様に、個々のユーザーは、ほとんどのカスタマイズが行われる〜/ .bashrcを実行する〜/ .bash_profileファイルを作成し、〜/ .bashrcは/ etc / bashrcを実行して非ログインシェルのデフォルトの動作を継承する必要があります。
クリスページ

1
個々のユーザーの場合、これらのカスタマイズは~/.bashrcでなくホームディレクトリに追加するのが最善/etc/bashrcです。/etc/bashrcシステム上のすべてのユーザーのグローバル設定です。これはおそらく望んでいないものです。また、Appleが/etc/bashrc定期的に登場し、定期的に変更する場合があります。これにより、カスタマイズが吹き飛ばされる場合があります。
ステファンLasiewski

1

.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" 

2
他のシェルでカスタマイズを有効にし、それらが互換性があることを確信できない限り、(〜/ .profileではなく)〜/ .bash_profileを使用することをお勧めします。
クリスページ

念のため、これは「Linux = .bashrc vs. Mac OS =。(bash_)profile」の問題ではありません。シェル起動ファイルはLinuxとMacで同じように機能し、.bashrcファイルはSessionに適した場所です特定の設定。たとえば、tmuxやscreenを使用する場合、ログインセッションはないかもしれませんが、エイリアスが必要です。Macが違うと感じるのは、ほとんどのLinuxディストリビューションがシステムプロファイルスクリプトまたはスケルトンプロファイルを同梱しているためです。
eckes
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.