macOS 修改 Terminal(zsh)默认 Prompt
INFO
从 macOS Catalina (10.15) 开始,默认 Shell 从 Bash 切换为 Zsh。
因此,很多以前修改 Bash Prompt 的方法已经不再适用,需要修改 Zsh 的配置。
查看当前 Prompt
我的电脑默认配置:
PS1="%n@%m %1~ %# "显示效果类似:
username@MacBook-Pro ~ %默认会显示:
- 用户名(Username)
- 主机名(Hostname)
- 当前目录
- 提示符
虽然信息完整,但对于日常开发来说略显冗长。
切换回 Bash(不推荐)
如果想恢复 Bash,可以执行:
chsh -s /bin/bashWARNING
每次打开 Terminal 都会提示官方建议切换到 Zsh,因此一般不建议改回 Bash。
切换回 Zsh
恢复默认 Zsh:
chsh -s /bin/zsh修改 Zsh Prompt
打开全局配置:
sudo vim /etc/zshrc如果提示:
readonly说明当前文件没有写权限。
可以先修改权限:
sudo chmod 777 /etc/zshrc然后重新编辑:
sudo vim /etc/zshrc找到类似:
PS1="......"修改为:
PS1="[%T] %1~ %# "保存后重新打开 Terminal 即可生效。
显示效果
修改前:
username@MacBook-Pro ~ %修改后:
[14:30] ~ %整个终端会更加简洁。
Prompt 变量说明
| 变量 | 描述 |
|---|---|
%T | 当前时间(24 小时制:HH:MM) |
%* | 当前时间(24 小时制:HH:MM:SS) |
%n | 当前用户名 |
%m | 主机名(短名称) |
%1~ | 当前目录(仅显示最后一级) |
%~ | 当前目录(完整路径,Home 会显示为 ~) |
%# | 普通用户显示 %,Root 用户显示 # |
常用 Prompt 示例
极简风(推荐)
PS1="%1~ %# "效果:
project %带时间(推荐)
PS1="[%T] %1~ %# "效果:
[14:30] project %带用户名
PS1="%n %1~ %# "效果:
qiushuang project %默认样式
PS1="%n@%m %1~ %# "效果:
qiushuang@MacBook-Pro project %我的配置
当前使用:
PS1="[%T] %1~ %# "或者保留默认:
PS1="%n@%m %1~ %# "更多 Prompt 配置
Zsh 支持丰富的 Prompt 自定义,例如:
- Git 分支
- 当前 Python 环境
- Node.js 版本
- Exit Code
- Emoji
- 颜色
- 图标
可参考官方文档:
- Prompt Expansion
http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html
参考资料
- https://apple.stackexchange.com/questions/387102/did-the-shell-terminal-change-in-catalina
- http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html
TIP
如果希望进一步美化终端,建议不要直接修改
PS1,而是使用 Oh My Zsh、Starship 或 Powerlevel10k 等 Prompt 框架,它们提供了更丰富的主题、自定义能力以及 Git 状态显示,更适合日常开发。