如何更改远程服务器上的默认 shell?

如何更改远程服务器上的默认 shell?

我尝试按照建议的方式进行更改如何更改 AWS 实例上的默认 shell?, 如下所示:

chsh -s $(which zsh)

但结果却出现了错误。系统要求我改用ypchsh,但却出现了以下错误消息:

ypchsh: can't get local yp domain: Local domain name not set

我该怎么做才能将我的远程 shell 设置为zsh

答案1

您可以联系系统管理员并询问是否支持该功能,如果支持,请他/她进行修复。

我在不支持将 shell 更改为 zsh 的集群中执行的操作是这样的(在我的 内部~/.bashrc):

# if this is an interactive shell
if [[ $- == *i* ]]; then
  # if on one of those annoying hosts...
  if [[ `uname -n` == PATTERN_MATCHING_SOME_HOSTNAMES ]]; then
     # if there is actually a zsh command available
     if [[ -x `which --skip-alias zsh 2>/dev/null` ]]; then
        # avoid spawning zsh every time bash is started...
        if [ -z $ZSH_STARTED ]; then
            export ZSH_STARTED="true"
            # if the call to zsh fails, scp a different conf there
            exec zsh
        fi
     fi
  fi
fi

相关内容