前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【腾讯云的1001种玩法】自定义 Shell Prompt

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

原创
作者头像
白宦成
修改2017-06-19 19:10:49
1.2K0
修改2017-06-19 19:10:49
举报

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

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

什么是 Shell Prompt

[Shell Prompt]
[Shell Prompt]

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

Shell Prompt 的格式

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

[shell Prompt]
[shell Prompt]

我们通过修改 $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中展示全路径、主机名、用户身份,并且注明当前服务器是什么环境,比如。我设置完成后,是这样的。

代码语言:txt
复制
Production | \u@\h \w \t \n \$

[Pr]
[Pr]

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

给Shell Prompt上个色

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

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

其中,

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

[img]
[img]
代码语言:txt
复制
\e[0;31m Production \e[m | \u@\h \w \t \n \$

设置为默认的输出

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

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

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

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

代码语言:txt
复制
export PS1 = '\e[0;31m Production \e[m | \u@\h \w \t \n \$'

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 Shell Prompt
  • Shell Prompt 的格式
  • Shell Prompt 的含义
  • 安全起见下,我们如何选择我们的Shell?
  • 给Shell Prompt上个色
  • 设置为默认的输出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档