平时我们操作的系统命令行界面文本默认黑底白字,有时候会看不惯这种全篇都是白色字符,这个时候可以通过改变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. c 数组作为返回值注意

    static char* Test() { char buf[] ="aa"; printf("%s\n",buf); return buf; } int ma ...

  2. Linq to Objects for Java

    好几年不写博客了,人也慢慢变懒了.然而想写了却不知道写点啥,正好最近手头有点小项目就分享一下经历. 现在 java 的大环境下,基本都是围着 spring 转,加上一堆其他的库.有了架子就开始搞业务了 ...

  3. Android为 ContentProvider 提供了那些服务内容?

    ContentProvider 可以调用系统想要共享的内容,安卓为我们提供了哪些和大家共享的东西呢? 官方文档: https://developer.android.com/reference/and ...

  4. baidumap应用

    需要在安卓平台利用baidumap SDK进行二次开发, 注册好,创建应用 利用jdk/bin里的keytool做Android SDK安全码 进入.android(参照下图):输入keytool - ...

  5. 前端JS AES加密 后端PHP AES加解密

    <!DOCTYPEhtml> <html> <head> <title>aes demo</title> </head> < ...

  6. cookie和session的使用和区别

    cookie:存储在浏览器 存值:setcookie("名字",值,过期时间.秒,哪一个文件夹)//文件夹不写一般默认整个网站都可以 setcookie("usernam ...

  7. python 矩阵(mat)操作

    1.矩阵的创建 由一维或二维数据创建矩阵 a1=array([1,2,3]); a1=mat(a1); data1=mat(zeros((3,3))); #创建一个3*3的零矩阵,矩阵这里zeros函 ...

  8. react todolist代码优化

    Todolist.js import React, { Component,Fragment } from 'react'; import TodoItem from './TodoItem'; im ...

  9. Redis学习笔记(4)—— Jedis入门

    一.Jedis介绍 Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如Java.C.C#.C++.php.Node.js.Go等. 在官方网站里列的一些Java客户端,有jedi ...

  10. Angular组件生命周期——生命周期钩子

    生命周期钩子介绍: 1.ngOnChange:响应组件输入值发生变化时触发的事件. 2.ngOnInit:用于数据绑定输入属性之后初始化组件,在第一次ngOnChange之后被调用. a. 组件构造后 ...