我被分配了一个用于登录远程服务器的帐户,我想更改我的默认 shell。
我尝试了
chsh
命令,但它说:chsh: "/public/home/{my_id}/bin/zsh" is not listed in /etc/shells.
如果您没有在系统范围内安装 zsh 的权限,快速修复方法是将
exec ~/bin/zsh -l
附加到 ~/.bash_profile
(如果 bash 是当前 shell),或当前登录 shell 的等效 rc 文件。
zsh -l
将 zsh 作为登录 shell 启动。exec COMMAND
用 COMMAND 替换当前进程,因此您只需键入 exit(或按 ctrl+d)一次。~/.bash_profile
当 bash 作为登录 shell 启动时执行,您仍然可以正常运行命令 bash
。根据
~/.bash_profile
(或同等内容)中的内容,您可能希望通过将 exec ~/bin/zsh -l
放在文件的开头(而不是末尾)来避免执行其其他内容,并将任何重要的内容复制/移植到 zsh等效,$ZDOTDIR/.zprofile
。
我也可能会这样做
export SHELL="$HOME/bin/zsh"
,尽管我不确定将 SHELL 设置为与 /etc/passwd
中为您的用户指定的 shell、不在 /etc/shells
中的 shell 以及您家中的 shell 二进制文件不同的全部效果路径。
cat /etc/shells
chsh --shell /bin/sh tecmint