核心要点
- macOS 允许用户在终端中个性化 zsh 提示符,使其更具特色并符合个人偏好。
- 通过创建 .zshrc 配置文件,可以集中存储所有 zsh 提示符的自定义设置。
- 你可以通过添加各种变量值来修改 zsh 提示符,例如 %n (用户名)、%m (Mac 型号名称)、%W (日期) 和 %T (时间)。
无论你希望 zsh 提示符呈现不同的颜色,显示更详尽的信息,还是采用简洁的设计以充分利用屏幕空间,macOS 都能满足你的需求。接下来,我们将探讨如何在终端中自定义 zsh 提示符,让它在各种背景下都能脱颖而出。
zsh 提示符的基础知识
当你在 Mac 上打开终端应用时,你会看到一些有用的信息,例如你上次登录的时间以及命令提示符。默认情况下,提示符通常类似于:
Last login: Wed Feb 3 22:00:40 on console
alvin@MacBook-Air ~ %
zsh 提示符会显示一串包含用户名和计算机型号 (如 MacBook Air, MacBook Pro, Mac mini 等) 的文本。波浪号 (~) 表示提示符当前位于主目录。
如果你通过终端导航到文件系统中的其他目录,提示符会显示当前目录的名称,而不是波浪号。
创建 Z Shell 配置文件以存储所有设置
通常情况下,你需要修改系统文件才能更改默认外观。然而,macOS 更新会重置所有系统文件为默认值,导致你之前所做的所有更改丢失。为了避免这种情况,你可以创建一个专门的 zsh 配置文件 (也称为点文件),用于存储所有 zsh 提示符的自定义设置。
默认情况下,你可能在 macOS 中找不到此点文件,因此你需要手动创建。 推荐创建一个新的 .zshrc 配置文件来保存所有设置,例如 zsh 提示符的外观和行为。 创建 zsh 配置文件(点文件)的方法如下:
touch ~/.zshrc
如果 .zshrc 配置文件不存在,touch 命令将创建一个新文件。如果该文件已存在,则此命令不会执行任何操作。
这会在你用户帐户的主目录中创建一个 .zshrc 配置文件。 如果你启用了 Mac 上查看隐藏文件的功能,你可以在 Finder 的 /User/<用户名>/ 路径下找到它。
创建后,每次启动终端时,zsh 配置文件都会被用于非登录交互式 shell。不过,如果存在其他特定于登录的文件(如 .zprofile 和 .zlogin),它只会被用于登录 shell。
在终端中自定义 zsh 提示符
通常,默认的 zsh 提示符会显示用户名、计算机名称和当前目录位置等信息。这些信息存储在 /etc/zshrc 路径下的 zsh shell 系统文件中:
PS1="%n@%m %1~ %#"
在这串变量中:
- %n 代表当前用户的用户名。
- %m 表示你 Mac 的型号名称。
- %1~ 代表当前工作目录路径,其中 ~ 表示 $HOME 目录位置的缩写。
- %# 表示如果 shell 以 root (管理员) 权限运行,提示符将显示 #,否则显示 %。
要修改默认的 zsh 提示符,你需要添加相关的值,使提示符的显示方式与默认值不同。
以下是如何操作:打开终端,键入以下命令,然后按回车键:
nano ~/.zshrc
如果 .zshrc 配置文件之前已经存在,它可能不是空的。 但如果你运行上面的 touch 命令时它不存在,它将是空白的。你可以添加带有文本 PROMPT=’…’ 或 PS1=’…’ 的新行,并在省略号中包含相关的值。
要对 zsh 提示符进行简单修改,你可以在 .zshrc 配置文件中输入以下值:
PROMPT='%n:~$'
按 Ctrl + O 确认保存修改,然后按 Ctrl + X 退出 nano 编辑器。
按 Cmd + T 打开新的终端窗口以查看刚刚所做的更改。新的 zsh 提示符将显示你的 Mac 的用户名、主目录以及末尾的 $ 符号。如果希望变量之间有空格,可以在上面的 PROMPT 变量中在 %n、~ 和 $ 之间添加空格。
如果你想自定义用户名,请将 %n 替换为你喜欢的名字。例如:
PROMPT='customusername~$'
现在,如果你打开一个新的终端窗口,你将看到以下内容:
如果你想手动更改任何其他参数,你可以使用上面 PS1 变量中的格式替换默认变量。你可以根据自己的喜好在 zsh 提示符中包含或删除信息。
如果觉得手动设置太复杂,可以使用像 Zsh 提示符生成器 这样的在线工具来帮助你自定义 Z shell。
将日期和时间添加到 zsh 提示符中
除了用户名之外,你还可以添加当前日期或时间,这样你就不必将视线移开当前终端窗口来查看这些信息。
启动终端并打开 .zshrc 配置文件:
nano ~/.zshrc
要在提示符中包含日期,可以使用 %D 使日期以 yy-mm-dd 格式显示,或者使用 %W 以 mm/dd/yy 格式显示。 例如,新的提示符如下所示:
PROMPT='%n:%W:~$'
我们在上面的 PROMPT 变量中使用了冒号 (:) 来添加视觉分隔,但你可以使用空格或任何其他符号。例如,我们使用大于号 (>) 来分隔时间和当前目录。
如果要在 zsh 提示符中包含系统时间,请添加 %T 以 24 小时格式显示当前时间,添加 %t 以 12 小时格式显示时间,或者使用 %* 以 24 小时格式显示时间和秒数。
PROMPT='%n@%T>~$'
在 zsh 提示符右侧显示日期和时间
要在 zsh 提示符的右侧显示信息,你需要将 RPROMPT 变量添加到 .zshrc 文件中。例如,要添加日期和时间,请输入以下内容:
RPROMPT='%D @ %T'
你的提示符现在将如下所示:
在 zsh 提示符中为文本添加颜色
除了修改终端应用程序的颜色之外,你还可以在 Mac 的 zsh 配置文件中的文本中添加一些颜色,以获得良好的视觉效果。启动终端并打开 .zshrc 配置文件:
nano ~/.zshrc
Z shell 支持提示文本的颜色和灰色阴影以补充背景。你可以从以下选项中选择前景色(文本):黑色、白色、黄色、绿色、红色、蓝色、青色和洋红色。 以下是如何使用它们:
PROMPT='%F{cyan}%n%f:~$'
如果你想选择特定的 zsh 颜色,你可以在终端支持的 256 种 8 位颜色之间进行选择。 以下是如何使用颜色的数值:
PROMPT='%F{51}%n%f:~$'
你需要将 %F 和 %f 默认前景色变量放置在你要着色的相关文本之间。
在 zsh 提示符中添加视觉效果
如果为提示文本着色还不够,你可以突出显示 zsh 提示符,使其在文本墙中脱颖而出。对于初学者,你可以将 zsh 提示符加粗:
PROMPT='%B%F{51}%n%f%b:~$'
在开头添加 %B 并在相关文本的末尾添加 %b 将使其变为粗体。
同样,你可以将 %S 放在开头,将 %s 放在结尾以突出显示文本。突出显示的颜色将与你在 %S 和 %s 变量之间显示的颜色相同。
PROMPT='%S%F{51}%n%f%s:~$'
你还可以为 zsh 提示符的文本添加下划线。 要在提示符中添加下划线,你可以在相关文本的开头包含 %U 变量,并在末尾包含 %u 变量。
PROMPT='%U%F{51}%n%f%u:~$'
从 zsh 提示符中删除上次登录详细信息
隐藏或禁用终端应用程序中显示的上次登录时间的顶行,可以让你的 zsh 提示符看起来更简洁。 你可以使用以下命令来隐藏该信息:
touch ~/.hushlogin
下次打开终端时,你将不会在 zsh 提示符上方看到任何内容。
重置你的 zsh 自定义
如果你需要重新开始,可以通过将 PROMPT 或 PS1 变量设置为默认值来实现:
PROMPT="%n@%m %1~ %#"
如果你使用了 RPROMPT 在 zsh 提示符右侧添加了信息,请将其从 .zshrc 文件中删除。
或者,你可以安全地删除 .zshrc 文件中的 PROMPT/PS1 和 RPROMPT 变量。不用担心,因为 .zshrc 文件中的设置仅适用于当前用户配置文件。如果删除这两个变量,将使用存储在 Z shell 系统文件 /etc/zshrc 中的默认设置。
现在你已经了解了如何自定义 zsh 提示符的所有细节,请开始尝试并将其打造成你独有的提示符。你可以加粗、添加下划线、缩短甚至在其中包含更多信息。如果你对修改不满意,你可以随时快速恢复到默认的外观。