如何让Mac Terminal的提示符与命令显示为加粗样式?
完全可以实现!Mac终端支持通过配置shell的提示符变量来添加加粗样式,不管你想只加粗提示符(比如username$)还是连输入的命令一起加粗,都有对应的方法。下面分两种Mac常用的shell来详细说明:
针对Zsh(Mac默认Shell)
Zsh是现在Mac系统默认的shell,配置起来很灵活:
方法1:只加粗提示符(username$部分)
- 打开终端,编辑Zsh的配置文件:
nano ~/.zshrc - 找到或者添加
PS1变量的定义,替换成包含ANSI加粗转义序列的内容。比如:
这里的参数解释:PS1='\e[1m%n@%m %1~ %#\e[0m '\e[1m:开启加粗样式%n:显示你的用户名%m:显示主机名(如果不需要可以删掉,改成%n %1~ %#)%1~:显示当前目录的缩写(比如~/Documents会显示Documents)%#:显示提示符(普通用户是$,root用户是#)\e[0m:关闭加粗样式,避免后续输出也变成加粗
- 保存并退出nano(按
Ctrl+O,回车,再按Ctrl+X),然后让配置生效:
之后你的提示符就会变成加粗样式,而命令输出保持正常。source ~/.zshrc
方法2:连输入的命令一起加粗
如果想让你输入的命令(比如ls、mkdir testdir)也和提示符一起加粗,可以借助Zsh的preexec和precmd钩子:
- 同样编辑
~/.zshrc,添加以下内容:# 执行命令前开启加粗 preexec() { echo -ne "\e[1m" } # 显示提示符前关闭加粗 precmd() { echo -ne "\e[0m" } - 再配合上面的加粗提示符配置,保存后执行
source ~/.zshrc生效。
效果就是:你输入的命令和提示符都会加粗,命令的输出则保持正常,滚动终端时能一眼区分出命令执行节点。
针对Bash(旧版Mac默认Shell)
如果你还在使用Bash,配置方式类似,但要注意Bash的特殊语法:
方法1:只加粗提示符
- 编辑Bash的配置文件:
(如果nano ~/.bash_profile.bash_profile不存在,就编辑~/.bashrc) - 添加或修改
PS1变量,注意要用\[和\]包裹ANSI序列,避免终端换行错乱:
参数解释:PS1='\[\e[1m\]\u@\h \W \$\[\e[0m\] '\u:用户名\h:主机名\W:当前目录缩写\$:提示符(普通用户$,root#)
- 保存退出后,执行
source ~/.bash_profile(或source ~/.bashrc)生效。
方法2:连输入的命令一起加粗
Bash默认没有preexec钩子,我们可以用trap命令来实现类似效果:
- 在
.bash_profile或.bashrc中添加:# 执行命令前开启加粗 trap 'echo -ne "\e[1m"' DEBUG # 显示提示符前关闭加粗 PROMPT_COMMAND='echo -ne "\e[0m"' - 保存后执行
source命令生效,这样你的命令和提示符都会变成加粗样式。
效果示例
配置完成后,终端的显示会类似这样:
username@MacBook ~ $ ls
file1.txt file2.txt
username@MacBook ~ $ mkdir testdir
username@MacBook ~ $ ls
file1.txt file2.txt testdir
这样滚动终端时,加粗的命令行节点会非常显眼,再也不用费劲找啦!
内容的提问来源于stack exchange,提问作者SilentDev
相关产品推荐
相关产品推荐

