前言
每天都在使用终端,对终端的命令提示符却知之甚少,今天才知道原来命令提示符自定义这么简单。
什么是命令提示符呢?就是终端上 $ 前面那一串用户名、主机名、当前工作路径之类的信息,类似于 user@host ~ $ 。
起因是这样的,一直在使用 oh-my-zsh,主题设置成了随机,每次进入终端命令提示符的样式都不一样,有时候在很深的目录层级下,主题配置的命令提示符 $ 后又没有换行,就会导致每次输入命令在靠近屏幕中央或者右侧的位置,输出又是换行后左对齐输出,看的时候很不方便,于是就学习了一下设置的方法。
变量
先放几个主要的变量。
- %n 当前用户名
- %m 主机名
- %~ 当前工作路径,如果是 home 则表示为 ~
- %D 当前日期,格式为 yy-mm-dd
- %T 24h 格式的当前时间,格式为 hh:mm
详细配置
对应的环境变量是 PROMPT,如果是使用 zsh 的话,就配置在 ~/.zshrc 中。
先来一个基础版本,显示用户名、主机名和工作路径:
1 | PROMPT='%n@%m %~' |
显示效果如下:
适当添加空格、$ 和换行,让它看起来更舒适一些:
1 | PROMPT='%n@%m %~ |
效果如下:
当然,想把 $ 换成其他符号也是可以的,比如这里我换成一个 ^_^||
1 | PROMPT='%n@%m %~ |
效果如下:
汉字也是可以正常显示的:
1 | PROMPT='%n@%m %~ |
效果如下:
使用 %U 添加下划线,使用 %u 结束下划线内容,样式类的指令都是成对使用,大写字母开始、小写字母结束,和 html 标签一样,比如要给用户名添加下划线:
1 | PROMPT='%U%n%u@%m %~ |
效果如下:
使用 %S 突出显示,比如要突出显示用户名:
1 | PROMPT='%S%U%n%u%s@%m %~ |
效果如下:
这里显示的是默认颜色,如果要指定颜色,使用 %F{颜色值} ,这里的颜色值既可以是 213 这种 8 位颜色值,也可以是 #00FF00 这种十六进制的颜色值。
比如自定义一下用户名、主机名和工作路径的颜色,顺便把日期和时间也加上:
1 | PROMPT='%S%F{#A7BC97}%U%n%u@%m %f%s%S%F{#E1DCA8}%~ %f%s%S%F{#94A9C3}%D %T %f%s |
分开看更清楚:%S%F{#A7BC97}%U%n%u@%m %f%s 这段是 user@host ,后面加了一个空格,%S %s 之间的内容突出显示,颜色取二者之间的 %F 定义的颜色,%f 结束颜色样式。%S%F{#E1DCA8}%~ %f%s 这段是工作路径,其他类似。%S%F{#94A9C3}%D %T %f%s 其中 %D 是日期,%T 是 24h hh:mm 格式的时间。
效果如下:
至此,配置完成。