私は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
。
名前*profile
はsh
、ボンシェル(ほとんどの場合、ksh、bash、dashなどは追加機能を追加して再実装したものです。)名前は次のようになります*login
。掘削。 Zshはshに似ていますが、両方の機能を持っているので、両方の名前をサポートしているようです。
*profile
通常、またはを使用すると問題はありません*login
。ただし、*profile
ファイルの利点は以前に読み取られたことです。したがって、コンテンツがの設定によって異なる*rc
場合(たとえば、に追加したディレクトリにあるプログラムを呼び出す場合など)、代わりにファイルを使用する必要があります。*rc
*profile
.zshrc
.zprofile
$PATH
*profile
*login
したがって、ログイン時間の設定(通常は主に環境変数)をに入れ、インタラクティブな設定~/.profile
(プロンプト、完了、キーバインディング、エイリアスなど)を~/.zshrc
。追加の起動ファイルが必要な場合はほとんどありません。