终端颜色设置

转载 命令行终端颜色设置

Linux给人最大的享受就是可以根据个人喜好去定制令自己舒服的系统配置,像终端颜色的设置就是一个典型的例子。

图1 系统默认状态下的终端显示

  在没有经过自定义配置的终端下工作久了,难免容易疲劳,因为所有输入输出都是一个颜色,对查找一些命令的执行结果很不方便。除了颜色,默认终端配置下的长
长的路径名也是一个让人比较蛋疼的地方。经过网上一番资料查找,才知道,原来对终端的配置,可以写到不同的文件之中,例如:~/.bashrc、/etc
/bash.bashrc、/etc/profile这几个文件。但是,这些文件的作用又不尽相同,用户在进行配置之前必须先了解各个文件的作用时

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc
/profile.d目录的配置文件中搜集shell的设置.此文件默认调用/etc/bash.bashrc文件。

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash
shell被打开时,该文件被读取.

~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,

文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

~/.bashrc:该文件包含专用于你的bash
shell的bash信息。

~/.bash_logout:当每次退出系统(退出bash
shell)时,执行该文件.

弄清楚几个文件的相互关系以及各自作用后,我们可以明白的是:针对于用户的配置,应该将配置信息写入~/.bashrc文件。我个人认为默认
终端配置的不足之处有两个:1.没有使用不同的颜色以突出不同的内容;2.路径名太长导致有的时候输入的命令需要在新的一行显示。以下就通过解决这两个问
题来完成本文。

1.颜色配置

    为了设置终端颜色,我们需要对~/.bashrc文件中的PS1变量进行定制。首先通过“gedit
~/.bashrc“命令打开文件,找到PS1变量所在位置:

图2
.bashrc文件中的PS1变量

这几句代码相信大家不难理解吧,简单地说就是:在颜色模式打开的情况下,PS1变量代表的内容就是用户名+主机名+路径名(长路径)+
$。

以下对PS1变量的设置进行具体分析:

首先我们要知道如下几张表:

前景            背景             颜色

---------------------------------------

30                40               黑色

31                41               紅色

32                42               綠色

33                43               黃色

34                44               藍色

35                45               紫紅色

36                46               青藍色

37                47               白色

1        
透明色

代码             意义

-------------------------

0                 OFF

1                 高亮显示

4                 underline

5                 闪烁

7                 反白显示

8                 不可见

序列说

\a ASCII响铃字符(也可以键入 \007)

\d "Wed Sep
06"格式的日期

\e ASCII转义字符(也可以键入 \033)

\h 主机
名的第一部分(如 "mybox")

\H 主机
的全称(如 "mybox.mydomain.com")

\j 在此 shell中通过按 ^Z挂起的进程数

\l 此 shell的终端设备名
(如 "ttyp4")

\n 换行

\r 回车

\s shell的名称(如 "bash")

\t 24小时制时间(如 "23:01:01")

\T 12小时制时间(如 "11:01:01")

\@ 带有 am/pm的 12小时制时间

\u 用户

\v bash的版本(如 2.04)

\V Bash版本(包括补丁级别) ?/td>;

\w 当前
工作目录(如 "/home/drobbins")

\W 当前
工作目录的“基名 (basename)”(如 "drobbins")

\! 当前
命令在历史缓冲区中的位置

\# 命令
编号(只要您键入内容,它就会在每次提示时累加)

\$ 如果
您不是超级用户 (root),则插入一个 "$";如果您是超级用户,则显示一个 "#"

\xxx 
入一个用三位数 xxx(用零代替未使用的数字,如 "/007")表示的 ASCII 字符

\\ 反斜

\[这个序列应该出现
在不移动光标的字符序列(如颜色转义序列)之前。它使 bash能够正确计算自动换行。

\] 这个序列应该出现在非打印字符序列之后。

在对以上知识有了基本了解之后,我们就可以进行实际操作了。首先在终端中使用命令“cp ~/.bashrc
~/.bashrc.backup”对配置文件进行备份(这里提醒各位,在Linux中,如果需要对配置文件之类的东西进行修改的话,最好进行备份,以防
出错之后导致系统无法登录之类的问题),然后“gedit
~/.bashrc"打开文件,找到PS1变量设置的代码,注释之(在每一行代码前插入注释符号”#“)。在文件的末尾加上”PS1=‘\[email protected]\h:\w\$
‘“(这是终端的默认设置,即不加任何颜色):

完成以上操作后保存并退出GEdit编辑器,回到终端后输入“source
~/.bashrc”,发现显示用户信息的地方没什么变化,说明刚才的设置与默认终端设置一致。

而接下来,我们就需要对显示的信息的字体颜色进行设置,首先看一下颜色是如何设置的:

颜色的设置公式

颜色=\033[代码;前景;背景m

如:\033[1;32;40m表示高亮显示字体为绿色,背景色为黑色(颜色定义见本文前面的表格)

注意:

要将全部非打印字符用专用的 bash 转义序列 "\["和 "\]"括起来。这两个序列通知 bash,被括起来的字符不占用行上的任何空间,这样就使自动换行能够继续正常工作。

这点很关键要不然等你设好了颜色,你的终端换行会乱七八糟

现在对上边的PS1变量进行颜色的设置,即在需要更改颜色的地方插入颜色值,比如我们让用户名以红色显示的命令应该是:

PS1=‘\[\033[1;31;40m\]\[email protected]\h:\w\$

同样对.bashrc文件进行修改后source一下,应该看到的结果如下:

事实上我们并不是想要所有信息的显示颜色都一样,所以我们要想办法让信息显示以不同颜色展示。这里大家可能会注意到,颜色设置的作用范围是从当前设置命令
到下一颜色设置命令的,也就是说,如果我们只在\u前设置了颜色,那么终端的字体应该都是红色的,就像下边一样,不仅信息项是红色的,就连输入命令都是红
色的:

为此,我们需要在@符号前面插入新的颜色值以防止整个信息项以红色显示,修改后的PS1变量为:

PS1=‘\[\033[1;31;40m\]\u\[\033[00m\]@\h:\w\$

同样source一下,结果出来了:

明白了对PS1变量进行设置的原理之后,用户就可以根据自己的需要随心所欲地设置PS1变量了,比如在PS1变量中插入字符串,或者为每个信息项设置不同
的颜色,或者控制信息栏显示的内容:

我们可以让用户名带下划线,路径以白色显示,并且美元符号以绿色显示,命令则以蓝色显示:

PS1=‘\[\033[4;31;40m\]\u\[\033[00m\]@\h:\[\033[37;40m\]\w\[\033[32;40m\]\$
\[\033[34;40m\]‘

source一下,效果如下:

至此,终端的颜色设置问题已经解决,以下解决路径名问题。

2.终端中长路径名问题

有时候在终端需要连续打开几层的文件夹才能访问到我们所需的文件,而这个时候在终端中显示的路径名就像是一条长长的尾巴,有没有什么好的办法使终端只显示
用户当前的工作目录的名字呢?其实在前边的序列说明中已经提及,我们可以在PS1变量设置终端只显示工作目录的基名,即将PS1变量中的\w的小写的w换
成大写的W,修改后的PS1变量为:

PS1=‘\[\033[4;31;40m\]\u\[\033[00m\]@\h:\[\033[37;40m\]\W\[\033[32;40m\]\$
\[\033[34;40m\]‘

下面通过图片说明二者的效果:

可以发现,经过修改PS1变量的值之后,终端将只显示当前工作目录的基名了~。

最后,综合以上所说,分享一下我的PS1变量,我的变量里边是设置为不显示主机名并且显示短路径名的:

PS1=‘${debian_chroot:+($debian_chroot)}\[\033[01;04;32m\]\u\[\033[00m\]:\[\033[01;37m\]\W\[\033[31m\]\$
\[\033[00m\]‘

最后,可能各位还会发现,如果打开新的终端,用户定义的配置并没有显示出来,而还是显示默认的配置。

这个时候可以通过source
命令去手动加载.bashrc文件,这时候,我们所设置的配置又回来了。

当然,终端作为我们在系统之中常用的工具之一,如果每次打开终端都要source一次,那岂不是蛋疼死了?回到文章开头的地方,我们说/etc/profile文件从
/etc/profile.d目录的配置文件中搜集shell的设置.此文件默认调用/etc/bashrc文件,于是我们可以打开profile文件看一看:

“sudo gedit
/etc/bashrc”(注意这里需要加上sudo!)

可以看到,在文件中有一句调用/etc/bash.bashrc文件的代码,所以可以推断,前文所说的profile文件自动加载bash.bashrc
文件,事实上就是由代码实现的,于是我们同样地可以在这里添加一句新的代码,以使profile自动加载用户的.bashrc文件,以此实现我们不需每次
打开终端都要source的需求。

保存之后关闭编辑器,新打开一个终端,可以发现,我们之前的配置已经能够自动加载了。

3.ls命令设置

在终端一个常用的命令就是ls命令了,我们可以通过在.bashrc文件中设置alias以实现ls命令的一些自定义设置:

alias其实是相当于一个命令引用的东西,例如最后一句,每当你在终端里边输入ls命令,终端会根据.bashrc文件中的alias的设置查找到引用
的命令:ls
--color=auto,所以你每次输入“ls”其实就相当于输入了“ls
--color=auto”,而这句命令的作用是显示当前目录的可见文件,并且以颜色区分不同类型的文件,比如文件夹和普通文件。

最后一个值得一提的就是一个小建议了,之前看到的我的终端都是黑底的,其实用户可以直接在终端中设置首选项以实现半透明背景,或者是以一张图片作为背景也
可以:

?

原文地址:https://www.cnblogs.com/zhile/p/8818327.html

时间: 2024-10-03 14:14:53

终端颜色设置的相关文章

ubuntu终端颜色设置

Linux给人最大的享受就是可以根据个人喜好去定制令自己舒服的系统配置,像终端颜色的设置就是一个典型的例子. 图1 系统默认状态下的终端显示 在没有经过自定义配置的终端下工作久了,难免容易疲劳,因为所有输入输出都是一个颜色,对查找一些命令的执行结果很不方便.除了颜色,默认终端配置下的长长的路径名也是一个让人比较蛋疼的地方.经过网上一番资料查找,才知道,原来对终端的配置,可以写到不同的文件之中,例如:-/.bashrc./etc /bash.bashrc./etc/profile这几个文件.但是,

python终端颜色设置

1.颜色定义说明 格式:\033[显示方式;前景色;背景色m   前景色 背景色 颜色 --------------------------------------- 30 40  黑色 31 41  红色 32 42  绿色 33 43  黃色 34 44  蓝色 35 45  紫红色 36 46  青蓝色 37 47  白色   显示方式 意义 ------------------------- 0 终端默认设置 1 高亮显示 4 使用下划线 5 闪烁 7 反白显示 8 不可见  例子: \

ubuntu终端颜色配置

对于刚接触ubuntu的同学们,打开终端(ctrl+alt+T),会发现里面都是一个颜色,不管是用户名.主机名还是命令都是白色,当然,用 ls 列出文件的时候是会多一种颜色的.即使这样,对开发人员来说,还是不高效的,因为有时候你需要去几十行甚至上百行代码里面去找一些你运行过的命令或你想要的信息.因此将终端(Terminal)配色变的非常重要. 1.首先在终端里面用 gedit 打开配置文件(~/.bashrc),如: $ gedit ~/.bashrc 2.在最后添加如下代码: PS1='${d

Linux 终端字符颜色设置

我们在编写程序的时候,通常需要终端对输出显示红色或者绿色等各种颜色,以便更加清楚的对用户做出提示.下面是Linux系统终端颜色的设置方式: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关,shell,python,perl, C, C++等均可以调用. 转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, 等价于用八进制表示的 33). 显示格式:    \033[显示方式;前景色;背景色m 其中显示方式

linux终端界面的字颜色设置

目录 目录 说明 PS1 颜色语法 保存设置 说明 在网上找了好多资料都不是很详细,要不就是语法有错误. 所以弄了好久才整明白了,写下来方便后面的人学习. 本人linux虚拟机版本为CentOs 6.5 其他的版本的可能又细微区别哈. PS1 PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置.在终端输入命令:echo $PS1,就会输出PS1的定义: PS1='[\[email protected]\h \W]$ ' linux默认的命令行提示信息为:[当前用户的账号名称@主

Linux下PS1终端下的颜色设置

在linux中的終端裏面輸入命令,由於都是黑體白紙,總是不知道那行是自己輸入的命令,哪些是命令的結果. 於是上網搜了下,原來要去修改/etc/bashrc全局配置文件或者是~/.bashrc文件. 1.PS1 要修改linux终端命令行颜色,我们需要用到PS1,PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置.在终端输入命令:#set,即可在输出中找到关于PS1的定义如下: PS1='[\[email protected]\h \W]\$ ' PS1的定义中个常用的参数的含义

Python设置终端颜色

转义序列 通过转义序列来设置: \033[显示方式;前景色;背景色m 显示方式: 值 描述 0 默认值 1 加粗 22 非粗体 4 下划线 24 非下划线 5 闪烁 25 非闪烁 7 反显 27 非反显 前景色与背景色 前景色 背景色 描述 30 40 黑色 31 41 红色 32 42 绿色 33 43 黄色 34 44 蓝色 35 45 洋红 36 46 青色 37 47 白色 例子 print('\033[1;31;46m') # 设置字体加粗,颜色是红色,背景色是青色 print('\0

Linux终端提示符颜色设置

将以下语句添加到用户目录下的 .bashrc 文件中,然后执行 source .bashrc 使其立即生效. PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$' 标识符列表:<常用的>\u :当前用户的账号名称\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略\H :完整的主机名称.例如:

linux 终端颜色代码

linux 终端颜色代码 echo -e "\033[背景;字体颜色m 字符串\033[0m" eg : echo -e "\033[30m 黑色字 \033[0m" 字体颜色(30-37) ------------------ 背景颜色(40-47) ------------------ 特色功能 ------------------ \33[0m 关闭所有属性 \33[1m 设置高亮度 \33[4m 下划线 \33[5m 闪烁 \33[7m 反显 \33[8m