在bash中,可以通过更改PS1环境变量的值来设置提示行。通常的提示符颜色单调,用户可以通过在PS1中添加颜色代码序列来设置提示符中不同信息以不同颜色显示。

添加颜色相当容易;第一步是设计不带颜色的提示行。然后,我们所要做的只是添加终端(而不是bash)可识别的专用转义序列,以使它以彩色显示文本的某些部分。标准Linux终端和X终端允许用户设置前景(文字)颜色和背景颜色,如果需要,还可以启用"bold"字符。有八种颜色可供我们选择。

颜色是通过在PS1中添加专用序列来选择的--基本上是夹在"\e["(转义开方括号)和"m"之间数字值。如果指定一个以上的数字代码,则用分号将它们分开。

下面是一个颜色代码示例:
        "\e[0m"

如果将数字代码指定为零,则它就会通知终端将前景、背景和加粗设置重置为它们的默认值。您可能会在提示行结束时使用这个代码,以使您键入的文字成为非彩色的。现在,让我们看一下这些颜色代码。

颜色表

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

代码              意义
   -------------------------
   0                 OFF
   1                 高亮显示
   4                 underline
   5                 闪烁
   7                 反白显示
   8                 不可见

要使用这个表,首先请查找您要使用的颜色,然后查找对应的前景编号(30-37)和背景编号(40-47)。例如,如果您喜欢黑底绿字,则可将编号分别设为32和40。然后打开您的提示行定义并在其中添加适当的颜色代码。下面的定义: 
        export PS1="\w>; " 
     变为: 
        export PS1="\e[32;40m\w>; "

到现在为止,提示行尽管已经很不错了,但仍不太完美。在bash显示出工作目录以后,我们需要使用"\e[0m"序列将颜色重新设置为正常值。 
        export PS1="\e[32;40m\w>; \e[0m"

这个定义将显示一个漂亮的绿色提示行,但我们仍需要做一些扫尾工作。我们不需要包括"40"这个背景颜色设置,因为它将背景设置为黑色,而黑色是默认颜色。此外,绿色还很暗;我们通过添加一个"1"颜色代码来修正这个问题,这将启用更亮的加粗文字。

除了这个修改之外,我们还需要将全部非打印字符用专用的bash转义序列"\["和"\]"括起来。这两个序列通知bash,被括起来的字符不占用行上的任何空间,这样就使自动换行能够继续正常工作。没有这两个转义序列,尽管您有了一个非常漂亮的提示行,但是如果您键入的命令恰好到达终端的最右端,就会造成显示混乱。

下面是我们最终的提示行: 
        export PS1="\[\e[32;1m\]\w>; \[\e[0m\]"

别担心在同一个提示行中使用几种颜色,就像下面这样: 
        export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\H>; \[\e[0m\]"

 
 

MAC 终端颜色设置的更多相关文章

  1. python终端颜色设置

    1.颜色定义说明 格式:\033[显示方式;前景色;背景色m   前景色 背景色 颜色 --------------------------------------- 30 40  黑色 31 41 ...

  2. ubuntu终端颜色设置

    在 .bashrc中增加 PS1='${debian_chroot:+($debian_chroot)}\[\033[00;32m\]\u @ \h\[\033[00m\]:\[\033[00;34m ...

  3. sublime 在Mac终端下设置快捷打开方式

    vi ~/.zshrc alias subl='open -a "Sublime Text"' source ~/.zshrc 打开 ~/.zshrc,然后写入第二行,然后执行第三 ...

  4. 一款不错的Linux终端颜色设置

    PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ " #步骤# vi ...

  5. Linux终端颜色设置

    http://blog.sina.com.cn/s/blog_65a8ab5d0101g6cf.html http://www.tuicool.com/articles/NRZfIj #PS1='${ ...

  6. mac 目录颜色设置

    1 export CLICOLOR=1  2 export LSCOLORS=gxfxaxdxcxegedabagacad

  7. Mac终端命令行提示符格式更改方法

    内容提要: 主要是通过~/.bash_profile文件更改环境变量PS1,修改命令行提示符的显示格式,并展示不同颜色. 本文介绍了默认设置的缺陷,以及需要用到的基础知识,最后介绍了更改命令行提示符格 ...

  8. ubuntu终端颜色配置

    对于刚接触ubuntu的同学们,打开终端(ctrl+alt+T),会发现里面都是一个颜色,不管是用户名.主机名还是命令都是白色,当然,用 ls 列出文件的时候是会多一种颜色的.即使这样,对开发人员来说 ...

  9. Mac终端ls颜色设置

    mac自带的终端是款非常好用的ssh工具,但ls命令下文件与文件夹都是单一的颜色,为了更好区分,作出修改. 终端默认背景颜色为白色,(终端->偏好设置->描述文本),可修改背景颜色与字体大 ...

随机推荐

  1. Link-based Classification相关数据集

    Link-based Classification相关数据集 Datasets Document Classification Datasets: CiteSeer: The CiteSeer dat ...

  2. SWT将系统图标保存为本地文件

    public class SWTImage {     public static void main(String[] args) {         final Display display = ...

  3. js利用时间戳动态显示系统时间距指定时间的时间差

    function dateTimes(times) { var d = new Date(times * 1000); var date = (d.getFullYear()) + "-&q ...

  4. SQL宝典

    SQL Server 数据库的高级操作 (1) 批处理 (2) 变量 (3) 逻辑控制 (4) 函数 (5) 高级查询 */ (1)批处理 将多条SQL语句作为一个整体去编译,生成一个执行计划,然后, ...

  5. 拉格朗日乘子法(Lagrange multiplier)和KKT条件

    拉格朗日乘子法: KKT条件:

  6. Torch-RNN运行过程中的坑 [0](一些基础概念)

    0.Lua & LuaJIT简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua 是巴 ...

  7. HTTP请求的过程&HTTP/1.0和HTTP/1.1的区别&HTTP怎么处理长连接

    http://www.cnblogs.com/GumpYan/p/5821193.html

  8. 使用sendmail来发邮件

    安装sendEmail sendEmail是一个免费.轻量级.命令行的SMTP邮件客户端. 如果你需要使用命令行方式发送邮件,那么sendEmail是非常完美的选择:使用简单.功能强大. wget - ...

  9. 《从零开始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式

    原创文章,欢迎转载.转载请注明:关东升的博客 什么是设计模式.设计模式是在特定场景下对特定问题的解决方案,这些解决方案是经过反复论证和测试总结出来的.实际上,除了软件设计,设计模式也被广泛应用于其他领 ...

  10. 基于kubernetes集群的Vitess最佳实践

    概要 本文主要说明基于kubernetes集群部署并使用Vitess; 本文假定用户已经具备了kubernetes集群使用环境,如果不具备请先参阅基于minikube的kubernetes集群搭建, ...