.bashrcがiTerm + Mac OS Xに含まれていません


62

Mac OS X 10.6でiTermを使用しています。iTermを開くと、ソース.bashrc.bash_profileソースも取得されていないようです。で定義されて.bashrcいるエイリアスが設定されていないのでわかります。直し方?


2
何が起こっているのかは~/.bash_profile、最初にbashによって呼び出されています。これは、にある命令を短絡させています~/.bashrc。この問題は~/.bash_profile、以前にファイルが存在せず、すべてのbashコマンドをに配置したときに、不正なプログラムが命令を追加した場合に予期せずに発生する可能性があります~/.bashrc。解決策は、〜/ .bash_profileを削除するか、〜/ .bash_profileのソースを〜/ .bashrcにすることです。これは、コマンドsource ~/.bashrcの最後に追加して~/.bash_profile、ターミナルを再起動することで実行できます。
エリックレシンスキー

回答:


53

Bashは、呼び出し方法に応じて、.bash_profileまたは.bashrcのいずれかをソースにします。ログインシェルの場合、Bashは〜/ .bash_profile、〜/ .bash_login、または〜/ .profileをこの順序で探し、最初に見つかったもの(およびその1つのみ)を取得します。ログインシェルではなくインタラクティブな場合(ほとんどのターミナルセッションと同様)、Bashは〜/ .bashrcをソースします。

おそらく、iTermは〜/ .bashrcを探しています。ログインシェルとして起動するように設定されている場合、〜/ .bash_profileを探します。ほとんどの場合、シェルがソースを取得していないというよりは、構成ファイル内のエラーです。

各ファイルの先頭に行を追加します。〜/ .bash_profileの上部:

export BASH_CONF="bash_profile"

そして、〜/ .bashrcの上部:

export BASH_CONF="bashrc"

次に、新しいiTermを開いて入力します

$ echo $BASH_CONF

これにより、ファイルのソースが確認され、ファイルの構文を確認できます。


2
ソースファイルごとに異なる環境変数を設定すると、複数のファイルが供給されている場合、あなただけの最後の1 NOST、それを知っているよ、つまり、より多くの情報を可能にし(ていないために調達場合。)
kmarsh

これは、まだ.bashrcファイルをロードしません。ソース〜/ .bashrcをiTermとTerminal Preferencesに追加する必要がありました。ところで、Mac OS X 10.9.5を使用しています。
ジャイアントエルク

.profileファイルを追加しましたが、これはOS X 10.9.5で自動的に機能しますが、端末の設定は変更されません。
ジャイアントエルク

1
環境設定->プロファイル->一般に移動してログインシェルであることがわかり、コマンドの下でログインシェルが選択されています。MacOS El CapitanおよびiTerm2 3.0.14で有効
Aditya

ここでの解決策はうまくいきませんでしたが、解決策を見つけました。最初は、bashrcとbash_profileがありませんでした。ここでの答えは、bashrcの作成を提案しています。bashrcファイルを作成する代わりに、bash_profileを作成しました。ここで、bashrcが実行されず、bash_profileが実行された理由を理解する必要があります。
kalmanIsAGameChanger

68

iTerm2では、これらのソリューションはどれも役に立たなかった。コマンドを追加することで、.bashrcファイルを適切に読み取ることができました

source ~/.bashrc 

開始時に送信テキスト:私のITERMプロファイルの設定/一般のフィールド。

ここに画像の説明を入力してください


受け入れられた答えが示唆することをしたとき、何が起こりましたか?出力なし?
ダニエルベック

右。出力が得られず、iTerm 2はエイリアスなしでデフォルトのbashシェルをロードしました。
マークStruzinski

その答えは今まで壊れていました-2番目のスニペットは入るはず~/.bashrcでした。編集しました。
ダニエルベック

私はZSHを使用していますが、同じ問題を抱えていました。そもそも私の設定ファイルが存在せず、作成する必要がなかったことを除いて。この答えを使用して「開始時にテキストを送信」を設定しましたが、ZSHを再起動すると.zshが作成され、ファイルを上書きし、「開始時にテキストを送信」を削除して、新しく生成されたファイルに設定を追加できました。これは誰にも役立ちますわからない場合
Arnolio

私はこれが私の問題だと思った。そして途中で、私のホームカタログは私が始めたフォルダではないことに気づいた... bash_profileを別の場所に移動し、ln-s(それにシンボリックリンクしていると思った私の〜(ホーム)カタログから、実際には間違ったフォルダにシンボリックリンクを追加していましたが、この答えを
探して

23

本当にBashを使っているのだろうか?使用echo $SHELLできるかもしれませんが、zshを使用している可能性があります。on -my-zhをインストールしましたか?

実際に私はあなたと同じ問題に遭遇しました。代わりに〜/ .zshrcをログインシェル用に〜/ .bash_profileまたは非ログインシェル用に〜/ .bashrcを構成することで修正します。

たぶんあなたは試してみることができます


1
興味深い提案ですが、この質問は3年前のものであり、回答は受け入れられています。
タイソン14

12

私の10.6マシンに~/.profileはソースがあります。だから、source .bashrcエントリが~/.profile仕事をする必要があります。


Mac OS El Capitanで働いていました。
user674669

私の経験では、その後、何かが間違っているあなたがそれをやっている場合、彼らは理由:)のために分離されていますが、別のソース1の.bashxファイルにしたくないと言う
アレクサンダー・ミルズ

@AlexanderMillsこれらのファイルが存在する理由は、MacがUnixから直接それらをリッピングしたためです。それらがすべてユーザーにロードされるべきではない理由はありません。
RaisinBranCrunch

あなたはそれらがお互いをロードする場合、循環呼び出しを得ることができます、それを避けるための最良の方法は、ブール値をenv変数で反転し、ブール値が設定されていない場合にのみ他のファイルをロードすることです
アレクサンダーミルズ

8

簡単な修正。

1.~/.zshrcファイルを開きます

2.ファイルの最後に次の行を追加します。

source ~/.bash_profile

1
ブリリアント!それは私のためにそれをしました。Oh-my-zhをインストールした後、zshが邪魔になることは決してありませんでした。
シンディコンウェイ

6

私の10.9マシンでは〜/ .bash_profileがソースになっています。そのため、〜/ .bash_profileのソース.bashrcエントリが仕事をするはずです。


1

エイリアス定義をbashプロファイルファイルに入れます。ファイルを作成する必要がありますが、自動的にソースされます。別のユーザーを定義していて、同じエイリアスセットを使用したいという理由だけで、alias.configurationという別のファイルを作成し、.bash_profileでソースします。


1
実際には、ソース.bashrc.bash_profileされていません。
計算機

1

追加

set -x

〜の始まりまで/etc/profile。これはあなたの時に実行されます、すべてのライン・バイ・ラインアカウント与えbash内から調達したファイルを含め、起動/etc/profile~/.bash_profileなど、あなたが理解していない場合はビット困難なのですbash非常によくスクリプトが、あなたはどうかを確認することができるかもしれ起動ファイルにエラーがあり、出力はbash問題の特定に役立つ熟練者に役立ちます。

set -xトラブルシューティングが終了したら、行を削除できます。


1

10.10およびiTerm2 2.0では、カスタマイズされたプロファイル

  • .bash_rcは動作するはずです。
  • .bash_profile、「/ bin / bash」の代わりに「/ bin / bash --login」を試してください

OS Xでは、ある時点でbashが ".bashrc"ではなく ".bash_rc"をソースとすることを認めているのはこの答えだけだと思われるので、私はこの答えに投票しました。私がここに来たのは、その理由を探ろうとしていたからです(そして、まだわかりません)。
マーニックスA.ヴァンアンマーズ

0

iTerm2では、「login」を含むカスタムコマンドの代わりに「login shell」を使用していることを確認してください。これは予期したことを行いません。


iTerm2コマンドは実際に何をしますか?
studgeek

0

次の変更を加えると、iTermはbashrcをソースします

iTerm>設定>一般> [x]コマンド:/ bin / bash


0

問題は/ etc / bashrcに以下の行を追加することで修正できます

[-r "$ HOME / .bashrc"] &&。「$ HOME / .bashrc」


-1

いくつかのソリューションを組み合わせて、期待どおりに動作させました。

.bash_profile zshでソースを作成して実行します。

Preferences -> Profiles -> General

Commandの下のCommandを選択します。
そして、テキストボックスに追加します/bin/bash --login

次に.bash_profileに行を追加します /bin/zsh --login

それでおしまい。


(1)何?(2)bash常に実行している場合zsh、それは誰もが期待するものではありません。
スコット

/ bin / bash --loginを設定した場合、zshの機能は提供されません。次に、設定でloginshellに変更すると、.bash_profileが読み込まれません。毎回source ~/.bash_profile手動で実行する必要があります。@Scott上記のことを行った後、必要な方法でzshを入手しました。
ムハンマドバジル

(1)私のポイントはつまりzsh何であるかもしれないあなたが望むそれがされていない必要 [バッシュ]タグ付けされ、については何も言っていない、この質問、またはを求めましたzsh。(2).bashrcおよび/または.bash_profileでエイリアスとシェル関数を定義し、(それらをエクスポートせずに)変数を設定した場合、それらはzshシェルで使用できますか?
スコット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.