私はリモートサーバーにZSHをインストールし、私たちは2人の「管理者」です。私はそれを証明する出力を提供していますchsh -s $(which zsh)
。ただし、SSHセッションを開くと、次のエラーが発生します。echo $SHELL
/usr/bin/zsh
/etc/profile.d/vk.sh:30: command not found: shopt
このエラーは起動時にのみ発生し、SSHセッションを開くと一度だけ表示されます。
私が理解したところ、他の管理者は独自のエイリアスを使用していくつかのカスタムスクリプトを配置し、そこでshopt -s histappend
コマンドを使用しました。
私の質問は、私のSSH ZSHセッションが起動時にこのスクリプトを呼び出すのはなぜですか?その範囲は私のプロフィールに限定されてはいけませんか?
彼の仕事に影響を与えたり触れたりせずにZSHを実行できるエレガントなソリューションは何ですか?その人にホームディレクトリの他の場所に移動するよう依頼する必要がありますか?
答え1
この/etc/profile
ファイルには、システム全体の構成ファイル設定が含まれています。このファイルには多くのディストリビューションがあります/etc/profile.d
。したがって、すべての対話型ログインはこのフォルダの内容を呼び出します。プロファイルスクリプトの範囲を1つのアカウントにのみ指定するには、次の手順を実行する必要があります。
そのスクリプトを
~/.profile
または~/.bash_profile
(bashユーザーの場合)に移動するか、vk.sh
ログインしたユーザーに基づいて実行をスキップするログイン機能を追加しました。