Mac 终端 Termial 高亮配置(PS1变量配置)

操作环境:

  • 系统:Mac 10.12
  • 编辑器:vim

 

一、无脑配置:

1. 打开中端输入:

vi ~/.bash_profile

2. 打开并编辑 .bash_profile 文件:

按键盘“i”,进入编辑模式

复制如下代码:

export CLICOLOR=1
export PS1='\[\033[01;33m\]\u@\h\[\033[01;31m\] \W\$\[\033[00m\] '

按ESC——》按“w”再按“q”——》重启终端——》完成!

二、高级操作:

转义字符:

上面的例子中使用了反斜杠转义的字符序列,通知bash用特定的值替换他们,bash可识别的转义序列有下面这些:

  • \u 用户名
  • \h 主机名第一部分
  • \H 主机名全称
  • \w 当前工作目录(如 “/home/username/mywork”)
  • \W 当前工作目录的“基名 (basename)”(如 “mywork”)
  • \t 24 小时制时间
  • \T 12 小时制时间
  • \@ 带有 am/pm 的 12 小时制时间
  • \d “Sat Dec 18″ 格式的日期
  • \s shell 的名称(如 “bash”)
  • \v bash 的版本(如 2.04)
  • \V Bash 版本(包括补丁级别)
  • \n 换行符
  • \r 回车符
  • \\ 反斜杠
  • \a ASCII 响铃字符(也可以键入 07)
  • \e ASCII 转义字符(也可以键入 33)
  • \[ 这个序列应该出现在不移动光标的字符序列(如颜色转义序列)之前。它使 bash 能够正确计算自动换行。
  • \] 这个序列应该出现在非打印字符序列之后。

知道了全部的转义序列,就可以对自己的终端提示符进行定制了。
颜色配置:
我们设计好提示符内容之后就可以给他们添加颜色,添加颜色就是添加终端(而不是 bash)可识别的专用转义序列,以使它以彩色显示文本的某些部分。标准 Linux 终端和 X 终端允许您设置前景(文字)颜色和背景颜色,如果需要,还可以启用 “bold” 字符。有八种颜色可供我们选择(用数字表示)。

  • ———————
  • 前景 背景 颜色
  • ———————
  • 30 40 黑色
  • 31 41 红色
  • 32 42 绿色
  • 33 43 黄色
  • 34 44 蓝色
  • 35 45 紫红色
  • 36 46 青蓝色
  • 37 47 白色

 

  • ————————
  • 代码 含义
  • ————————
  • 0 OFF
  • 1 高亮显示
  • 4 下划线
  • 5 闪烁 #闪烁这个选项在我机子上没反应,所以就没有验证,不知道是否可以哈
  • 7 反白显示
  • 8 不可见

举例:
现在我们可以依据上面的颜色表为提示符添加颜色啦:
下面的定义:
PS1=”\w> ”
变为:
PS1=”\e[32;40m\w> "
到现在为止,提示行尽管已经很不错了,但仍不太完美。在 bash 显示出工作目录以后,我们需要使用 "\e[0m" 序列将颜色重新设置为正常值。
PS1="\e[32;40m\w> \e[0m"
这个定义将显示一个漂亮的绿色提示行,但仍需要做一些扫尾工作。有时我们不需要包括 "40" 这个背景颜色设置,因为它将背景设置为黑色,而黑色是默认颜色。此外,绿色还很暗;我们通过添加一个 "1" 颜色代码来修正这个问题,这将启用更亮的加粗文字。除了这个修改之外,还需要将全部非打印字符用专用的 bash 转义序列 "\[""\]” 括起来。这两个序列通知 bash,被括起来的字符不占用行上的任何空间,这样就使自动换行能够继续正常工作。没有这两个转义序列,尽管我们有了一个非常漂亮的提示行,但是如果键入的命令恰好到达终端的最右端,就会造成显示混乱。下面是最终的提示行:
PS1=”\[\e[32;1m\]\w> \[\e[0m\]”
我们也不用担心在同一个提示行中使用几种颜色,就像下面这样(我的颜色配置):
PS1=\[\e[36;1m\]\u@suse:\[\e[32;1m\]\w\[\e[36;1m\]> \[\e[0m\]
但是,当我们把这个配置写入.bashrc文件后,会发现一个问题,那就是terminal的标题栏变成了一个永恒不变的“Termianl”了,这可能并不是我们希望的,默认的显示用户名、主机名和当前工作路径(我比较喜欢这个默认的哈),我们可能希望把他配回来。其实配置标题栏和上面说过的配置提示符内容差不多,只是要加上:
\e]2;…\a
中间省略号就可以加我们想让标题栏显示的内容了。
例如我们把 ”\e]2;This is my terminal:>\a” 加进PS1变量中(当然也需要用”\[""\]“转义序列括起来),标题栏中就会显示 This is my terminal:>
我比较喜欢默认的方式哈,所以我就加进去了 “\e]2;\u@\h:\w\a”,最后配置完成的结果就是:
PS1=”\[\e]2;\u@\h:\w\a\]\[\e[36;1m\]\u@suse:\[\e[32;1m\]\w\[\e[36;1m\]> \[\e[0m\]”

posted @ 2017-06-08 19:44 WangC.W 阅读(...) 评论(...) 编辑 收藏