欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一招让你时刻分清虚拟机与线上服务器,找到命令行

程序员文章站 2022-05-09 15:24:12
...

背景:很多时候我们会同事开着虚拟机和线上服务器,最怕的就是犯迷糊将线上服务器当成自己的虚拟机。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

这就可以了,找命令行的时候就一目了然了。
一招让你时刻分清虚拟机与线上服务器,找到命令行

而且如果发现命令行变成了白色,就会立刻注意到。

相关标签: 终端