linux 的终端字体色和背景色的修改方法(二)

Linux终端下的颜色设置 2013-08-31 22:57:15

分类: LINUX

 

 
在 ANSI 兼容终端(例如 xterm、rxvt、konsole 等)里, 可以用彩色显示文本而不仅仅是黑白。 本文示范了如何使用粗体和彩色的文字。

    相信每一位Linux使用者都要面对 Bash。 虽然第一眼看上去非常枯燥,但是又很多方法能够让你的 shell 足够的个性化。 shell 提示符的彩色增强让能够让你的 shell 独一无二, 而且还非常清晰易读。

在本文中我以 Bash shell 为例。因为在不同的终端里的转义序列不完全相同, 所以在本文中我使用的是 ANSI 终端。 

  shell 彩色配置出现在 bash 的个人配置文件 ~/.bashrc 或者是全局配置文件 /etc/bashrc 里面。 可以通过bashrc 里面的 PS1 变量来设置提示符的外观。

一般默认的情况下.bashrc里面应该是:

                 ~/.bashrc

                  export    PS1=' \u@\h:\w\$ '

                  上面的意思是:用户@主机:当前目录 $

                   -->这也是大家都非常熟悉的shell提示符 。

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

  \d :#代表日期,格式为weekday month date,例如:"Mon Aug 1"   

  \H :#完整的主机名称   

  \h :#仅取主机的第一个名字  

  \t :#显示时间为24小时格式,如:HH:MM:SS   

  \T :#显示时间为12小时格式   

  \A :#显示时间为24小时格式:HH:MM   

  \u :#当前用户的账号名称   

  \v :#BASH的版本信息   

  \w :#完整的工作目录名称   

  \W :#利用basename取得工作目录名称,所以只会列出最后一个目录   

  \# :#下达的第几个命令   

  \$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$  

 

转义序列

要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。 在 shell 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033)。

要直接在 shell 里面输入转义序列我们需要先按 ctrl-v:CTRL-v ESC。 

下面进入主题,说下该如何用shell的颜色。我用我自己的shell颜色设置详细说明.

 

代码:

        PS1="\[\033[1;32;40m[\033[0;32;40m\u@\h:\033[1;35;40m\w\033[1;32;40m]\033[1;31;40m\$\033[1;32;40m \]"

最外边的"\[    \]"是为了把转义序列的字符串括起来,防止转义序列的文本显示在 shell 里占用太多的空间。

\033 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义了字符背景色。字母m是定义本身所必须的,字母m后面的字符就是你想改变的字符了。

 可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。

用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。

比如上面我的定义中: 最后显示的结果是在$号之前的字符全部用一个浅绿色的中括弧扩起来。$字符 显示为红色。后面的输入显示为高亮浅绿色。在括弧里面,用户名@主机显示为深绿色,路径显示为洋红。

用代码解释:

Ps1 ="\[ -------------> 最外面的括弧

                 \033[1;32;40m[

           ----> 定义最右边的" [ " ;

        1:字体宽度,好像有加亮功能.

        32:字符颜色。32表示绿色。

        40:背景色,40表示黑色。

               \033[0;32;40m\u@\h:

        --------->定义右边的 \u@\h:  这几个字符颜色。

             0: 默认字体宽度。

            32:字符颜色。绿色。

            40:  背景颜色。黑色。

               \033[1;35;40m\w

        ---------> 定义右边的 \w  (路径颜色) 。

            1:字符宽度。加亮。

           35:字符颜色。洋红。

           40:背景色。黑色。

                     \033[1;32;40m]

      ---------> 定义右边的  ]  字符。跟前面的   [   字符使用同一效果。

                     \033[1;31;40m\$

      ---------> 定义了  $  字符 为红色。转义字符,所以前面加了 \ .

          颜色都跟前面差不多。相信大家都发现规律了。

                      \033[1;32;40m

      ----------> 这个定义了你在命令行要输入命令显示的颜色。

                       \]"

     -----------> 字符串结束括弧。

这个就是上面例子的详细定义内容。

其 实我的是没有关闭颜色转义序列,让自己输入的字符也改变颜色,整天看这黑白屏幕不爽哇!!如果不想改变输入颜色的话,用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。按照上面的例子来说就是在 \]" 前面加上 \033[0m 即可。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/the-tops/p/5662538.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中的STL库_C++11 STL线程库实现一个简单的线程池

使用C11 STL线程库实现一个线程池。处理机制是抢占式的,即所有线程从一个队列(std::queue)中获取任务执行(计算字符串简单HASH值),使用std::mutex和std::conditional_variable实现队列访问并发协调。#include #include #include #include #include #incl…

广搜 广搜 poj 3984

***求最短路径&#xff0c;然后再输出路径&#xff0c; BFS路径输出*** #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <stack> #include <queue> #include <cmath>using namespace std…

pycharm新建python file没有默认头_Pycharm 设置默认头的图文教程

Pycharm 设置默认头的图文教程1. 设置的路径是File->settings->Editor->File and Code Templates->Python Script内容见图&#xff1a;这样新建文件的时候就会默认头如下&#xff1a;这里说明下#!/usr/bin/evn python 和 #!/usr/bin/python的区别&#xff1a;第一种…

python redis订阅_Python 学习笔记 - Redis

Redis 和Memcached类似 也是一个开源的内存存储系统&#xff0c;存储格式也是通过键值对的方式。不过和memcached比起来&#xff0c;memcached的value只支持字符串&#xff0c;而redis支持字符串&#xff0c;列表&#xff0c;集合&#xff0c;hash等等&#xff1b;这些数据类型…

egret中loadingUI的自定义

loadingUI中是加载资源&#xff0c;此时如果想自定义loadingUI界面&#xff0c;那么此刻正在加载的图片肯定不能用了。 解决方法就是使用服务器资源 直接加载服务器资源就好了 class LoadingUI extends egret.Sprite { public constructor(){ super(); this.c…

python不支持的数据类型有achar bint cfloat dlist_第1篇:Cython的数据类型(第二部分)

Cython的C指针与C一样&#xff0c;尽管指针性与变量而不是类型相关联&#xff0c;但可以在类型或变量附近声*号。%%cythoncdef int *acdef int *b但这样在变量a,b写在一行,cython编译器会发出警告的信息,因此建议每个变量单独声明%%cythoncdef int *a,*bCython中的指针的解引操…

java 调用dll 方法 postmessage实现后台模拟按键_VB实现模拟键盘及模拟鼠标(后台操作)...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼接下来来研究下模拟鼠标模拟鼠标的常数整理&#xff0c;如下&#xff1a;WM_MOUSEFIRST 0x0200 //移动鼠标时发生WM_MOUSEMOVE 0x0200 //移动鼠标时发生&#xff0c;同WM_MOUSEFIRSTWM_LBUTTONDOWN 0x0201 //按下鼠标左键WM_LBUTTO…

【micropython】用python来进行BadUSB的USB-HID测试(含无线控制)

转载请注明&#xff1a;小五义http://www.cnblogs.com/xiaowuyi QQ群&#xff1a;64770604 本文以TPYBoardv101开发板为例讲解了利用micropython进行BadUSB的usb-HID设备测试的主要方法&#xff0c;使用mt7681模块进行了一个简单的实验&#xff0c;实现了手机摇控键盘输入的测…

php返回类中方法,php如何获取类中所有的方法名

php获取类中所有的方法名的方法&#xff1a;可以利用【get_class_methods()】函数来获取&#xff0c;【get_class_methods()】函数可以返回指定类中所有的方法名&#xff0c;并且会将方法名保存到数组中。【相关学习推荐&#xff1a;php编程(视频)】php获取类所有方法名的方法&…

C#学习之向量运算符重载

//未重载运算符&#xff0c;但编译通过&#xff1b;C#不允许重载运算符‘’&#xff0c;但如果重载‘’运算符&#xff0c;编译器会自动使用‘’运算符的重载来执行‘’运算符的操作&#xff1b; //‘-’、‘*’、‘&’和‘/’等所有赋值运算都遵循此规则&#xff1b; 1、若…

如何安装php5.5,源码安装php5.5

centos6.6首先上传php-5.5.10至服务器安装依赖环境yum -y install gcc gcc-c autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-d…

PHP 表单文件上传的原理,php多文件上传功能实现原理及代码

今天对多图片上传功能小小的研究了一下&#xff0c;把下面的代码整理出来&#xff0c;方便以后自己使用以及供大家交流1、upload.html页面&#xff0c;即先是input typefile的文件&#xff1a;图片上传第一张图片第二张图片第三张图片第四张图片第五张图片2、do_upload.php页面…

php的c方法,thinkphp的c方法的使用

这篇文章主要介绍了关于thinkphp的c方法的使用&#xff0c;有着一定的参考价值&#xff0c;现在分享给大家&#xff0c;有需要的朋友可以参考一下用过thinkphp的朋友都知道&#xff0c;C()方法在整个框架中用的非常普遍&#xff0c;C方法的实现非常简单&#xff0c;但是功能非常…

Fiddler中session的请求/响应类型与图标对照表

转载于:https://www.cnblogs.com/chengchengla1990/p/5681978.html

php打印矩阵,PHP实现顺时针打印矩阵(螺旋矩阵)的方法示例

这篇文章主要介绍了PHP实现顺时针打印矩阵(螺旋矩阵)的方法,涉及PHP基于数组遍历、运算模拟打印实现螺旋矩阵功能的相关操作技巧,对PHP感兴趣的朋友可以参考下本篇文章。本文实例讲述了PHP实现顺时针打印矩阵的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;问题…

NOIP2014 uoj20解方程 数论(同余)

又是数论题 Q&A Q&#xff1a;你TM做数论上瘾了吗 A&#xff1a;没办法我数论太差了&#xff0c;得多练&#xff08;shui&#xff09;啊 题意 题目描述 已知多项式方程&#xff1a; a0a1xa2x^2..anx^n0 求这个方程在[1, m ] 内的整数解&#xff08;n 和m 均为正整数&#x…

php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip

我最近开始在我的网站上使用gzip,它在除Opera之外的所有浏览器上都起到了一种魅力作用,它给出了一个错误,即由于数据损坏而无法解压缩内容.从我可以从测试和谷歌搜索中收集到的,使用gzip和chunked传输编码可能是一个问题.请求像css文件这样的小文件时没有错误这一事实也指向了这…

@override

目录 用处 作用 注意 用处&#xff1a; 继承抽象类&#xff0c;必须实现抽象方法&#xff0c;方法上要加override 实现接口时&#xff0c;必须实现接口里定义的方法&#xff0c;方法上要加override 作用&#xff1a; 可以检查方法签名的拼写错误 改变父类中的一些行为 Override…

java实现语音发送,Java实现发送手机短信语音验证功能代码实例

这篇文章主要介绍了java实现发送手机短信语音验证功能代码实例,www.cppcns.com文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下利用第三方平台可以实现发送手机短信验证码和语音验证码的功能&#xff0c;本文使用…

c++父类和子类转化致命的代码错误

最近在工作中&#xff0c;出现了严重的代码错误&#xff0c;对象的基类和子类的继承&#xff0c;代码大致如下&#xff1a; class A { };class B : public A { }void main() {A* a;(用于子类对象来进行赋值&#xff09; new 子类;//错误代码如下B* b (B*) a;b.方法; }//在这个…