linux shell的输出效果修改方法(界面颜色)

文本终端的颜色可以使用“ANSI非常规字符序列”来生成。举例: 
echo -e "\033[44;37;5m ME \033[0m COOL" 
以上命令设置背景成为蓝色,前景白色,闪烁光标,输出字符“ME”,然后重新设置屏幕到缺省设置,输出字符 “COOL”。“e”是命令 echo 的一个可选项,它用于激活特殊字符的解析器。“\033”引导非常规字符序列。“m”意味着设置属性然后结束非常规字符序列,这个例子里真正有效的字符是 “44;37;5” 和“0”。 
修改“44;37;5”可以生成不同颜色的组合,数值和编码的前后顺序没有关系。可以选择的编码如下所示:

编码 颜色/动作 
0 重新设置属性到缺省设置 
1 设置粗体 
2 设置一半亮度(模拟彩色显示器的颜色) 
4 设置下划线(模拟彩色显示器的颜色) 
5 设置闪烁 
7 设置反向图象 
22 设置一般密度 
24 关闭下划线 
25 关闭闪烁 
27 关闭反向图象 
30 设置黑色前景 
31 设置红色前景 
32 设置绿色前景 
33 设置棕色前景 
34 设置蓝色前景 
35 设置紫色前景 
36 设置青色前景 
37 设置白色前景 
38 在缺省的前景颜色上设置下划线 
39 在缺省的前景颜色上关闭下划线 
40 设置黑色背景 
41 设置红色背景 
42 设置绿色背景 
43 设置棕色背景 
44 设置蓝色背景 
45 设置紫色背景 
46 设置青色背景 
47 设置白色背景 
49 设置缺省黑色背景

其他有趣的代码还有: 

\033[2J  清除屏幕 
\033[0q  关闭所有的键盘指示灯 
\033[1q  设置“滚动锁定”指示灯 (Scroll Lock) 
\033[2q  设置“数值锁定”指示灯 (Num Lock) 
\033[3q  设置“大写锁定”指示灯 (Caps Lock) 
\033[15:40H 把关闭移动到第15行,40列 
\007 发蜂鸣生beep 
#######################

RedHat的字体和背景颜色的改变方法:

命令: 
PS1="[\e[32;1m\[email protected]\h \W]\\$" 
或 
export PS1="[\e[32;1m\[email protected]\h \W]\\$" 两者的区别请查看环境变量的相关资料 
解释: 
\e[32;1m:这就是控制字体和背景颜色的转义字符,30~37是字体颜色、40~47是背景颜色 
例子中的32;1m数字的位置是可以对调的如\e[1;32m,如果是在X环境下可以更换一下1的范围0~10,可能有的没用处:0或者不写(\e [0;32m或\e[;32m)显示浅颜色,1:显示高亮 4:加下划线.....如果改后的效果不好,但是又还原不了,那就不写m前面的数字,如\e[32;m,或者直接注销再登陆

\u \h \W:这是一些转义字符,下面详细解释: 
\d :代表日期,格式为weekday month date,例如:"Mon Aug 1" 
\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux 
\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略 
\t :显示时间为24小时格式,如:HH:MM:SS 
\T :显示时间为12小时格式 
\A :显示时间为24小时格式:HH:MM 
\u :当前用户的账号名称 
\v :BASH的版本信息 
\w :完整的工作目录名称。家目录会以 ~代替 
\W :利用basename取得工作目录名称,所以只会列出最后一个目录 
\# :下达的第几个命令 
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$ 
\n :新建一行 
字体并不局限于一个颜色,可以有多个颜色: 
PS1="[\e[32;1m\[email protected]\e[35;1m\h \e[31;1m\W]\\$" 
以上两个命令在注销后再登陆就失效了,用下面方法使其永久生效: 
vi /etc/profile 
在“export PATH .....”下面添加一行:export PS1="[\e[32;1m\[email protected]\h \W]\\$" 
注销再登陆,就成功了,如果没生效,使用source /etc/profile 命令试试,或者直接重启机器。

时间: 2024-11-15 02:12:16

linux shell的输出效果修改方法(界面颜色)的相关文章

linux c程序中获取shell脚本输出的实现方法

linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部

Mac / Linux Shell 批量重命名的方法总览

Linux Shell 批量重命名的方法总览 0.用类似 GPRename 这样的图形软件进行批量重命名 1.删除所有的 .bak 后缀: rename 's/\.bak$//' *.bak 2.把 .jpe 文件后缀修改为 .jpg: rename 's/\.jpe$/\.jpg/' *.jpe 3.把所有文件的文件名改为小写: rename 'y/A-Z/a-z/' * 4.将 abcd.jpg 重命名为 abcd_efg.jpg: for var in *.jpg; do mv "$var

Linux shell逐行读取文件的方法

Linux shell逐行读取文件的方法 在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. 方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE doecho $LINEdone  < $FILENAME}         注释:我习惯把这种方式叫

linux shell 按行循环读入文件方法

转http://blog.csdn.net/hittata/article/details/7042779 #/bin/bash printf "*************************************\n" echo " cat file whiel read line"   cat test.txt |while read line   do   echo $line;   done   printf "***************

Linux Shell脚本之自动修改IP

作为一名Linux SA,日常运维中很多地方都会用到脚本,而服务器的ip一般采用静态ip或者MAC绑定,当然后者比较操作起来相对繁琐,而前者我们可以设置主机名.ip信息.网关等配置.修改成特定的主机名在维护和管理方面也比较方便.如下脚本用途为:修改ip和主机名等相关信息,可以根据实际需求修改,举一反三! #!/bin/sh #auto Change ip netmask gateway scripts #wugk 2012-12-17 cat << EOF ++++++++自动修改ip和主机名

Linux shell if条件语句使用方法

shell if -b    当file存在并且是块文件时返回真-c    当file存在并且是字符文件时返回真-d    当pathname存在并且是一个目录时返回真-e    当pathname指定的文件或目录存在时返回真-f     当file存在并且是正规文件时返回真-g     当由pathname指定的文件或目录存在并且设置了SGID位时返回为真-h     当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效-k     当由pathname指定的文件或目录存在并且设

Linux Shell实战之三 自动修改为静态IP

本脚本主要用于修改IP地址为静态! #!/bin/bash # #Target: Auto Chmod IP Information! #Date: 2015-05-10 #Author: Jacken #QQ:654001593 #QQ Group:170544180 #Version: 1.0 #Only allow define variable shopt -s -o nounset #Define Variable ETHCONFIG='/etc/sysconfig/network-s

QT下实现对Linux Shell调用的几种方法

使用QProcess QThread ============================================ #include <QProcess>int main(){QProcess::execute("ls");return 0;} ============================================   QProcess *poc = new QProcess; poc-> start( "ping 222.20

Linux shell if [ -n ] 正确使用方法

if [ str1 = str2 ]  当两个串有相同内容.长度时为真 if [ str1 != str2 ] 当串str1和str2不等时为真 if [ -n str1 ] 当串的长度大于0时为真(串非空) if [ -z str1 ] 当串的长度为0时为真(空串) if [ str1 ] 当串str1为非空时为真 shell 中利用 -n 来判定字符串非空. 错误用法: ARGS=$* if [ -n $ARGS  ] then print "with argument" fi p