资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Linux命令行彩色输出,linux输出颜色

在RedHat Linux的 Vi编辑器打什么命令能够显示整个编辑器内容彩色的?

整个vi的界面都是可以设置的。方法如下:在VI编辑器的命令模式下输入set

在武胜等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、网站建设 网站设计制作按需网站开发,公司网站建设,企业网站建设,成都品牌网站建设,全网整合营销推广,成都外贸网站建设,武胜网站建设费用合理。

all,里面是全部的参数设置,你可以重新按自己想要的设置!

Linux 字体颜色设置

在linux中,我们在编辑时需要对文档编辑或者一些信息的显示加上颜色,增强阅读的效果

格式: echo -e "\033[字体颜色;字背景颜色m字符串\033[0m"

要显示什么颜色,优先是先判断位置,按语法上来说,应该是先字体色,然后是背景色,但是字体色的地方数值为43,所以判断为背景的颜色,而在后面的31本应该是背景色,结果数值31位字体的颜色,所以显示的效果是字体的颜色为红色,而不是背景红色,假设这个31是数值41,则表示背景的为红色,整体的效果就是红色背景,字体处没有颜色,为默认的白色,且效果是闪烁。

其中设置颜色的格式为:\033[ ; m …… \033[0m,其中ascii code是对颜色调用的始末.也可以表示为\e[F;Bm…….\e[0m

字背景颜色范围: 40--49                  字颜色: 30--39

例如显示红色,其中红色^[[31mred^[[0m其中^[是在插入编辑模式下按键进去额ctr+v+[这三个按键输入的。

假设写在文档tt1写入对应的语句来查看,通过cat  tt1验证效果

^[[31mred^[[0m :表示对应的字是红色字体,没有底色,如下截图

^[[31mred^[[44m:表示红色字体,底色为紫红色。假设写在文档tt1,后面cat tt1.这个屏幕底色都是蓝色,字都是红色如下截图

^[[31;44mred^[[0m:表示红色字体,字和屏幕的底色为蓝色,背景没有底色,和^[[31mred^[[44m效果一样。如下截图

^[[31;44mred^[[44m:表示红色字体,底色都是蓝色

在命令行里输入命令:echo -e '\e[43;31;4mmagedu\e[0m',得到如下的效果

PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。在终端输入命令:echo $PS1,就会输出PS1的定义:

默认的PS1变量值为 : PS1="[\u@\h \W]$"

PS1的定义中个常用的参数的含义如下:

给PS1赋值如下:

PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"

这里需要注意,颜色的结束调用符号,要放在最后面,否则当使用命令history查看历史命令时,会出现各种异常的显示

正确的结果得到的结果如下图

当把结束符调整到$前面,如PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\[\e[0m\\$",使用history查找的时候出现了如下的异常显示

注意,这里赋值的时候要用单引号才能得到要的效果,只是单纯改变颜色,其他值不改变,如果赋值用双引号,如下

错误写法:PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\$"

得到的效果如下:

如果是root时,提示符为:# ,普通用户则为:$,但是双引号后root的提示符为$,是不对的

解决办法:如果用双引号,需要再\$前再加一个\,语句如下

PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"

赋值为PS1='\[\e[43m\][\[\e[31m\]\u@\[\e[34m\]\h \W]\$\e[0m'

效果如下截图

这个例子,我们可以明显看出,\e[颜色值m这个是说明接下来的颜色从这里开始是什么颜色,\e[0m说明的是颜色的结束位置,

这里需要注意的是,如果没有通过\[   \]对每一个颜色进行界定,使用过程,如上翻历史页,就会出现显示异常。

将设置好的PS1变量写到家目录下的.bashrc 里面,这样后面开启的终端都有效。

$ vim .bashrc

打开后添加一行

PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\\$"

保存退出再次登录时显示的颜色也会是我们设定的值了。

改成彩色显示怎么将linux命令行的命令行

现介绍一种修改显示颜色的方法:

1、将/etc/DIR_COLORS文件cp到~/下,并改名为.dir_colors。

2、编辑.dir_colors文件,找到“DIR01;34#directory”,将34改为36。

你可以找到文件的两行注释:

#Textcolorcodes:

#30=black31=red32=green33=yellow34=blue35=magenta36=cyan37=white

按照颜色对应的数字,你还可以把目录显示颜色改成其他的。

同样其他的显示效果(包括背景)也可以参照说明进行修改。

这样你就可以定制自己的linux下命令行方式下的个性化显示效果了。

命令行方式中,默认的目录显示颜色为蓝色,在黑色背景下难以看清。现介绍一种修改显示颜色的方法:

1、将/etc/DIR_COLORS文件cp到~/下,并改名为.dir_colors。

2、编辑.dir_colors文件,找到“DIR01;34#directory”,将34改为36。

你可以找到文件的两行注释:

#Textcolorcodes:

#30=black31=red32=green33=yellow34=blue35=magenta36=cyan37=white

按照颜色对应的数字,你还可以把目录显示颜色改成其他的。

同样其他的显示效果(包括背景)也可以参照说明进行修改。

这样你就可以定制自己的linux下命令行方式下的个性化显示效果了。

如何在Linux终端里用Shell和C输出带颜色的文字

来自网页我复制的

我们知道,使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本输出呢?答案并不复杂,不管是用shell还是C语言。

一、shell下的实现方法

先来讲在shell下,如何实现。用echo命令就可以实现,参看以下例子:

echo -e “\\033[32mHello, world!”

当你在终端里敲下这条命令后,是不是发现系统用绿色输出了”Hello,world!”,不止如此,连之后的命令提示符都变成了绿色?不要着急,听我继续

说。echo命令-e选项的作用是激活终端对反斜线转义符(即\\)的解释。引号内\\033用于引导非常规字符序列,在这里的作用就是引导设置输出属

性,后边的[32m就是将前景色设置为绿色,字母m表示设置的属性类别,数字代表属性值。设置可以单独使用,例如:

echo -e “\\033[0m”

这行命令的作用是恢复属性为默认值,也就是说0m设置项用于恢复默认值。现在你的终端是不是又一切正常了?

理解了这些,剩下的就简单了。用这种命令,除了设置文本前景色,还可以设置很多属性。下边列出其他的设置项:

————————————————————————–

\\033[0m 关闭所有属性

\\033[1m 设置高亮度

\\033[4m 下划线

\\033[5m 闪烁

\\033[7m 反显

\\033[8m 消隐

\\033[30m 至 \\33[37m 设置前景色

\\033[40m 至 \\33[47m 设置背景色

\\033[nA 光标上移n行

\\033[nB 光标下移n行

\\033[nC 光标右移n行

\\033[nD 光标左移n行

\\033[y;xH设置光标位置

\\033[2J 清屏

\\033[K 清除从光标到行尾的内容

\\033[s 保存光标位置

\\033[u 恢复光标位置

\\033[?25l 隐藏光标

\\033[?25h 显示光标

————————————————————————–

各数字所代表的颜色如下:

字背景颜色范围:40—-49

40:黑

41:深红

42:绿

43:黄色

44:蓝色

45:紫色

46:深绿

47:白色

字颜色:30———–39

30:黑

31:红

32:绿

33:黄

34:蓝色

35:紫色

36:深绿

37:白色

另外,同类的多种设置项可以组合在一起,中间用分号(;)隔开。如下:

echo -e “\\033[20;1H\\033[1;4;32mHello,world\\033[0m”

这行命令首先\\033[20;1H将光标移动到终端第20行第1列,之后的\\033[1;4;32m将文本属性设置为高亮、带下划线且颜色为绿色,然

后输出Hello,world;最后\\033[0m将终端属性恢复为默认值,这样就不会看到连命令完成后的命令提示符也变了样儿了。

通过以上各种命令的组合就可以实现对终端输出地复杂控制。

二、如何在C编程中实现?

理解了以上在Shell中的实现方法,关于在C中如何实现就很简单了。可以说只需要用printf函数代替上边的echo -e就OK了。参见下例:

int color = 32;

printf(“\\033[20;1H\\033[1;4;%dmHello, world.\\033[0m”, color);

这个例子类似上边shell中最后那个例子,只是这里颜色值通过变量color来指定(当然,也可以直接指定)。

三、联想

看到这里你可能会想,是不是在其他编程语言里也可以用类似的方法实现对终端输出的控制呢?答案是肯定的!比如在python中,可以如下输出:

color=32

print “\\033[20;1H\\033[1;4;%dHello, world.\\033[0m”%color

这个例子的效果跟上边C的例子是相同的。


网页名称:Linux命令行彩色输出,linux输出颜色
文章位置:http://cdkjz.cn/article/dsidghi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220