Mac OS X .bashrcが機能しない


77

.bashrcホームディレクトリに1行のファイルがあります。

alias countlines='find . -type f -print0 | xargs -0 cat | wc -l'

ただし、エイリアスは作成していません。なぜそうなるのでしょうか?

回答:


101

OSXでは、の.bash_profile代わりに使用されます.bashrc

はい、.bash_profileファイルは/Users/YourName/
(つまり、~/.bash_profile)に配置する必要があります

例えば、 /Users/Aaron/.bash_profile


11
これは正しい答えではありません。エイリアスは継承されないため、.bash_profileでのみ定義した場合、非ログインシェルでは定義されません(bash内でbashを実行する場合など)。
LaC

1
:または1つはbashrcににエイリアスを置くのと同じ効果を持っていますが、より管理しbash_aliases使用することができますss64.com/osx/syntax-bashrc.html
アトゥールイングル

4
私の.bash_profileでは、bashrc->source ~/.bashrc
Eric Hodonsky

86

.[bash_]profileそして.bashrcOS XとLinuxの両方で使用することができます。前者は、シェルがログインシェルの場合にロードされます。後者ではない場合。本当の違いは、ユーザーがグラフィカルセッションにログインするとLinuxがログインシェルを実行し、ターミナルアプリケーションを開いたときにこれらのシェルが非ログインシェルになることです。一方、OS Xはグラフィカルログイン時にシェルを実行せず、Terminal.appからシェルを実行すると、それがログインシェルになります。

エイリアスをログインシェルと非ログインシェルの両方で機能させたい場合は(通常はそうします)、次のような行を使用して、.bash_profileの.bashrc および source .bashrcにエイリアスを配置する必要があります。

[ -r ~/.bashrc ] && source ~/.bashrc

これは、bashを使用するすべてのシステムに適用されます。


15
.bashrc内のすべてがサブシェル(およびsubsub-、subsubsub-など)に対して再び実行されるという警告を付けて+1しPATH=$PATH:/my/private/binariesます。そのため、たとえばPATHが膨張します。回避策についてはこちらをご覧ください。
ゴードンデイヴィソン

2
本当です。エクスポートされたインスタンス変数は継承されるため、の.profile代わりにそれらを設定するだけです.bashrc
LaC

1
@LaCは、エクスポートされたインスタンス変数が継承されるので、それらを設定するだけで説明できます.profile_か?
サム

1
@sam、「インスタンス」がどこから来たのかわかりません。私は「エクスポートされた変数」を意味していました。残念ながら、そのコメントを編集することはできません。
LaC 14年

2
@dinosaur:「-r」は、ファイルが読み取り可能かどうかを確認します。
mhvelplund

7

または、.bashrcを指す.bash_profileというsymリンクを作成します

ln -s .bashrc .bash_profile

2

Mac OS Xの.bash_profile代わりに使用されるため、エイリアスされていません.bashrc

したがって、2つのオプションがあります。

  • エイリアスを ~/.bash_profile

  • または、次の行をに追加して.bashrc、あなたの.bash_profile.bash_profile

    . ~/.bashrc


1

のMac OS Xヨセミテ、次のコマンドを実行します。

vi ~/.profile

次に、次の行を追加します。

source ~/.bashrc

保存して閉じ.profile、新しいターミナルウィンドウを開くか、単に実行します。

source ~/.profile

この回答も参照してください。v10.10.3で機能しました。


これは、4年前の回答の再ハッシュに過ぎません。
Gマン

確かに、簡単に読んで適用できます。加えて、わずかな貢献-他の言及されたファイルは私のOS Yosemiteでは利用できなかったからです。
リカルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.