zoukankan      html  css  js  c++  java
  • Linux在ASCII终端下显示彩色字体

    http://blog.chinaunix.net/space.php?uid=1771330&do=blog&id=2863797

    彩色的命令行 —— 使用 ANSI 色彩代码

    摘要:

    在 ANSI 兼容终端(例如 xterm、rxvt、konsole 等)里, 可以用彩色显示文本而不仅仅是黑白。 本文示范了如何使用粗体和彩色的文字。

    概述

    在现实生活中,每一位 Linux 使用者都要面对 Bash。 虽然第一眼看上去非常枯燥,但是又很多方法能够让你的 shell 足够的个性化。 shell 提示符的彩色增强让能够让你的 shell 独一无二, 而且还非常清晰易读。
    在本文中我以 Bash shell 为例。因为在不同的终端里的转义序列不完全相同, 所以在本文中我使用的是 ANSI 终端。

    Shell 的配置

    shell 彩色配置出现在 bash 的个人配置文件 ~/.bashrc 或者是全局配置文件 /etc/bashrc 里面。 可以通过 bashrc 里面的 PS1 变量来设置提示符的外观。
    通常情况下,这个条目看起来应该是这个样子:

    ~/.bashrc: PS1="\s-\v\$ "

    \s 表示 shell 的名称,-\v 表示他的版本号。 在提示符的最后面我们放置了一个 $。这样看起来也许有点乏味, 所以不妨试试下面这种模式——这种模式在大多数 Linux 的发行版本下是默认的设置:

    ~/.bashrc: PS1="\u@\h \w \$ "

    这表示 用户@ 当前目录 $,这个是大部分 Linux 用户都熟悉的 shell 提示符。

    转义序列

    要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。在 shell 里表示为 ^[。这种表示法需要一点时间去适应,也可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。
    要直接在 shell 里面输入转义序列我们需要先按 ctrl-v:CTRL-v ESC

    使用 shell 的颜色

    下面我用一个提示符的例子来解释 shell 的颜色。

    ~/.bashrc: PS1="\[\033[0;32;40m\u@\h:\w\$ \]"

    这样提示符就全部显示成绿色了.

    \033 声明了转义序列的开始,然后是 [ 开始定义颜色。后面的 0 定义了默认的字体宽度。稍后我会介绍其他的可用字符。 转义序列字符串要用 \[ 和 \] 括起来, 防止转义序列的文本显示在 shell 里占用太多的空间。
    下面我们要选择前景色(这里是 32,代表绿色)。背景色的 40 表示黑色。 要是不想让提示符后面的文字也变成绿色,我们用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。前景色和背景色都有 8 种可用的选择。
    可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。
    用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。
    示例:

    ~/.bashrc: PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]"

    这给了我们一个非常多彩的提示符.

    我们使用 export PS1="string" 来测试这些设置, 稍后我们要把这些设置转移到 .bashrc 里面。 现在我的提示符看起来是这个样子:

    PS1="\[\033[1;34;40m[\033[1;31;40m\u@\h:\w\033[1;34;40m]\033[1;37;40m $\033[0;37;0m\] "

     

     

    文本属性

    刚才提到了,在第一个转义序列后面的“0”是提示符的文本的默认颜色设置。对于文本属性来说,这些值是有意义的:0、1、22、4、24、5、25、7、27, 分别表示:默认值、粗体、非粗体、下划线、非下划线、闪烁、非闪烁、 反显、非反显。

  • 相关阅读:
    TFS实现需求工作项自动级联保存
    Oracle PL/SQL Developer集成TFS进行团队脚本文件版本管理
    TFS2017持续集成构建
    TFS 测试用例步骤数据统计
    精细化容量管理的设备成本优化之路
    腾讯Web工程师的前端书单
    React Native For Android 架构初探
    SQL系列(八)—— 分组(group by)
    SQL系列(七)—— 相似(like)
    SQL系列(六)—— 过滤(where)
  • 原文地址:https://www.cnblogs.com/guosj/p/2508004.html
Copyright © 2011-2022 走看看