Linux修改Shell命令提示符及颜色
1. Linux登录过程中加载配置文件顺序:
/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → [/etc/bashrc]
可查看默认的~/.bashrc文件如下:
1 [root@localhost ~]$ cat ~/.bashrc 2 # .bashrc 3 4 # User specific aliases and functions 5 6 # Source global definitions 7 if [ -f /etc/bashrc ]; then 8 . /etc/bashrc 9 fi
2. Shell命令提示符及颜色是由PS1来配置:
1 [root@localhost ~]$ echo $PS1 2 \[\e[32;40m\][\u@\h \W]$\e[m
其中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时,提示符为:# ,普通用户则为:$
3. 颜色值设置
PS1中设置字符颜色的格式为:\[\e[F;Bm\],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。用 \e[m 结束颜色设置,颜色表如下:
F B
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
根据颜色表,套用入字符颜色设置格式中,就可以对linux终端命令行颜色进行个性化设置了。比如要设置命令行的格式为绿字黑底,显示当前用户的账号名称、
主机的第一个名字、完整的当前工作目录名称、24小时格式时间,就可以使用如下的命令:
# PS1='[\[\e[32;40m\]\u@\h \w \t]\$'
4. 以笔者的~/.bashrc配置为例
1 [root@localhost ~]$ cat ~/.bashrc 2 # .bashrc 3 4 # User specific aliases and functions 5 6 alias rm='rm -i' 7 alias cp='cp -i' 8 alias mv='mv -i' 9 10 PS1="\[\e[32;40m\][\u@\h \W]\$\e[m " 11 12 # Source global definitions 13 if [ -f /etc/bashrc ]; then 14 . /etc/bashrc 15 fi
5.vim或者nano下修改
重新加载下~/.bashrc即可生效:
[root@localhost ~]$ source ~/.bashrc