![如何更改远程服务器上的默认 shell?](https://linux22.com/image/1353656/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E9%BB%98%E8%AE%A4%20shell%EF%BC%9F.png)
我尝试按照建议的方式进行更改如何更改 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