漂亮的Linux命令提示符
每天面对着白底黑字(黑底白字)的命令行是否枯燥泛味呢?生活应给是五彩缤纷的,何不为单调无味的生活增添一抹色彩?
下面一起体验一下Linux命令行提示符惊险的整容之旅
惊鸿一瞥
整容前
整容后
神奇吧!下面就让我们拿起手术刀...
牛刀小试
首先到家目录下
[cofear@localhost ~]$
打开.bash_profile文件
[cofear@localhost ~]$ vi .bash_profile
我们会看的
1 # .bash_profile
2
3 # Get the aliases and functions
4 if [ -f ~/.bashrc ]; then
5 . ~/.bashrc
6 fi
7
8 # User specific environment and startup programs
9
10 PATH=$PATH:$HOME/bin
11
12 export PATH
我们只需在最后一行加export PS1="\e[36m\u\e[0m@\e[32m\h\e[0m: \e[34m\W\e[0m\$ "
1 # .bash_profile
2
3 # Get the aliases and functions
4 if [ -f ~/.bashrc ]; then
5 . ~/.bashrc
6 fi
7
8 # User specific environment and startup programs
9
10 PATH=$PATH:$HOME/bin
11
12 export PATH
13
14 export PS1="\e[36m\u\e[0m@\e[32m\h\e[0m: \e[34m\W\e[0m\$ "
保存退出,使文件生效
[cofear@localhost ~]$ . .bash_profile
我们就会看到整容成功
庖丁解牛
下面看看大师是如何操刀的
先看这条命令export PS1="\e[36m\u\e[0m@\e[32m\h\e[0m: \e[34m\W\e[0m\$ "
什么是PS1
PS1是Linux用来设置命令提示符的环境变量
"\h、\u、\W"是什么鬼
\u
:当前用户的账号名称\H
:完整的主机名称\h
:主机名\w
:完整的工作目录名称\W
:当前工作目录名称\$
:提示字符,root为# ,普通用户为$
其它
\d
:日期\t
:显示时间为24小时格式\T
:显示时间为12小时格式\A
:显示时间为24小时格式
"\e[36m、\e[0m"又是什么鬼
\e[36m
是ANSI控制码,又叫VT100系列控制码,用于在字符显示系统中控制光标移动和字符色彩等
ANSI控制码开始的标志都为ESC[
,ESC对应ASCII码表的033(八进制),\033
来输入ESC,\033[36m
即为ESC[36m
在Linux里\033[
等同于\e[
,故用\e[36m
颜色代码
背景色 | 字体色 |
---|---|
40: 黑 | 30: 黑 |
41: 红 | 31: 红 |
42: 绿 | 32: 绿 |
43: 黄 | 33: 黄 |
44: 蓝 | 34: 蓝 |
45: 紫 | 35: 紫 |
46: 深绿 | 36: 深绿 |
47: 白色 | 37: 白色 |
ANSI控制码
控制码 | 说明 |
---|---|
\033[30m -- \033[37m
|
设置前景色 |
\033[40m -- \033[47m
|
设置背景色 |
\033[0m |
关闭所有属性 |
\033[1m |
设置高亮度 |
\033[4m |
下划线 |
\033[5m |
闪烁 |
\033[7m |
反显 |
\033[8m |
消隐 |
到这儿大家都以为整容之旅结束了,说好的惊险呢?
奇幻之旅
其实冒险才刚刚开始
假设我的命令足够长
再长点,说好的换行呢?
再长点,为何覆盖了前面的东西?
再长点,好吧,你吓到我了!
额,好吧整容貌似失败,看来操刀大师浪得虚名!
走的太急,忽略了什么?
export PS1="\[\e[36m\]\u\[\e[0m\]@\[\e[32m\]\h\[\e[0m\]: \[\e[34m\]\ W\[\e[0m\]\$ "
凡事都应该收敛\[\e[36m\]
,\e[36m
这是一个整体,应该[]起来。
完美谢幕
当我们以为冒险结束时,才是真正的开始