一 默认设置的缺陷
Mac终端默认风格为Basic,白底黑字(黑暗模式下黑底白字)。导致输入很多命令后,想要寻找之前的命令提示行瞅瞎眼。
这里记录了终端个性化配色的设置过程,从偏好设置开始,到自定义命令提示行颜色和自定义vim编辑器配色。
二 终端偏好设置
打开终端,快捷键command + , 打开,或者菜单 “终端” – >“偏好设置” -> “描述文件”,打开如下设置窗口:
选择了Pro主题,并修改了一些默认配置:
-
字体为SF Mono,大小调整为14号。
-
文本不使用粗体,而使用粗体高亮。
-
ANSI颜色,单击任一颜色可以打开调色板,修改了蓝色(明亮)的RGB等(不然之后文件夹显示颜色为默认蓝色,在黑色背景下难以看清)。
-
光标勾选了闪动,方便看清光标位置。
三 命令提示行设置
3.1 实现个性化配置
先展示效果,清爽的命令提示行>_<,当前文件夹用红色突出显示:
配置过程如下:
- 按顺序输入上图命令,返回用户目录,显示所有文件(包括隐藏文件)。
$ cd ~
$ ls -ah
- 可以看到,博主已经有了一个 .bash_profile文件,它的作用是设置一些环境变量,当用户登录时,该文件仅仅执行一次!如果系统默认有该文件,那我们之后的操作都追加在原有内容之后,如果没有,就要自己创建了。
- 输入如下指令,进入vim编辑器后按“i”进入插入模式。(还没习惯在vim编辑的话,可以接着按ESC :wq!保存退出,然后输入指令open .bash_profile在Mac自带的文本编辑里操作)。
$ vim .bash_profile
退出vim后
$ open .bash_profile
- 把下面ANSI转码控制的颜色配置粘贴到.bash_profile文件中,先实现效果,具体原理下一节说明。
export PS1='\[\033[01;32;01m\]\h:\[\033[01;31;01m\]\W \[\033[01;32;01m\]\u$\[\033[01;00;00m\] ' # 终端命令提示行格式及颜色
- 退出(command + q)重启Terminal就可以看到和博主一样的命令提示行配色了,(这里配置了背景透明,万一终端背景色发生了变化,也不会在命令提示行出现一个尴尬的底色)。
3.2 配置的原理
-
Mac中的一个重要的配置文件:
- /etc/profile:每个用户登录时都会运行的环境变量设置。
- ~/.bash_profile:专用于某个用户自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量。
-
要修改命令行提示符,我们通过环境变量PS1来达到目的(正如我们在3.1中所做的那样,PS1=……)。
- 命令列表的参数,这些参数可以在我们上面配置的环境变量中找到。
参数 | 作用 |
---|---|
\u | 显示当前用户的用户名(user name) |
\h | 显示主机名(host name) |
\W | 显示当前工作目录的名字(work directory) |
$ | 显示$符作为提示符,如果用户是root的话,则显示#号 |
- 我们来查看一下当前的PS1,就能理解上面的参数了,输入如下指令$echo echo $PS1,注意,这里要在我们还没有按照3.1修改.bash_profile时的情况下操作(注释掉个性化修改),不然输出的结果就是我们修改的内容:
localhost:~ lemon$ $echo echo $PS1
Mac默认配置输出的结果是:
\h:\W \u\$
带代表Mac默认的终端命令提示行格式是:
主机名:目录 用户名$
- 从默认的PS1输出看到,是没有文本颜色配置的。而文本终端的颜色可以使用“ANSI非常规字符序列”来生成,(正如3.1中 \[\033[01;32;40m\]\h等)。
- \[ 和 \] 序列被用来封装这些非打印字符。
- 一个 ANSI 转义编码以一个八进制033(这个编码是由 退出按键产生的)开头。
- 其后跟着一个可选的字符属性(00:正常、01:黑体、04:下划线、05:闪烁、07:反转前景背景色)
- 最后是一个指令。前景色;背景色。
'\[\033[01;32;01m\]\h'
意思就是:
'\[这是一个ANSI编码[正常;前景色绿色;背景色透明 结束ANSI序列\]用户名'
字符序列 | 作用 |
---|---|
\[、\] | 封装这些非打印字符 |
\033 | 引导非常规字符序列 |
字符属性:00,01,04,05,07 | 正常,黑提,下划线,闪烁,反转前景背景色 |
m | 设置属性,然后结束非常规字符序列 |
这里,给出大家一些颜色序列,可以修改3.1中的配色方案,设置自己喜欢的颜色。替换字符属性、前景色、背景色对应位置的字符即可。
前景色 | 字符属性为00 | 字符属性为01 |
---|---|---|
30 | 黑色 | 深灰 |
31 | 红色 | 浅红 |
32 | 绿色 | 浅绿 |
33 | 棕色 | 黄色 |
34 | 蓝色 | 浅蓝 |
35 | 粉色 | 浅粉 |
36 | 青色 | 浅青 |
37 | 浅灰 | 白色 |
背景色 | 字符属性为00 | 背景色 | 字符属性为01 |
---|---|---|---|
40 | 黑色 | 44 | 蓝色 |
41 | 红色 | 45 | 粉色 |
42 | 绿色 | 46 | 青色 |
43 | 棕色 | 47 | 浅灰 |
四 不同文件类型显示颜色配置
同样是在打开的.bash_profile文件中,粘贴下面的配置:
export CLICOLOR='Yes' # 是否输出颜色
# export LS_OPTIONS='--color=auto' # 不同文件类型颜色配置,自动选择颜色
export LSCOLORS='ExGxFxdaCxDaDahbadacec' # 指定颜色,Linux配色方案