我参考了这个答案来更改我的默认 shell如何将默认 shell 更改为 ZSH - chsh 说“无效 shell”
添加 zsh/etc/shells并执行后,sudo chsh -s "$(command -v zsh)" "${USER}"我运行了echo $SHELL(顺便说一句,它没有输出,所以我认为它一定已经成功运行),它给了我/bin/bash
我关闭了 shell 并打开了一个新的 shell 会话,zsh 出现了,所以我认为它一定是通过重新启动来修复的,之后当我echo $SHELL在 zsh 会话中运行时,它仍然给了我相同的输出/bin/bash``$SHELL --version,也给了我 bash 版本而不是zsh 的一个
每次我执行 ctrl+alt+t 操作时,我都会得到一个 zsh 会话,但这个echo $SHELL输出让我感到怀疑。
更新:我正在运行 Ubuntu Budgie 18.04.3,我/bin/zsh从echo $0
仅当您执行完全登录时才会设置环境SHELL变量,例如注销并再次登录,或者使用su - "$USER"或ssh "$USER@localhost"或执行完全登录的其他命令。
通常是login程序根据数据库中用户的登录 shell 的内容来设置此变量passwd。无论任何进程接受来自用户的登录请求(例如通过sshd或gdm等等),这都会被称为登录过程的一部分。
来自login(1)Ubuntu 的手册:
您的用户和组 ID 将根据
/etc/passwd文件中的值进行设置。$HOME、$SHELL、$PATH、$LOGNAME和的值
仅启动一个新的 shell 会话不会设置此变量的值,即使 shell 作为“登录 shell”启动也是如此。
| 归档时间: |
|
| 查看次数: |
8517 次 |
| 最近记录: |