平时我们操作的系统命令行界面文本默认黑底白字,有时候会看不惯这种全篇都是白色字符,这个时候可以通过改变PS1环境变量来改变文本颜色。我个人喜欢黑底绿字的搭配,以下是我个人的命令行界面样式:

注意:以下所有代码中的连续‘\\’均表示一个‘\’字符

一. 首先需要知道的是.bashrc文件,它是用户目录下的一个隐藏文件。这个文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。设置字体颜色的PS1环境变量也在这个文件中配置。

  1. <span style="font-size:14px;"># 到达用户目录
  2. cd
  3. # 编辑.bashrc文件
  4. vim .bashrc</span>

二. 寻找PS1变量。

如果是root用户,可以看到被注释的一句命令:

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

这就是设置文本颜色的示例语句。将这一句改为以下语句就可以看到最开始的截图效果了。

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

对于普通用户,同样在.bashrc文件中可以找到如下代码:

if  [ "$color_prompt" = yes ]: then

PS1 = '' 此处省略

else

PS1 = '' 此处省略

这个依据个人的配置来选择一个修改,也可以将两处的PS1都修改。我需要修改的是else后的PS1。

三. 分析设计

设置颜色的片段是\\[\e[01;31m\\],将这句运用在多个显示内容上,就可以看到不同的显示效果。将颜色片段除掉,就可以看到基本的组成格式:\u@\h:\w\$。其中\u是当前用户名,\h为主机名,\w为完整的工作目录,\$依据用户是否为root显示为#或者$。这个基本格式可以自己定制,比如在$或者#之前的内容用中括号括起来:[\u@\h:\w]\$。对于转义序列可以参考第四部分。

配置PS1变量就是在基本格式中添加相应的颜色片段\\[\e[F;Bm\\]。其中F表示前景色,B表示背景色。当B为1的时候,会显示为加粗加亮的字符。需要说明的是,当B为1时,F和B交换位置得到的结果是一样的。当然,还是建议将语句书写为标准格式:

PS1='${debian_chroot:+($debian_chroot)}\\[\e[31;01m\\]\u[\e[0m\\]@\\[\e[34;01m\\]\h:\\[\e[33;01m\\]\w\$ \\[\e[32;01m\\] '

代码\\[\e[0m\\]表示重置颜色样式,所以如果想再次使用原来的黑底白字样式,就修改为一下语句即可:

PS1='${debian_chroot:+($debian_chroot)}\\[\e[0m\\]\u@\h:\w\$ '

前景色背景色对应代码参见第四部分。

四. 参考

引自http://blog.chinaunix.net/uid-108431-id-3252935.html

1. 转义序列:

  1. \d :代表日期,格式为weekday month date,例如:"Mon Aug1"
  2. \H:完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
  3. \h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
  4. \t :显示时间为24小时格式,如:HH:MM:SS
  5. \T :显示时间为12小时格式
  6. \A :显示时间为24小时格式:HH:MM
  7. \u :当前用户的账号名称
  8. \v :BASH的版本信息
  9. \w :完整的工作目录名称。家目录会以 ~代替
  10. \W :利用basename取得工作目录名称,所以只会列出最后一个目录
  11. \# :下达的第几个命令
  12. \$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

2. 前景色背景色:

  1. 前景 背景 颜色
  2. ------------------------
  3. 30   40   黑色
  4. 31   41   紅色
  5. 32   42   綠色
  6. 33   43   黃色
  7. 34   44   藍色
  8. 35   45   紫紅色
  9. 36   46   青藍色
  10. 37   47   白色

3. 代码及意义

    1. 代码  意义
    2. -------------------------
    3. 0     OFF
    4. 1     高亮显示
    5. 4     underline
    6. 5     闪烁
    7. 7     反白显示
    8. 8     不可见

【Linux】Debian 8 设置命令行界面的文本颜色的更多相关文章

  1. linux BASH shell设置字体与背景颜色

    linux BASH shell下设置字体及背景颜色的方法. BASH shell下设置字体及背景颜色  echo -e "\e[31mtest\e[41m"  \e[30m 将字 ...

  2. Linux(Debian)网卡设置

    debian IP地址配置 vim /etc/network/interface   配置网卡eth0的IP地址 auto eth0 表示网卡随系统自动请 iface eth0 inet static ...

  3. (转)TextView 设置背景和文本颜色的问题

    在做一个项目,突然遇到如下问题 比如:在color.xml中定义了几个颜色 <color name="white">#FFFFFF</color> < ...

  4. Linux上使用设置printf显示的颜色

    我们经常看到别的屏幕五颜六色的很是羡慕,看着很炫是吧.其实我们也可以自己做一个简单的修改,是我们的显示结果也呈现出不同的颜色.shell脚本可能设置的比较多,但是我们平常使用C语言却很少设置它的颜色, ...

  5. linux debian 时间设置中无法选择“自动设定时间和日期”

    没有安装ntpdate 执行:apt-get install ntpdate ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心NTP服务器地址)s1a.time.ed ...

  6. linux BASH shell下设置字体及背景颜色

    BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字符的显示颜色改为黑色 \e[31m 将字符的显示颜色改为红色 \e ...

  7. Linux终端和win32控制台文本颜色输出

    在使用putty.secureCRT.XShell等终端仿真器连接linux系统时,ls.vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性. 通常我们可以使用echo命令加-e ...

  8. VC编程中如何设置对话框的背景颜色和静态文本颜色

    晚上编一个小程序,涉及到如何设置对话框的背景颜色和静态文本颜色.这在VC6.0中本来是一句话就搞定的事.在应用程序类中的InitInstance()函数添加: //设置对话框背景和文本颜色 SetDi ...

  9. xamarin android 在代码中如何设置文本颜色

    xamarin android 在代码中如何设置文本颜色 TextView v = FindViewById<TextView>(Android.Resource.Id.Message); ...

随机推荐

  1. Oracle中的学习笔记

    1.使用 ||来连接字符串 select CARD_ID ||','||CARD_TYPE as qqq from CARDS t 2.DISTINCT (唯一不重复) select DISTINCT ...

  2. 【转】c# 读取excel数据的两种方法

    源地址:http://www.cnblogs.com/icyJ/p/ReadExcel.html

  3. [51nod1188]最大公约数之和 V2(筛法)

    题面 传送门 题解 口胡的整除分块单次询问\(O(\sqrt{n})\)的做法居然\(T\)了?那还是好好看正解吧-- 首先我们枚举\(j\),求对于每个\(j\)有所有\(i<j\)的\(\g ...

  4. LAMP之PHP

    保持apache.mysql正在运行 [root@cairui php-]# lsof -i tcp: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NA ...

  5. stl仿函数和适配器

    所谓的适配器就是底层利用仿函数,然后修改仿函数的接口,达到自己的目的: 例如:template<class operation> class binder1st的适配器,其本质是一个类,它 ...

  6. git 本地分支与远程分支相关操作记录

    1.远程分支中有新增分支,但自己的本地分支没有对应同步 git checkout -b [remote-branch-name] origin/[remote-branch-name] 2. 查看本地 ...

  7. asp.net mvc 中的 controller和asp.net web api 的apicontroller有什么区别?(转)

    本质上区别不大,一个返回html/text类型的response,一个返回json/text或者xml/text类型的response,对于api环境而言,apicontroller更智能一点,他可以 ...

  8. spring cloud 超时时间

    zuul.host.socket-timeout-millis=60000 #zuul socket连接超时zuul.host.connect-timeout-millis=60000 #zull 请 ...

  9. 使用between and 作为查询条件

  10. html表单笔记

    1.下面是 <form> 属性的列表: accept-charset 规定在被提交表单中使用的字符集(默认:页面字符集). action 规定向何处提交表单的地址(URL)(提交页面). ...