命令行提示符修改(环境变量PS1)

最近在学习linux操作系统(CentOS 6 & CentOS 7)。觉得linux终端命令行全部为白色,会经常导致命令与输出内容难以分辨。于是上网找到修改linux终端命令行颜色的方法,发现通过定义PS1环境变量即可实现,下面我以root用户身份进行操作。

1.  了解PS1

  PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数。

在终端输入命令:

[root@localhost ~]# echo $PS1
[root@localhost ~]# PS1='[\u@\h   \W]\$ ' #查看当前定义值

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用户,提示符为 # ,普通用户则为 $

   所以linux默认的命令行提示信息的格式
   PS1='[\u@\h \W]\$ '的意思就是:[当前用户的账号名称@主机名的第一个名字/工作目录的最后一层目录名]#

2.  颜色设置参数

  在PS1中设置字符颜色的格式为:\[\e[F;Bm\]........\[\e[0m\],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47,\[\e[0m\]作为颜色设定的结束。

  颜色对照表:

    F    B

    30  40 黑色

    31  41 红色

    32  42 绿色

    33  43 ×××

    34  44 蓝色

    35  45 紫红色

    36  46 青蓝色

    37  47 白色

   只需将对应数字套入设置格式中即可。
  比如要设置命令行的格式为绿字黑底(\[\e[32;40m\]),显示当前用户的账号名称(\u)、主机的第一个名字(\h)、完整的当前工作目录名称(\w)、24小时格式时间(\t),可以直接在命令行键入如下命令:

# PS1='[\[\e[32;40m\]\u@\h \w \t]$ \[\e[0m\]'

 

经过多次测确定一个适合的格式,但注意这样的设置只是临时性的;

PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "

3.  修改.bashrc文件,永久保存命令行样式.

上面的设置的作用域只有当前终端的登陆有效,关闭终端或退出登录即刻失效。要想永久性的保存设置,需要修改.bashrc配置文件。

[root@localhost ~]# cd
[root@localhost ~]# ls –al
-rw-r--r--.  1 root root  258 Jul 11 12:23 .bashrc
[root@localhost ~]# vi .bashrc         
# .bashrc
 
# User specific aliases and functions
 
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
 
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "  ##添加该行

[root@localhost ~]# source .bashrc    ##重新加载

效果如下所示;

命令行提示符修改(环境变量PS1)




上一篇:CentOS 命令提示符颜色及样式详解


下一篇:npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 http://go.microsoft.com/fwlink