我尝试按照建议的方式进行更改如何更改 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