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/bash

WARNING

每次打开 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
  • 颜色
  • 图标

可参考官方文档:


参考资料


TIP

如果希望进一步美化终端,建议不要直接修改 PS1,而是使用 Oh My ZshStarshipPowerlevel10k 等 Prompt 框架,它们提供了更丰富的主题、自定义能力以及 Git 状态显示,更适合日常开发。