【腾讯云的1001种玩法】自定义 Shell Prompt

在之前的文章里,我们教了大家如何设置 Bash 的提示语,来告知操作人,正在操作的是哪台服务器。但是,很多时候,我们经常要执行非常多的命令,来完成我们的工作,那么在同时操作多个服务器时,依然容易迷失在命令行之中。

今天,我来教你如何自定义我们的 Bash 的提示,来帮助我们认清我们的服务器。

什么是 Shell Prompt

我们的命令行前面会有一个简单的提示,这个提示就是 Shell Prompt 。我们通过自定义 Shell Prompt 可以实现自定义的提示。通过这个提示,就可以提醒用户,你目前操作的是什么服务器。

Shell Prompt 的格式

Shell Prompt 的格式被定义在 $PS1 变量中,你可以通过执行 echo $PS1来拿到当前的提示。比如我的提示就是[\u@\h \W]\$

我们通过修改 $PS1变量,就可以实现修改Shell Prompt 的提示。

Shell Prompt 的含义

在上面的提示中,我们去掉用作区分的标点符号,我们可以提取出来 \u\h\W\$,这些符号都有其特殊的含义,借助它们的特殊含义,我们可以实现我们的需求。

  • \u:展示当前的用户的用户名
  • \h:展示主机名
  • \W:展示当前的目录的目录名
  • \w:展示当前目录的全路径
  • \T:展示24小时制的时间
  • \n:换行符
  • \r:回车符
  • \s:Shell名
  • \$:当是普通用户时,会展示#,如果是 root 用户展示$
  • \H:展示 FQDN 主机名
  • \@:展示 AM/PM 形式的日期。

完整的内容可以查看: Prompt magic - IBM

安全起见下,我们如何选择我们的Shell?

为了实现我们的提醒效果,建议大家在shell中展示全路径、主机名、用户身份,并且注明当前服务器是什么环境,比如。我设置完成后,是这样的。

Production | \u@\h \w \t \n \$

这样一个提示,可以立刻明白我是在操作生产环境,以免我误操作时,没有注意到我使用的是哪个环境。你也可以根据你的需要来设置你的 Shell Prompt 的内容。

给Shell Prompt上个色

有些时候,文字可能无法给我们足够的警示。这时,我们可以选择为我们的 shell Prompt 加个颜色,这样能够更好的展示。

如果想要为我们的shell上色,就要在我们的Shell中加入上色的代码

其中,

  • \e[x;y m 为给后续的文字上色,x,y都是颜色的编号。其中常用的红色为0;31,蓝色0;34,绿色0;32
  • \e[m则为停止上色。

\e[0;31m Production \e[m | \u@\h \w \t \n \$

设置为默认的输出

虽然目前我们设置成功了,但是并没有像我们的提示信息一样存留,重新连接就会消失。

这是,我们需要修改一下配置文件,来加入我们的设置。

我们可以修改 ~/.bashrc~/.bash_profile,再其中添加代码,来实现我们的输出效果.

在这个文件中加入如下代码,即可实现效果。

export PS1 = '\e[0;31m Production \e[m | \u@\h \w \t \n \$'

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏古时的风筝

用python实现的百度新歌榜、热歌榜下载器

首先声明,本工具仅仅为学习之用,不涉及版权问题,因为百度音乐里面的歌曲本身是可以下载的,而且现在百度也提供了”百度音乐播放器”,可以通过这个工具进行批量下载。 ...

1905
来自专栏沈唁志

微信公众号开发之创建自定义菜单数据拼接

在开启微信公众号开发者模式以后,在微信公众号平台设置的自动回复和自定义菜单会失效,所以我们要进行自定义

752
来自专栏FreeBuf

使用Kali Nethunter破解802.1x安全性WiFi

背景 笔者学校的无线网络采用1x认证方式,所以你懂的。之前参考GitHub上的一个项目在Kali2.0上部署成功,但是在手机端的情况比较不同,猜测是因为架构有一...

2305
来自专栏iOS 开发杂谈

学习笔记之git命令行的详细使用

git仓库,你可以简单理解成一个目录,这个目录里面的所有文件都可以被git仓库管理起来,每个文件的修改、删除,git都能跟踪,以便任何时刻都可以追踪历史,或者在...

652
来自专栏炉边夜话

在Debian中打造属于自己的deb包

问题:如果你要在Debian系统中发布一款软件或者一个包,该如何做呢?如果你的项目中有各种二进制包,该如何维护呢?如果你自己做了一款小小的实用软件,该如何与朋友...

982
来自专栏walterlv - 吕毅的博客

快速在 Windows 上搭建 Jekyll 开发环境

发布于 2018-03-04 05:30 更新于 2018-08...

751
来自专栏书山有路勤为径

How to use Git

版本控制就是控制版本,版本控制系统帮助控制(管理)某个事物(通常指源代码)的不同版本 现在流行的版本控制:

481
来自专栏外文翻译

如何使用您系统里的主机(hosts)文件

Linux 系统的hosts文件存储在/etc/hosts下,它在IP地址、主机名、域名和机器别名之间创建静态关联。然后,您的Linode会为这些关联提供比必须...

1733
来自专栏Java学习123

linux tar打包解压详解 解压到指定文件夹

3608
来自专栏landv

robocopy的用法,数据库局域网备份

1935

扫码关注云+社区