debian 9 使用zsh替代bash, 打开终端还是bash,只有使用su登陆后才变成zsh,什么问题?
debian 9 使用zsh替代bash, 打开终端还是bash,只有使用su登陆后才变成zsh,什么问题?
chsh -s /bin/zsh
使用上面的命令切换的
cat /etc/passwd
输出已经显示我的账号改为zsh了。
求指教
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
看来你是把 root 的默认 shell 给改了……
你要改哪个用户的 shell,就用哪个用户运行 chsh 啊。或者指定用户名也行: chsh -s /bin/zsh username。
不建议直接修改 passwd 文件,尤其是你这种连 chsh 都弄错的新手,要是一不小心把 passwd 改坏了,你更是没办法修复了。
更新默认 shell 之后需要重新登录。桌面环境请注销然后登录,ssh 连接请完全断开连接(如果你配置了长连接,也要断掉)然后再登录。或者你重启也行。
另外一些图形界面的终端模拟器(以及 tmux)可以指定默认跑什么命令的。如果你配置过,那么你的默认 shell 不管怎么改也是没有用的。
重新启动了下虚拟机,问题好像解决了。
使用root用户运行chsh只更改当前操作用户默认的终端,如果要修改其他用户的默认终端,需要以其他用户身份运行
chsh
。不过,如果你有root的权限,有一个一次性修改其他用户默认终端的方法:
打开
/etc/passwd
文件,此为用户配置文件,其中,以冒号分隔为一列,第一列为用户名,最后一列为默认shell
的路径将需要切换默认终端为zsh的用户名对应行中,最后一列的
/usr/bin/bash
改为zsh的路径保存退出
然后,你会发现其他用户默认也是使用zsh终端了
如果你是使用SSH连接的,可能需要退出SSH重新连接才会生效
如果
/etc/passwd
文件不存在,可以使用mkpasswd -l > /etc/passwd
生成默认用户配置文件