web-dev-qa-db-ja.com

〜/ .profile、〜/ .bashrc、および〜/ .bash_profileが新しいターミナルで実行されていない

ターミナルの永続的なエイリアスを作成しようとしています。以前は空だった〜/ .profile、〜/ .bashrc、および〜/ .bash_profileファイルにエイリアスを配置しました。新しいターミナルを起動すると、bashはエイリアスを認識しませんが、それらのいずれかを調達すると、認識します。ターミナルを開いたときにこれらが実行されないのはなぜですか?私はOSXを使用しています。

11

ドットファイルの読み込みを機能させるためにiTermを使用する場合、ここで2つのことが発生する必要があります。

まず、.bash_profileに以下を追加する必要があります

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

次に、iTerm設定で、端末がログインシェルを起動するように設定されていることを確認する必要があります。

iTerm Preferences

お役に立てれば!

24
ptierno

デフォルトのMacターミナルを使用して、私のために働いたのは、起動時に実行するコマンドを追加して、.bash_profileをソースすることでした。

環境設定>プロファイル>スタートアップ>コマンドの追加 'source〜/.bash_profile'

Mac端末設定ウィンドウのスクリーンショット

少しハッキーだと思われるかもしれませんが、それでうまくいきます。

12
Tony Ly

source ~/.profile.bash_profileに追加するとうまくいきました。

3
Cafebabe

High Sierraの時点では、TerminalとiTermの両方が最初に〜/ .profileをロードする必要があります。したがって、Macを他のUnixと同じように機能させるには、.profileに1行を入力することをお勧めします。

ソース〜/ .bash_profile

この1つのファイルを編集することで、複数のアプリのメニューを検索して、それぞれのAppleの奇妙な動作を無効にする必要がなくなります。

3
Randy

シェルの初期化ファイルがロードされないのはなぜですか?

ほとんどのものと同様に、それは依存します™

私は最近同じ現象を経験し、それを解決するために次の演習を行いました。

私はiTermを使用しています。 iTermはデフォルトでログインシェルを実行します。 iTerm設定>一般>コマンド>(*)ログインシェルで確認します。したがって、〜/ .bash_profileが常に呼び出されることがわかります。

それを知って、私は〜/ .bash_profileファイルに以下を入れました:

for file in ~/.{bashrc,bash_exports,bash_aliases,bash_functions}; do
    [ -r "$file" ] && source "$file"
done
unset file

.bashrc、.bash_exportsなどに別々のファイルを使用していることに注意してください。これにより、物事が別々でシンプルに保たれます。

/ etc/profileが最初にロードされることにも注意してください。ただし、そのシステム全体のinitファイルを使用したことがないため、それが私の問題ではないことがわかりました。詳細については、$ man bashをご覧ください。

そこで、〜/ .bash_profileファイルから始めました。

インストールすると、 Canopy Express インストーラーが、〜/ .bash_profileファイルの内容を次の内容に置き換えていることがわかりました。

# Added by Canopy installer on 2017-04-19
# VIRTUAL_ENV_DISABLE_Prompt can be set to '' to make the bash Prompt show that Canopy is active, otherwise 1
alias activate_canopy="source '/Users/Lex/dev/python/User/bin/activate'"
# VIRTUAL_ENV_DISABLE_Prompt=1 source '/Users/Lex/dev/python/User/bin/activate'

p.s.キャノピーは優れた無料のpython IDEであり、私が強くお勧めします。

幸い、私は〜/ .bash *ファイルをバックアップしているので、復元は簡単で、問題はすぐに修正されました。

私のアドバイスは、初期化ファイルへの呼び出しの順序を理解し、最初のファイルから始めて、問題が見つかるまでそれらを処理することです。

ああ、あなたはあなたが使用しているシェルを確認したいかもしれません(私はbashを使用しています):

~ $ echo $Shell
/usr/local/bin/bash
1
l3x

Bash、tcsh、sh、zshなどの別のシェルを使用できると思います。

プットsource .bash_profile適切な 'bashrc'ファイルに入れると、自動読み込みが回復します。

tcshの場合は.login、bashの場合は.bash_profile、zshの場合は.zshrc

0
Cross

Catalinaの時点で、デフォルトのシェルはzshになりました。 chsh -s /bin/bashを使用してbashに戻すことができます。これにより、.profileまたは.bash_profileが読み込まれます。

0
braitsch