Bash

多使用者環境,SSH ZSH - 找不到命令:shopt

  • February 29, 2020

我剛剛在我們是 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. 因此,所有互動式登錄都將呼叫該文件夾中的內容。如果您希望將配置文件腳本限定為一個帳戶,則必須

  1. 將該腳本移入~/.profileor ~/.bash_profile(對於 bash 使用者),或
  2. 在中添加登錄以vk.sh根據登錄使用者跳過執行。

引用自:https://unix.stackexchange.com/questions/570422