前言
用过Ubuntu,root ssh到shell看到它的提示符是彩色的,看上去比较舒服,如图:
但是使用其他非root用户登录,或者CentOS等默认就不是彩色的,我们也希望他们能有彩色的提示符和自定义的提示(如图是root@host:~#)
实现
要修改linux终端命令行颜色,我们需要用到PS1,PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的设置。
在终端输入命令 echo $PS1
,即可在输出中找到关于PS1的定义如下:
echo $PS1 # 在普通的CentOS等机器上,默认输出 [\u@\h \W]\$ # 在有颜色的机器上,输出 \[\e]0;\u@\h: \w\a\]\[\033[38;5;193m\]\u@\h\[\]\[\033[38;5;15m\]:\[\]\[\033[38;5;45m\]\W\[\]\[\033[38;5;15m\]\$ \[\]
文字设置
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时,提示符为:#<br>普通用户则为:$ |
通过上面的参数我们知道Linux中命令提示信息的默认格式是:
[ 当前终端用户名 @ 主机名前一个名字 工作目录的最后一项 ] 用户提示字符
颜色设置
在PS1中设置字符颜色的格式为:[\e[F;Bm],其中“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 | 显示下划线 |
5 | 闪烁显示 |
7 | 反白显示 |
8 | 颜色不可见 |
特殊显示可在结束颜色输入里面设置:[\e[ 特殊颜色编号 m]
根据颜色表,就可以修改PS1,对命令行的前缀做颜色设置了,
如下我整理了我常用的比较好看的配色和文字设置:
#centos: export PS1="\[\033[38;5;193m\][\u@\h\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;159m\]\W\[$(tput sgr0)\]\[\033[38;5;193m\]]\[$(tput sgr0)\]\[\033[38;5;15m\]\\$\[$(tput sgr0)\] " #ubuntu original export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' #ubuntu my export PS1="\[\033[38;5;193m\]\u@\h\[$(tput sgr0)\]\[\033[38;5;15m\]:\[$(tput sgr0)\]\[\033[38;5;45m\]\W\[$(tput sgr0)\]\[\033[38;5;15m\]\\$ \[$(tput sgr0)\] " #写到~/.bashrc里去 #ubuntu里,默认有的,如果没有,bashrc里,找到force_color_prompt=yes 取消注释
保存到配置文件,让设置一直生效
我们可以把
export PS1="\[\033[38;5;193m\][\u@\h\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;159m\]\W\[$(tput sgr0)\]\[\033[38;5;193m\]]\[$(tput sgr0)\]\[\033[38;5;15m\]\\$\[$(tput sgr0)\] "
的变量写入到~/.bashrc的最后,这样就可以一直生效了
如果你的用户不是root用户,那么.bashrc的文件位置应该是在 /home/user/.bashrc,其中user是你的用户名,如果连.bashrc也没有,那么就新建一个.bashrc文件吧。
vim ~/.bashrc #把export PS1那句写到.bashrc最后 然后运行source生效 source ~/.bashrc
如果使用source ~/.bashrc 还没有生效,那么再检查下.bashrc里是否有
force_color_prompt=yes如果没有,也把这句写到.bashrc里去
~/.bashrc的示例内容如下:
更方便的无脑自定义方法
如果你还是想自定义你的命令提示符,但是不想研究各个自定义参数的含义,还有一个更简便的方式
这个网站能像搭积木的方式,自定义各种显示和颜色设置,超级方便
文章评论
cialis for daily use Doxycycline For Dogs Pet Meds Vrrqzd Gdkvzu Affitto Levitra Originale Cannadian Pharmacy Xmeohf Cialis Xminjx Viagra Daily Dosage