Bash
多使用者環境,SSH ZSH - 找不到命令:shopt
我剛剛在我們是 2 個“管理員”的遠端伺服器上安裝了 ZSH。我將我的預設 shell 切換到了 ZSH
chsh -s $(which zsh)
。echo $SHELL
給出/usr/bin/zsh
證明它的輸出。但是,當我打開 ssh 會話時,我收到如下錯誤:/etc/profile.d/vk.sh:30: command not found: shopt
此錯誤僅在啟動時出現,我在打開 ssh 會話時只看到一次。
據我了解,其他管理員放置了一些自定義腳本,其中包含他自己的別名並
shopt -s histappend
在那裡使用命令。我的問題是,為什麼我的 SSH ZSH 會話在啟動時呼叫該腳本?它不應該只限於我的個人資料嗎?
在不影響/接觸他的東西的情況下執行 ZSH 對我來說是什麼優雅的解決方案?我應該讓他把那個東西搬到他家目錄的其他地方嗎?
該
/etc/profile
文件包含系統範圍的配置文件設置。在該文件中,許多發行版都在/etc/profile.d
. 因此,所有互動式登錄都將呼叫該文件夾中的內容。如果您希望將配置文件腳本限定為一個帳戶,則必須
- 將該腳本移入
~/.profile
or~/.bash_profile
(對於 bash 使用者),或- 在中添加登錄以
vk.sh
根據登錄使用者跳過執行。