今天尝试切换至另一个shell。
一开始尝试使用 fish,习惯chsh -s fish
把 fish 改成默认,用了一段时间发现不能用~/.bashrc
(&& 需要换成 and)。
因为我更喜欢重复使用~/.bashrc
,所以我找到了zsh
一个更简单的方法,然后就遵循了本文档切换为zsh
。
在我运行时sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
,它突然要求我输入Password:
。我输入了 root 密码,但得到了PAM: Authentication failure
。
然后我尝试了chsh -s bash
一下chsh -s zsh
,它总是要求我输入密码并抛出PAM: Authentication failure
(不是系统密码)。我搞不懂。
答案1
谢谢Server Fault 上的这个问题,我通过以下方式解决了这个问题:
更换
auth required pam_shells.so
和
auth sufficient pam_shells.so
在/etc/pam.d/chsh
。
然后它就不再要求输入密码了。但我认为切换 shell 后最好恢复 chsh 设置。
答案2
尝试这个:
sudo chsh -s $(which zsh) $(whoami)
答案3
用于
which zsh
查找您的zsh
位置。$ which zsh /usr/bin/zsh
添加
/usr/bin/zsh
/etc/shells
检查
/etc/passwd
你的配置是否/usr/bin/zsh
跑步
chsh -s /usr/bin/zsh
答案4
尝试在 $HOME/.bashrc 底部添加
export SHELL=`which sh`
zsh
exit
这对我有用!如果您愿意,您可以在 shell 中放置欢迎文本,但您必须使用以下命令安装 figlet:
sudo apt install figlet
并覆盖 $HOME/.bashrc 底部的先前代码
export SHELL=`which zsh`
figlet 'Your welcome message LIKE FOR ME: Welcome'
zsh
exit