linux更改终端颜色_如何更改Linux终端的颜色

linux更改终端颜色

您可以使用特殊的ANSI编码设置在Linux终端中添加颜色,可以在终端命令或配置文件中动态添加颜色,也可以在终端仿真器中使用现成的主题。 无论哪种方式,黑色屏幕上的怀旧绿色或琥珀色文字都是完全可选的。 本文演示了如何使Linux随心所欲(彩色或单色)。

终端功能

现代系统通常默认至少使用xterm-256color,但是如果您尝试向终端添加颜色而没有成功,则应检查TERM设置。

从历史上看,Unix终端实际上​​是这样的:物理点位于共享计算机系统的文字端点(终端)上,用户可以在其中键入命令。 它们与电传打字机(这就是为什么今天的Linux中仍具有/ dev / tty设备)不同,后者通常用于远程发出命令。 终端内置了CRT监视器,因此用户可以坐在办公室的终端上直接与大型机交互。 CRT监视器价格昂贵-既要制造又要控制; 使用计算机吐出原始ASCII文本要容易得多,而不必担心抗锯齿和现代计算机工作者认为理所当然的其他优点。 但是,即使在那时,技术的发展仍在Swift发展,并且很快就可以看出,随着新视频显示终端的设计,它们需要新的功能以可选方式提供。

例如,1978年发布的精美VT100支持ANSI颜色,因此,如果用户将终端类型标识为vt100,则计算机可以提供颜色输出,而基本的串行设备可能没有这种选择。 今天,同样的原则适用,并且由TERM 环境变量设置 。 您可以使用echo检查您的TERM定义:


   
   
$ echo $TERM
xterm-256color
 export TERM =xterm-256color 

保存文件,然后重新加载设置:

 $  source ~ / .bashrc 

ANSI颜色代码

现代终端已经继承了ANSI转义序列的“元”功能。 这些是特殊的字符序列,终端将其解释为动作而不是字符。 例如,此序列将屏幕清除到下一个提示:

 $  printf ` \033 [ 2J ` 

这并不能清除您的历史记录; 它只是清除了终端仿真器中的屏幕,因此这是一个安全且具有示范性的ANSI转义序列。

ANSI也具有设置终端颜色的顺序。 例如,键入此代码会将随后的文本更改为绿色:

 $  printf '\033[32m' 

只要您以与计算机相同的方式看到颜色,就可以使用颜色来帮助您记住所登录的系统。 例如,如果您定期通过SSH进入服务器,则可以将服务器提示符设置为绿色,以帮助您一眼将其与本地提示符区分开。 对于绿色提示,请在提示字符前使用绿色的ANSI代码,并以代表正常默认颜色的代码结尾:

 export PS1 = ` printf "\033[32m$ \033[39m" ` 

前景和背景

您不仅可以设置文本的颜色。 使用ANSI代码,您可以控制文本的背景颜色以及一些基本的样式。

例如,使用\ 033 [4m可以使文本带有下划线,或者使用\ 033 [5m可以将其设置为闪烁。 起初这似乎很愚蠢-因为您可能不打算将终端设置为对所有文本加下划线并全天闪烁-但对于选择功能可能很有用。 例如,您可以将shell脚本产生的紧急错误设置为闪烁(作为对用户的警报),或者可以在URL下划线。

供您参考,以下是前景色和背景色代码。 前景颜色在30范围内,背景颜色在40范围内:

颜色 前景 背景
Black \ 033 [30m \ 033 [40m
Red \ 033 [31m \ 033 [41m
Green \ 033 [32m \ 033 [42m
Orange \ 033 [33m \ 033 [43m
Blue \ 033 [34m \ 033 [44m
Magenta \ 033 [35m \ 033 [45m
Cyan \ 033 [36m \ 033 [46m
Light gray \ 033 [37m \ 033 [47m
Fallback to distro's default \ 033 [39m \ 033 [49m

背景还有一些其他颜色:

颜色 背景
Dark gray \ 033 [100m
Light red \ 033 [101m
Light green \ 033 [102m
Yellow \ 033 [103m
Light blue \ 033 [104m
Light purple \ 033 [105m
Teal \ 033 [106m
White \ 033 [107m

永久性

在终端会话中设置颜色只是暂时的,并且是无条件的。 有时效果会持续几行; 这是因为这种设置颜色的方法依赖于printf语句来设置一种模式,该模式仅持续到其他东西覆盖它为止。

终端仿真器通常使用LS_COLORS环境变量的设置获取有关使用哪种颜色的指令,该方法又由dircolors设置填充。 您可以使用echo语句查看当前设置:


   
   
$ echo $LS_COLORS
rs = 0 : di = 38 ; 5 ; 33 : ln = 38 ; 5 ; 51 : mh =00: pi = 40 ;
38 ; 5 ; 11 : so = 38 ; 5 ; 13 : do = 38 ; 5 ; 5 : bd = 48 ; 5 ;
232 ; 38 ; 5 ; 11 : cd = 48 ; 5 ; 232 ; 38 ; 5 ; 3 : or = 48 ;
5 ; 232 ; 38 ; 5 ; 9 : mi =01;05; 37 ; 41 : su = 48 ; 5 ;
196 ; 38 ; 5 ; 15 : sg = 48 ; 5 ; 11 ; 38 ; 5 ; 16 : ca = 48 ; 5 ;
196 ; 38 ; 5 ; 226 : tw = 48 ; 5 ; 10 ; 38 ; 5 ; 16 : ow = 48 ; 5 ;
[ ... ]

或者,您可以直接使用dircolors:


   
   
$ dircolors --print-database
[ ... ]
# image formats
.jpg 01; 35
.jpeg 01; 35
.mjpg 01; 35
.mjpeg 01; 35
.gif 01; 35
.bmp 01; 35
.pbm 01; 35
.tif 01; 35
.tiff 01; 35
[ ... ]

如果看起来很神秘,那是因为。 文件类型后的第一位数字是属性代码,它具有六个选项:

  • 00无
  • 01粗体
  • 04下划线
  • 05眨眼
  • 07反向
  • 08隐蔽

下一位数字是简化形式的颜色代码。 您可以通过获取ANSII代码的最后一位来获取颜色代码(32表示绿色前景,42表示绿色背景; 31或41表示红色,依此类推)。

您的发行版可能会全局设置LS_COLORS,因此系统上的所有用户都继承相同的颜色。 如果您需要一组自定义的颜色,则可以使用dircolors。 首先,生成您的颜色设置的本地副本:

 $  dircolors --print-database > ~ / .dircolors 

根据需要编辑本地列表。 当您对选择感到满意时,请保存文件。 您的颜色设置只是一个数据库,不能直接由ls使用 ,但是您可以使用dircolors获取可用于设置LS_COLORS的shellcode:


   
   
$ dircolors --bourne-shell ~ / .dircolors
LS_COLORS = 'rs=0:di=01;34:ln=01;36:mh=00:
pi=40;33:so=01;35:do=01;35:bd=40;33;01:
cd=40;33;01:or=40;31;01:mi=00:su=37;41:
sg=30;43:ca=30;41:tw=30;42:ow=34;
[...]
export LS_COLORS

将输出复制并粘贴到〜/ .bashrc文件中,然后重新加载。 或者,您可以将该输出直接转储到.bashrc文件中并重新加载。


   
   
$ dircolors --bourne-shell ~ / .dircolors >> ~ / .bashrc
$ source ~ / .bashrc

您还可以使Bash在启动时解析.dircolors,而不是手动进行转换。 实际上,您可能不会经常更改颜色,因此这可能过于激进,但是如果您打算大量更改配色方案,那么这是一个选择。 在您的.bashrc文件中,添加以下规则:

 [ [ -e $HOME / .dircolors ] ] && eval " `dircolors --sh $HOME/.dircolors` " 

如果您的主目录中有一个.dircolors文件,则Bash在启动时对其进行评估,并相应地设置LS_COLORS。

颜色

终端机中的颜色是一种简便的方法,可让您快速直观地了解特定信息。 但是,您可能不想过于依赖它们。 毕竟,颜色并不是通用的,因此,如果其他人使用您的系统,则他们可能看不到与您相同的颜色。 此外,如果您使用各种工具与计算机进行交互,您可能还会发现某些终端或远程连接无法提供您期望的颜色(或完全没有颜色)。

除了这些警告,颜色在某些工作流程中可能有用且有趣,因此请创建一个.dircolor数据库并根据您的心意对其进行自定义。

翻译自: https://opensource.com/article/19/9/linux-terminal-colors

linux更改终端颜色

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值