一招让你时刻分清虚拟机与线上服务器,找到命令行
背景:很多时候我们会同事开着虚拟机和线上服务器,最怕的就是犯迷糊将线上服务器当成自己的虚拟机。xshell连接Linux之后默认的命令行是是黑底白字。与有些命令回显颜色一样。在大篇幅的内容中去找命令行很费劲。介于此,我们可以设置命令行为其他颜色,想照命令行的时候一目了然。
延伸:设想一下如果我们可以控制命令行的颜色,是不是就可以用来区分不同的环境。比如很重要的,本地虚拟机和线上主机。比如说,我们可以设置自己的虚拟机命令行为彩色字体。线上主机不更改。从虚拟机切换到线上的主机。瞬间就只道当前的操作环境是线上。这样以来可以一定程度的避免线上错误操作。
好了废话不说了,直接开干吧。
1、首先要了解一下PS1,(这里是大写字母P和大写字母S):PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数。
[aaa@qq.com ~]# echo $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用户,提示符为 # ,普通用户则为 $
由此可见,[\aaa@qq.com\h \W]\$ 表示的是:[当前用户的账号名称@主机名的第一个名字 工作目录的最后一层目录名]#
2、现在开始给命令行设置颜色吧
在PS1中设置字符颜色的格式为:[\e[F;Bm]……..[\e[0m],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47,[\e[0m]作为颜色设定的结束。
在命令行键入:PS1='[\[\e[32;40m\]\aaa@qq.com\h \w \t]$ \[\e[0m\]'
回车执行后可以看到
这里可以看到颜色已经变了。但是这个有点不好看,对吧。显示的内容也不习惯。
这时候按照自己的喜好根据上面的参数列表设置显示内容,和颜色即可。
常用颜色对应如下:
颜色对照表:
F B
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
个人认为,系统设置显示的内容还是很好用的。加之习惯。就用默认的设置内容,改个颜色就好了。比如:PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
就是这个样子:
3、永久设置
上面的设置的作用域只有当前终端的登陆有效,关闭终端或退出登录即刻失效。永久有效办法当然是有的:
在root下vim .bashrc文件加上你心仪的颜色和内容。保存退出使之生效就可以了:
[aaa@qq.com /etc/nginx]# cd
aaa@qq.com ~]# vim .bashrc
# .bashrc
PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\
\$ "
…
[root@ansible /etc/nginx]# source .bashrc
这就可以了,找命令行的时候就一目了然了。
而且如果发现命令行变成了白色,就会立刻注意到。