コマンドラインから.bash_profileをリロードする方法は?


997

コマンドライン.bash_profileからリロードするにはどうすればよいですか?

.bash_profile終了して再度ログインすることで、シェルに変更を認識させることができますが、オンデマンドで実行できるようにしたいと考えています。

回答:


1883

入力するだけ source ~/.bash_profile

または、キーストロークを保存したい場合は、次のように入力できます。 . ~/.bash_profile


49
いかがですかalias BASHRELOAD=". ~/.bash_profile"。これを頻繁に行う場合は、単にとしてエイリアス化できますbr
bobobobo 2013

1
これを毎回/セッションごとに行う必要がある理由は何ですか?.bash_profileに加えられた変更を、エディターで開いたときにファイルに存在していても、永続化することができません。混乱しています。
erwinheiser 14

3
@erwinheiserはシステムがファイルをロードしていますか?システムによっては、〜/ .bashrcなどの他のファイルを使用します。
Graham P Heath

1
あなたが何かは、あなたが使用することができ、負荷に間違っていたかどうかを知りたい場合は:alias reload='source ~/.bash_profile && echo "File .bash_profile reloaded correctly" || echo "Syntax error, could not import the file"';
クリスティアンバティスタ

1
OhMyZshに切り替えたことを忘れた人のために。open〜/ .zshrcを実行し、.bash_profileの代わりにそこで変更を加えます
Sankofa

106
. ~/.bash_profile

そこにある現在の状態に依存関係がないことを確認してください。


15
なぜこれが機能するのですか?つまり.、この場合のコマンドは何ですか?
ジョナ14

9
ドット演算子:.は単にsourceコマンドのエイリアスです。
Graham P Heath

8
@GrahamPHeath-厳密に言えば、それは逆です。.より古いsourceです。
Carl Norum、2014年

4
sourceのbash固有の実装です.
Thirupathi Thangavel 2015年

7
@StasS- .そしてsourcebashでも文字通り同じです。リンクから:「bashではsourceドット/ピリオド ' .'の同義語ですが、POSIX shでは同義語ではないため、最大の互換性のためにピリオドを使用してください。」
Carl Norum、2017年

31

単にタイプ:

. ~/.bash_profile

ただし、ターミナルを開くたびに実行するのではなく、ターミナルの起動時に自動的に実行するようにソースを設定する場合は. ~/.bash_profile~/.bashrcファイルに追加することができます。

注意:

ターミナルを開くと、ターミナルは(非ログイン)対話モードでbashを開始します~/.bashrc。つまり、がソースになります。

~/.bash_profileインタラクティブログインモードで起動した場合にのみ、bashがソースになります。これは通常、コンソール(Ctrl++ Alt+ F1.. F6)にログインするとき、またはを介して接続するときのみですssh


15

このコマンドを使用して、そのユーザーの〜/ .bash_profileを再ロードすることもできます。必ずダッシュを使用してください。

su - username

6
これは、理想からはほど遠い、シェル内のシェル全体を呼び出します。その他のオプションは、関連ファイルを単に再実行するだけです。つまり、(A)質問に実際に関連しており、(B)シェルを積み上げないでください(env varなど)現在のシェルを(入れ子にすることなく)完全に置き換える適切な方法あります、それはトピックから外れているので、興味のある読者は他の場所で検索するようにしておきます。
underscore_d

3
あなたは別のシェルを開いて、これはあなたにも新しい端末や再ログを開くことがありますリロードではありませんされている
フアン・ディエゴ・

15

ファイルを編集した後は、次のように入力するだけです。

. !$

これにより、履歴で編集したファイルが読み込まれます。「bashのbang dollarとは」を参照してください。


11
  1. .bash_profileファイルを保存する
  2. 次のように入力して、ユーザーのホームディレクトリに移動します。 cd
  3. プロファイルをリロードします . .bash_profile

8
家に帰るだけcd。必要はありません~
roNn23 2015

8
必要はありませんcd-現在いるディレクトリからリロードできます:. ~/.bash_profile
Alex Villa

10

現在のシェルターミナルの履歴を失ってもかまわない場合は、

bash -l

それはあなたのシェルをフォークし、bashの別の子プロセスを開きます。-lパラメータは.bash_profileのが、これについての詳細情報については、非ログインシェルとして実行されませんので、これが必要とされ、ログインシェルとして実行するためのbashを伝え、ここで読みます

現在のシェルを完全に置き換えたい場合は、次のようにすることもできます。

exec bash -l

上記は現在のシェルをforkしませんが、完全に置き換えます。そのため、タイプexitすると、以前のシェルにドロップするのではなく、完全に終了します。


iterm2を使用している場合、履歴が失われることはありません
Xitcod13

4

alias bashs="source ~/.bash_profile"bashファイルに追加します。bashs次回からお電話できます


1
私はそれを別名にresetします
jcollum

3

.bash_profileが存在しない場合は、次のコマンドを実行してみてください。

. ~/.bashrc 

または

 source ~/.bashrc

.bash_profileの代わりに。あなたはbashrcに関する詳細情報を見つけることができます


3

私は簡単な回答を投稿したいと思いsource ~/.bash_profileます。使用中または上記の回答は機能しますが、これは表示している現在のタブまたはセッションのbashプロファイルのみを再読み込みすることです。すべてのタブ/シェルでbashプロファイルを再ロードする場合は、それぞれに手動でこのコマンドを入力する必要があります。

あなたが使用している場合はITERMを、あなたは使用することができますCMD⌘+ Shift+ I現在のすべてのタブにコマンドを入力します。端末の場合、この問題を参照すると役立つ場合があります。



2

私はDebianを使用していexec bashて、これを達成するために単にタイプすることができます。他のすべてのディストリビューションで機能するかどうかはわかりません。


2
これはMacでは機能しません(少なくとも、私が使用しているバージョン
-Sierra

@Ulukai . .bash_profileは、Macのホームディレクトリ内で入力しているように見えます。7urkm3nによる上記の応答と同じです。
Cassandra

2
alias reload!=". ~/.bash_profile"

または関数を介してログを追加したい場合

function reload! () {
    echo "Reloading bash profile...!"
    source ~/.bash_profile
    echo "Reloaded!!!"
}

いいえ、その年の好みです。ステータスを示す追加の印刷行を追加したいだけで. ~/. bash_profile なく、単に単に行かない場合source ~/.bash_profile
7urkm3n

1

私はシエラを実行しており、しばらくの間これに取り組んでいました(推奨されるすべての解決策を試しています)。私は困惑したので、結局自分のコンピューターを再起動してみました!動いた

私の結論は時々ハードリセットが必要であるということです


1
マイクはい、すべてが新しく読み込まれるため、ハードリセットが機能します。行った変更が機能している限り、次回の起動時に有効になります。ただし、少しばかり掘り下げて、常にbashを更新するコマンド/メソッドを見つける方が簡単です。再起動せずにそれを実現する方法があります。もちろん、最新の変更が機能するかどうかを確認するだけでは、時間がかかりすぎます!おそらく見ていosxdaily.com/2016/06/07/...を
カサンドラ

1
ええ、bashプロファイル/パスをリロードするために、短縮コマンドと完全コマンドの両方を試しました。機能せず、ログアウトしてからログインし直すだけで機能しました。奇妙な
ビョークは1つのファンをナンバー1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.