设命令颜色linux linux命令行背景颜色

如何配置Linux命令行的字体和背景颜色

我们使用Linux的时候,经常需要使用命令行。Linux命令行的背景默认是白色的,字体默认是黑色,14像素的。那么我们如何根据自己的喜好配置Linux命令行的字体和背景颜色呢?下面我给大家分享一下。

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

工具/材料

Linux Terminal

配置字体 01

首先进入Linux系统以后点击左上角的Applications,然后选择Terminal选项,如下图所示

02

接下来在打开的命令行中点击顶部的Edit菜单,然后选择Profile Preferences选项,如下图所示

03

进入Profile Preferences设置界面以后,定位到General页,去掉使用系统字体的复选框,然后点击Font后面的按钮,如下图所示

04

在弹出的选择命令行字体界面中我们选择自己喜欢的字体,然后设置字体大小即可,如下图所示

配置背景 01

背景的配置需要首先定位到Colors页卡,然后去掉系统背景的复选框,如下图所示

02

接下来点击Background Color后面的按钮进行背景色的配置,如下图所示

03

在弹出的选择命令行背景颜色的界面中我们选择一个自己喜好的颜色,点击Select按钮即可,如下图所示

04

最后回到命令行界面,我们就可以看到背景颜色已经发生了改变,如下图所示

perl脚本在linux里,只显示带颜色的命令

对于Linux管理员来说,grep是日常最常用的命令,可以把匹配的字符输出,同样可以输出颜色。

# grep --color 'test' /var/log/maillog

无聊练功:用perl 实现grep --color

# vi colorgrep

#!/usr/bin/perl

use Term::ANSIColor;

my $test;

if (@ARGV != 2){

die "Please use (colorgrep 'some key word' filename)\n";

}

$test = shift @ARGV;

while(){

if(/$test/i){

print "$`";

print color "bold red";

print "$";

print color 'reset';

print "$'";

}

}

这里调用了Term::ANSIColor 函数 color 有以下的参数:

clear, reset, dark, bold, underline, underscore, blink, reverse, concealed, black, red, green, yellow, blue, magenta, cyan, white, on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, and on_white

还有以下的简化使用方法

2) use Term::ANSIColor qw(:constants);

如果使用这种方法,可以直接把颜色属性放在要输出的问题前面,从而简化输出步骤。这些颜色属性有:

CLEAR, RESET, BOLD, DARK, UNDERLINE, UNDERSCORE, BLINK, REVERSE, CONCEALED, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ON_BLACK, ON_RED, ON_GREEN, ON_YELLOW, ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE

等。

例如:

print BOLD BLUE ON_WHITE “Text”, RESET, “\n”;

如果你打印完之后想清除掉字符串的格式,一定要记得在最后加上一个RESET的属性值。

例如:

use Term::ANSIColor qw(:constants);

print BOLD, BLUE, “This text is in bold blue.\n”, RESET;

3) $Term::ANSIColor::AUTORESET = 1;

对于2)的方法,如果你不想在每条打印语句后面加上RESET的话,你可以直接把$Term::ANSIColor::AUTORESET的值设为true。这样每次打印完字符,只要你的属性值之间没有逗号,系统将自动帮你清除掉颜色属性。

看一个完整的例子:

use Term::ANSIColor qw(:constants);

$Term::ANSIColor::AUTORESET = 1;

print BOLD BLUE “This text is in bold blue.\n”;

print “This text is normal.\n”;

这三种方法,使用起来各有千秋,可根据要打印的复杂程度选用。

在linux下给grep命令添加颜色

1打开文件,添加如下一段话        

  vim ~/.bashrc   

   alias grep='grep --color'  

2退出保存

source ~/.bashrc  

只有执行grep命令搜索的时候,关键字就会有颜色了

也可以临时查询的时候,添加颜色

ps -ef | grep --color "timer"    

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 linux命令行背景颜色
文章分享:http://hbruida.cn/article/dopjjje.html