自定义Shell终端提示符

背景

今年年初的时候著名的Gitlab遭遇了运维人员误删除操作导致丢失6个小时数据的严重错误,之后他们总结并思考了如何避免再范类似错误,其中就有这一条:

为不同的环境改变Linux终端的格式或者颜色,例如红色代表生产环境,黄色代表测试环境。针对所有用户在shell提示符处显示机器的完整名字,例如db1.staging.gitlab.com,而不是仅仅是“db1”。: https://gitlab.com/gitlab-com/infrastructure/issues/1094

如果你用过类似Jumpserver的跳板机可能就会碰到这种麻烦。连了很多终端,而且有各种环境的很难一下分辨出是哪个环境的哪台机器。

设置

这里我们模拟生产环境把Shell终端的颜色背景改为红色,并显示机器完整的主机名。

临时生效

1
PS1=`\[\033[0;31m\]<\u@\H \W>\$\[\033[0m\]`

从上面可以看出,实际终端名称是通过PS1这个变量控制的,我们只要修改这个变量即可。执行完这条命令后你会看到类似的终端名称

要永久生效也很简单

1
echo "PS1=`\[\033[0;31m\]<\u@\H \W>\$\[\033[0m\]`" >> /etc/profile

想要换成其他不同的颜色请自行百度

参考

http://www.infoq.com/cn/news/2017/02/Technical-details-accident-GitLa?utm_source=news_about_operation&utm_medium=link&utm_campaign=operation
https://billie66.github.io/TLCL/book/chap14.html

坚持原创技术分享,您的支持将鼓励我继续创作!