欢迎各位兄弟 发布技术文章
这里的技术是共享的
查看当前用户
# w # whoami # id -un 切换到用户user2
su - user2切换到root
sudo -i
sudo -s查看当前shell(默认是/bin/bash)
echo $SHELL
切换到/bin/zsh(需要重启终端) chsh 是 change shell 的意思 -s 是 switch 切换的意思
chsh -s /bin/zsh切换到/bin/bash(需要重启终端)
chsh -s /bin/bash加载顺序:
# 系统级别
/etc/profile
/etc/paths
# 用户级别
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc前两个是系统级别的环境变量,针对所有用户,后面四个带有~/用户级别的环境变量。
前两个环境配置在系统启动时候就会加载。~/.bash_profile,~/.bash_login,~/.profile依次加载,如果~/.bash_profile不存在,依次加载后面几个文件;如果~/.bash_profile文件存在,后面几个文件不会加载~/.bashrc 是bash shell打开时候加载
修改全局环境变量时候参考系统默认的环境变量配置格式。
修改全局环境变量需要root权限。
/etc/paths 全局建议修改这个文件/etc/profile 不建议修改这个文件,全局共有配置,用户登录时候都会加载该文件/etc/bashrc 一般在这个文件中添加系统级别的环境变量,全局共有配置,bash shell执行时候都会加载
执行以下指令立即生效
source <配置文件>
#示例
source .bash_profile来自 https://blog.csdn.net/toopoo/article/details/104440678
chsh -s /bin/bash 是永久生效的吗
是的,chsh -s /bin/bash 会将 默认 shell 永久更改为 Bash,但需要注意以下几点:
只在新的登录会话生效(已打开的终端窗口不会自动切换,需要重新登录或新开终端)。
默认 shell 是针对当前用户的,如果想恢复默认(Mac 通常是 zsh),可以运行:
bashchsh -s /bin/zsh
从 macOS Catalina (10.15) 开始,默认 shell 是 zsh。如果你运行 chsh -s /bin/bash,可能会看到警告:
chsh: Warning: /bin/bash is not listed in /etc/shells.
这时,需要先确认 /bin/bash 是否在白名单中:
bash# 检查是否在允许的 shells 列表 cat /etc/shells # 如果没有 /bin/bash,手动添加(需要管理员权限) sudo echo "/bin/bash" >> /etc/shells
bash# 查看当前 shell(只对当前会话有效) echo $SHELL # 查看当前运行的 shell echo $0 # 新开终端后,默认 shell 会变
如果后悔了,可以直接改回去:
bashchsh -s /bin/zsh
如果只想偶尔用 Bash,不必修改默认 shell:
bash# 临时进入 Bash bash # 退出返回 zsh exit
✅ 永久生效:chsh -s /bin/bash 会永久更改用户默认 shell。
⚠️ 注意事项:
需要 /bin/bash 在 /etc/shells 中(Mac 可能需要手动添加)。
当前会话不会立即切换,需重启终端。
🔙 恢复方法:chsh -s /bin/zsh