热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

个性化配置--LinuxTerminal终端

使用linux系统已经很多年,今天才注意到命令终端的格式和颜色均是可以配置,故在网上学习了一番,并写下此博客作为学习笔记。整篇博客简单分析了终端颜色和格式的默认配置代码,然后展示了语法规

使用linux系统已经很多年,今天才注意到命令终端的格式和颜色均是可以配置,故在网上学习了一番,并写下此博客作为学习笔记。整篇博客简单分析了终端颜色和格式的默认配置代码,然后展示了语法规则,最终给出了自己使用的配置方案。


默认配置

在linux系统中,用户的配置文件有多个,一般熟悉的有 .bashrc,/etc/profile两个文件,我们可以在这两个文件中,找到终端的配置。对于终端的显示,相信大家都不陌生,例如:

//user_name@user_group:current_dir$
sunliymonkey@student:~/Downloads

基于两个关键字符 “@” 和 “:”,我们可以在.bashrc配置文件中进行查找,最终可以发现PS1对终端的颜色和格式进行了设置。
PS1配置代码
阅读发现,PS1有两种形式,而且明显上面的配置内容更加丰富。根据条件语句的变量”color_prompt“(颜色提示符),可以发现其能够控制终端颜色。于是一种想法就是,在56行代码前,将”color_prompt“设置为”yes“,然后查看一下效果。

代码修改:

这里写图片描述

修改前后效果对比:

这里写图片描述


语法规则

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$'

在上一节,我们已经知道PS1控制着终端的颜色和格式,想必其书写方式会有一定规则。下面介绍下颜色设置特殊的转移字符

颜色设置方式

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

控制代码

控制代码 意义
0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见

颜色参数

颜色 前景 背景
黑色 30 40
紅色 31 41
綠色 32 42
黃色 33 43
藍色 34 44
紫紅色 35 45
青藍色 36 46
白色 37 47
透明色 1

结合上面这两张表的信息,我们就可以进行颜色和动作定制了。
比如:

\033[01;32m //高亮显示绿色
\033[0m     //清除颜色设定,用来控制颜色设定影响的范围

还需注意的是:在实际使用过程中,均需在颜色设定码两边加上方括号( “[ , ]” ), 原因见下表:特殊字符。

特殊字符

特殊字符 意义
\e ASCII转义字符(也可以键入 \033
\[ 将非打印字符包起来,比如:颜色序列前后
\] 将非打印字符包起来,比如:颜色序列前后
\n 换行符
\u 用户名
\w 当前工作目录(如 “/home/drobbins”)
\W 当前工作目录的“基名 (basename)”(如 “drobbins”)
\$ 用户提示符,普通用户”$”;超级用户”#”
\h 主机名的第一部分(如 “mybox”)
\H 主机的全称(如 “mybox.mydomain.com”)

除该表已列出的转义字符,还有一些其他的,请参考附录中的参考资料。

到此为止,我们已经了解所有相关的语法规则,再次来看PS1的设置

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

对上面的PS1进行分解:

代码片断 意义
[\033[01;32m\ ] 设定颜色参数,高亮显示绿色
\u 显示用户名
@ 显示 ‘@’
\h 显示用户组
[\033[00m\ ] 去除颜色设定
: 显示 ‘:’
[\033[01;34m\ ] 设定颜色参数,高亮显示蓝色
\w 显示当前文件路径
[\033[00m\] 去除颜色设定
\$ 显示用户提示符‘#’ or ‘$

这就与前面显示的效果相一致了。


推荐配置

上面说了那么多,终于对PS1的配置搞清楚了,我当时为啥会想到修改终端配置呢?是因为我看到了如下的终端显示效果:

推荐配置展示图

将文件路径显示与输入命令放在两行,这样有一个好处,当文件路径比较长时,避免它们处于同一行时,造成显示不直观,用起来不舒服。下面是我的配置代码,直接放在.bashrc文件末尾,就能使用。

PS1="\[\033[1;32m\][\w]\[\033[0m\]\n\[\033[1;36m\]\u\[\033[1;33m\]-> "

关键一点就是使用‘\n’,使用当前文件路径信息分行显示。


参考资料

Ubuntu终端颜色设置、路径名设置以及ls命令设置 - - 当时学习,参考的一篇博客


推荐阅读
author-avatar
zulaka_208
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有