私はbashを2年間使用しましたが、OS Xでhomebrewを使用してzshシェルに切り替えようとしました。そして、デフォルト(ログイン)シェルをzshに設定し、ターミナルを起動するとデフォルトで使用されるzshシェルであることを確認して、適切に設定されていることを確認しました。
ただし、zsh内からbashシェルを入力しようとすると、_~/.bash_profile
_のような_~/.bash_profile
_で定義されているエイリアスを使用してコマンドを実行できないため、_alias Julia="~/juila/Julia"
_をロードしていないように見えます。など。また、プロンプトはファイルに設定したものではなく、代わりに_bash-3.2$
_を返します。
何らかの理由で、ログインシェルをbashに設定し、bash内からzshと入力すると、_~/.zshrc
_が適切にロードされます。
それで、zsh内からbash
を実行するたびにロードされないのはなぜですか?私の_~/.bash_profile
_は、他のコンピューターと同期するために_~/Dropbox/.bash_profile
_にシンボリックリンクされています。たぶん問題の原因ですか?
インタラクティブなbash
は~/.bash_profile
ログインシェルの場合、または~/.bashrc
ログインシェルでない場合。
典型的な.bash_profile
には次のようなものが含まれます。
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
そう .bashrc
には、ログインシェルまたは非ログインシェルによって実行されるコマンドを含めることができます。
bash -l
単にbash
ではなく、.bash_profile
。
リファレンス: https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
~/.zshrc
を開き、ファイルの一番下に以下を追加します。
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile;
fi
ターミナルを開くたびに、~/.bash_profile
(ファイルが存在する場合)で定義されているものがすべてロードされます。これにより、zsh(色など)のカスタム設定を保持できます。そして、.bash_profile
ファイルにカスタムシェル設定を保持することができます。
これは、bash -l
IMOを使用するよりもずっときれいです。
設定を.bashrc
、または.bash_login
、または.profile
に配置することを好む場合は、同じことを行うことができます。
@Keith Thompsonの優れた答えを補完するには:
macOS:
@ chepnerは簡潔に言う (強調鉱山):
OS Xでは、bashは最初の[ブート時]ログインプロセスの一部として使用されず、Terminal.app(または他のターミナルエミュレータ)プロセスは既存のbashセッションの外部に存在するため、各新しいウィンドウ[またはタブ-読み取り:対話型bashシェル](デフォルト)は、それ自体を新しいログインセッションとして扱います。
その結果、一部のOSXユーザーは~/.bash_profile
のみを作成し、すべてのインタラクティブbashシェルはloginであるため、~/.bashrc
を使用することはありませんシェル。
Linux:
Linuxでは、状況は通常reversed:インタラクティブに作成されたbash
シェルは[interactive]NON-loginシェルです、それで重要なのは~/.bashrc
です。
その結果、多くのLinuxユーザーは~/.bashrc
のみを扱います。
両方のプラットフォームで機能するbashプロファイルを維持するには、@ Keith Thompsonが言及している手法を使用します。
~/.bashrc
に入れます~/.bash_profile
に追加します[[ -f ~/.bashrc ]] && . ~/.bashrc
〜/ .bash_profileから内容をコピーし、〜/ .zshrcファイルの下部に貼り付けます。
MacOのZSHユーザーの場合、私は1つのライナーになりました。
〜/ .zshrcの一番下に次の行を追加しました:
bash -l
それは、単に。bash_profile settings(alias、function、export $ PATH、...)を読み込むだけです
ZSHを削除してプレーンなBASHに戻ることにした場合、通常の状態に戻るのにまったく手間はかかりません。
これが頻繁に行わないものである場合、または変更を加えるのが適切でない場合は、子bashシェルの起動後に。bash_profileを「ソース」にすることもできます。
. ~/.bash_profile
これにより、シェルセッションの存続期間中に。bash_profileスクリプトで行った設定が取り込まれます。ほとんどの場合、そのコマンドを繰り返すことができるはずです。したがって、完全なログインを行う必要なく、加えた変更をテストするだけでなく、次の場合に既存のシェルセッションをすべて最新の状態にすることも簡単です。 。bash_profileおよび/または。bashrcファイルをアップグレードします。
Zshをインストールしたばかりで、bashのエイリアスをzshで機能させるには
.zshrcファイルをvimで開きます
vi ~/.zshrc
一番下までスクロール
source ~/.bash_profile
:wq
source ~/.zshrc
それでおしまい。これで、.bash_profileに保存されたすべてのエイリアスがzshで使用できるようになります。