説明: ZSH ファイルの開始/クローズ

説明: ZSH ファイルの開始/クローズ

私はmacOS Catalinaにアップグレードし、新しいシェルはZSHです。そこで、新しい起動なので、bashのようにエイリアス、関数などを使ってシェル環境を設定してみました。私がそうしたとき文書

次にコマンドを読んでください$ZDOTDIR/.zshenv。シェルがログインシェルの場合は、コマンドを読んでから/etc/zprofileコマンドを読みます$ZDOTDIR/.zprofile。次に、シェルがインタラクティブである場合、および/etc/zshrcからコマンドを読みます$ZDOTDIR/.zshrc。最後に、シェルがログインシェルの場合はを/etc/zlogin読んでください$ZDOTDIR/.zlogin

混乱する部分...

  • ログインシェルの場合は、/etc/zprofile次をお読みください。$ZDOTDIR/.zprofile
  • 最後に、シェルがログインシェルの場合はを/etc/zlogin読んでください$ZDOTDIR/.zlogin

MacにSSHで接続すると、ログインシェルになります。これで、構成する必要がありますが、どのファイルを変更する必要がありますか(または変更する必要がありますか?)、この質問に答えることが.zprofile.soと.soの違いを理解するのに役立つと思いました。.zloginここにある指示が役に立ちます。

答え1

ファイル*profile*loginファイルは同じ条件で読み取られます。つまり、シェルがログインシェルの場合にのみ適用されます(と同じオプションなしで呼び出された場合no_rcs)。呼び出される順序はファイルによって異なりますので、マニュアルには別々にリストされています*rc

名前*profileshボンシェル(ほとんどの場合、ksh、bash、dashなどは追加機能を追加して再実装したものです。)名前は次のようになります*login掘削。 Zshはshに似ていますが、両方の機能を持っているので、両方の名前をサポートしているようです。

*profile通常、またはを使用すると問題はありません*login。ただし、*profileファイルの利点は以前に読み取られたことです。したがって、コンテンツがの設定によって異なる*rc場合(たとえば、に追加したディレクトリにあるプログラムを呼び出す場合など)、代わりにファイルを使用する必要があります。*rc*profile.zshrc.zprofile$PATH*profile*login

したがって、ログイン時間の設定(通常は主に環境変数)をに入れ、インタラクティブな設定~/.profile(プロンプト、完了、キーバインディング、エイリアスなど)を~/.zshrc。追加の起動ファイルが必要な場合はほとんどありません。

関連情報