如何成为一个UNIX系统的“好色”之徒

首先熟悉颜色代码的“通用”表示:

对于两位的数字:

第一位数字为3表示定义的是前景色, 为4表示背景色。

第二位数字定义具体的颜色. 1 为Red, 2为Green, 3为Blue, 0表示黑色。

举例: 31;40m 表示前景为红色, 背景色为黑色。

前景背景色之间用;来分隔. 以字符m表示定义的结束, 如果没有前景或背景的定义则沿用当前的设置。单个的数字0表示是较暗的颜色, 为1表示是较亮的颜色, 这个较亮较暗都是指前景色而言。

以上所说的"通用"是一般的字符终端的驱动所理解的颜色代码的表示法, 当然, 颜色表示必需是一个比较少会出现的特殊字符序列开始的. 这个序列是:

[[ 其中^[的ASCII的27, 也就是通过由Escape输入的值, 在终端命令行上, 需要用〈C-V〉ESC 来输入它。

下面是我们可以在哪些方面变得好色:

1. 命令行的提示字符串

在这里定义颜色千万要注意用 [表示特殊序列的开始, 用]表示特殊序列的结束, 否则终端驱动会错误地计算提示字符串应该占用多少个字符的空间, 因为象 ^[[31;40m 这么多字符其实并不占用屏幕上的输出空间, 其目的只是改变颜色而已。

2. ls --color

初步好色的人才会老老实实地输入长长的 --color, 老色鬼早就用alias把自己隐藏起来了。

具体什么文件用什么颜色显示要看 LS_COLORS环境变量的内容了, 这个环境变量内容实在是长, 不过定义它不必一个一个敲进去, dircolors 命令可以从 /etc/DIR_COLORS 中读取一个可读形式的颜色定制方案, 然后转换成一个压缩版的环境变量, 注意dircolors的输出是一个命令, 这个命令本身需要你的当前shell去执行才会生效。

需要 eval "$(dircolors /etc/DIR_COLORS)" 才会在你的当前环境中加入LS_COLORS变量. 在子SHELL中执行它将不会惠及父进程。

3. grep --color

我曾经设想过为黑白时代的grep加入高亮其颜色支持的功能, 不想已经先于我被实现出来了. 这可能不是POSIX对grep规范的一部分, 但实在是好处多多, 尤其对于初涉正则表达式的人来说, 它不但让你得到匹配的行, 还以醒目的方式告诉你这一行的哪个部分匹配到了你的正则表达式, 因而会被匹配到grep -P 'ab+' <<输出的是abbbbbbbbbbbbb

从头到尾都是红的

输出的也是

abbbbbbbbbbbbb

只有开头的ab两个字符才是红色的。

4. 为任意的输出着色

grep只会显示那些匹配的行, 或不匹配的行, 所以它无法同时显示那些不匹配的行, 比如, 下面是cvs的输出:

时间: 2024-12-02 19:38:36

如何成为一个UNIX系统的“好色”之徒的相关文章

《UNIX环境高级编程(第3版)》——2.3 UNIX系统实现

2.3 UNIX系统实现 上一节说明了3个由各自独立的组织所制定的标准:ISO C.IEEE POSIX以及Single UNIX Specification.但是,标准只是接口的规范.这些标准是如何与现实世界相关连的呢?这些标准由厂商采用,然后转变成具体实现.本书中我们不仅对这些标准感兴趣,还对它们的具体实现感兴趣. 在McKusick等[1996]的1.1节中给出了UNIX系统家族树的详细历史.UNIX的各种版本和变体都起源于在PDP-11系统上运行的UNIX分时系统第6版(1976年)和第

nwcc 0.8.2发布 Unix系统的C语言编译器

nwcc是一个Unix系统的C语言编译器.其设计目标是支持的系统包括:Linux, Mac OS X, BSD,and Solaris on 80x86 (with nasm and gas),Linux,Mac OS X, and FreeBSD on AMD64 (with yasm and gas),Solaris and Linux on SPARC (64-bit),AIX and Linux on PowerPC (32- and 64-bit),and IRIX on MIPS (

如何判断Unix系统的一个库文件是32位还是64位的

如何判断Unix系统的一个库文件是32位还是64位的 某些时候,我们需要知道操作系统的位数,或者配置插件的时候需要知道主程序的位数(例如配置apache插件的时候需要知道apache的位数以便配置相应的插件),最简单的办法就是执行file命令,如: file 命令 Linux: # file libnss1_files-2.2.4.so  libnss1_files-2.2.4.so: ELF 32-bit LSB shared object, Intel 80386, version 1, n

实用:使用PHP脚本修改Linux或Unix系统口令

本文介绍如何使用PHP脚本修改Linux或Unix系统口令. 需要的工具和安装: 你必须安装下面的工具和软件: – 修改口令的Shell脚本; – Sudo 访问权; – Apache or Lighttpd web 服务器; – PHP服务端程序. 步骤1: 安装可以修改用户口令的shell脚本 该脚本可以实际用于修改Linux用户的口令(已在Linux和FreeBSD测试). 例子: shell脚本代码 #!/bin/sh # \ exec expect -f "$0″ ${1+"

Unix/类Unix系统ftp服务器proftpd安装配置指南

ProFTPD是一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,它是在自由软件基金会的版权声明(GPL)下开发.发布的免费软件,也就是说任何人只要遵守GPL版权声明,都可以随意修改源始码. ProFTPD设计目标是实现一个安全且易于设定的FTP Server.目前Unix或类Unix平台上 FTP Server十分有限,最常使用的恐怕就是wu-ftpd了.虽然wu-ftpd有着极佳的效能同时也是一套很好的软件,然而它却欠缺了许多Win32平台上FTP

Unix系统sar命令详解

在使用UNIX操作系统的过程中,我们常常会用到各种各样的问题,比如系统运行速度突然变慢,系统容易死机或者主机所带的终端常出现死机,这时我们常常猜测,是硬盘空间太小,还是内存不足?I/O出现瓶颈,或者是系统的核心参数出了问题?这时,我们应该考虑使用系统给我们提供的sar命令来对系统作一个了解,该命令是系统维护的重要工具,主要帮助我们掌握系统资源的使用情况,特别是内存和CPU 的使用情况,是UNIX系统使用者应该掌握的工具之一. sar 命令行的常用格式: sar [options] [-A] [-

Unix系统stty命令用法详解

UNIX系统的命令很多,下面讲解stty. 该命令是一个用来改变并打印终端行设置的常用命令. 1.stty(set tty,设置tty)命令用于检查和修改当前注册的终端的通信参数. UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项. 可以在stty命令中使用-a查看当前注册终端的设置情况. $ stty -a Speed 9600 baud; line =0;intr= DEL;quit = ^;erase = ^h;kill =^U;

Unix系统下Find命令的应用

Find命令是Unix操作系统中一个很强大的工具.这个命令除了可以用来定位文件外,还有其他许多 很实用的用途.如可以用来备份文件.交互式删除文件.列举文件清单等等.只要灵活应用这些功能的 话,那么对于系统工程师的日常工作就能够起到事半功倍的效果. 一.利用Find命令对文件进行备份. 如在Unix操作系统中有一个用户为oracle.系统会在Home目录下自动为这个用户创建一个子目录 Oracle.现在用户希望能够对自己目录下的文件进行自动备份,以防止文件的以外丢失.如下图所示, 现在系统工程师准

SCO UNIX系统root密码丢失的处理

在重要的计算机应用领域中,UNIX系统起着主导作用.UNIX具有很强的可伸缩性.健壮性,完全支持Internet和良好的用户界面,是其它非UNIX系统无法做到和替代的.目前,UNIX覆盖了大多数银行.电信.保险.证券.铁路等系统应用,即使在Internet应用方面,使用的也绝大多数是各计算机厂商提供的各种UNIX系统,可以说UNIX无处不在. SCO公司的SCO UNIX系列产品在全球市场份额所占的比重相当大.由于SCO UNIX不依赖 于任何硬件平台,在基于Intel公司的芯片的个人计算机和网