ログインシェルであるZシェルにいることを確認してください。

ログインシェルであるZシェルにいることを確認してください。

~によると文書

.zshenv-fオプションが設定されていない場合は、シェルへのすべての呼び出しからこの情報を取得します。これには、コマンド検索パスを設定するコマンドとその他の重要な環境変数を含める必要があります。.zshenv出力を生成したり、シェルがttyに接続されていると仮定するコマンドを含めないでください。

いいね、いいですね。 sshを介してログインすることはzshを呼び出すと見なされます。しかし、そうではないかもしれませんか?

wayne@arglefraster ~ 
⚘ echo $PATH                                                                                                   10:01:17
/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
wayne@arglefraster ~ 
⚘ zsh                                                                                                          10:01:20
e%                                                                                                                      
wayne@arglefraster ~ 
⚘ echo $PATH                                                                                                   10:01:24
/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/wayne/.rvm/bin:/home/wayne/.bin:/home/wayne/.local/bin

これらの追加パスビットが私のファイルに追加されます.zshenv

これは正常ですか、それとも私に奇妙なことが起こっていますか? PATH編集を他の場所に移動する必要がありますか?

答え1

zshenv実際にはシェルのすべてのインスタンスから読み取られますが、最初、最初。 (または、…)$PATHでリセットできます。zprofile~/.zprofile/etc/zprofile

zshenvsettingsではなく$PATHzprofileログイン時に環境を設定する役割をします。環境変数を設定するとは、セッション内でzshenv単純なzshサブシェルまたはスクリプトを実行するzshと、その変数が削除されることを意味します。

答え2

ログインシェルであるZシェルにいることを確認してください。

.zshenvコンピュータにSSH接続するときに実行する必要があります。実行されない場合

  • 次のコマンドを使用して、システムにSSH接続するときにZシェルにあることを確認してください。echo $SHELL
  • Zシェルにない場合は、zshそれを実行してZシェルを明示的に起動し、.zshenv操作を確認します。その場合は、実行してexitZシェルを終了します。
  • ファイルが有効な場合は、ログインシェルを変更してください。
    • SSH経由でログインするとき
    • これを実行すると、command -v zshZシェルがどこにあるかがわかります。何も返されない場合は、Zシェルをインストールする必要があります。
    • 次に、実行してchshZシェルへのパスを指定します。
    • ログアウトしてsshを使用してもう一度ログインしてください。

関連情報