PS1 是用来定义命令行提示符的参数,而我们每次登陆终端,使用命令时最前面的那一段就是 PS1,debian默认是没有颜色,且格式不美观的一串,例如: [root@debian ~]#,在进入多级文件夹之后,就会变成[root@debian /xxx/xxx/xxx/xxx]#,这会显得十分的难看。而这些问题,都可以通过修改 PS1 的参数来解决这个问题。

颜色格式一览

设置颜色的格式为:以 [\e[F;Bm] 开始,以 \e[m 结束。其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。

F B 颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色

特别代码意义

0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见

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

那么PS1=’[\u@\h \w]$ ‘的意思就是:[当前用户的账号名称@主机名的第一个名字 完整的工作目录名称]

设置方式

Debian的控制台设置是每个用户单独一份,存放在每个用户的~/.bashrc内,这里简单讲一下怎么设置。
我当前使用的 Debian 版本为 9.x ,root 用户默认的配置文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'

这个是默认的配置,其中,从第9行到第13行,是默认的文件系统的颜色,就是文件夹和文件的颜色,去掉注释就可以使用了,基本没有特别配置的需要。
这里也可以看到是有默认的 PS1 的配置的,虽然被注释掉了,这时候,我们只需要在下面加入我们自己的 PS1 配置就可以了,例如我的配置如下:

1
PS1='\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\$ '

因为我的终端是黑色为底色,所以我的所有背景都是黑色,白色终端的话,将40m更替为47m就可以了。