大牛教你玩转 Linux Bash 提示符的一些神操作

640?


当你在 Linux 环境下打开一个 Shell 终端时,会看到命令行中出现了类似下面的一个 Bash 提示符:


[user@$host ~]$


你知道命令行提示符其实是可以自己设置添加许多非常有用的信息的吗?在这篇文章中就会教你如何自定义自己的 Bash 命令行提示符,想看的话就接着看吧~


如何设 置 Bash 提示符


Bash 提示符是通过环境变量 PS1 (提示符字符串 1Prompt String 1) 来设置的,它用于交互式 shell 提示符。当然如果你需要更多的输入才能完成一个 Bash 命令时,PS2 环境变量就是用来设置多行提示符的:

[dneary@dhcp-41-137 ~]$ export PS1="[Linux Rulez]$ "

[Linux Rulez] export PS2="... "

[Linux Rulez] if true; then

... echo "Success!"

... fi

Success!


在哪里设置 PS1 的值?


PS1 就是一个普通的环境变量,系统默认值设置在 /etc/bashrc 中,在我的系统中,默认提示符通过以下命令来设置的:

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "


它判断 PS1 是否是系统的默认值 \s-\v$ ,如果是的话则将值设置为 [\u@\h \W]\$。(LCTT 译注:注意命令中用 \ 做了转义。)


但如果你想要自定义提示符,不应该修改 /etc/bashrc ,而是应该在你的主目录下将自定义命令加到 .bashrc 文件中。


上面提到的 \u、\h、\W、\s 和 \v 是什么意思?


在 man bash 中的 PROMPTING 章节中,你能够找到所有 PS1 和 PS2 相关的特殊字符的描述,以下是一些比较常用的:


  • \u:用户名

  • \h:短主机名

  • \W:当前你所在的目录的名称(basename),~ 表示你的主目录

  • \s:Shell 名字(bash 或者 sh,取决于你的 Shell 的名字是什么)

  • \v:Shell 的版本号


还有哪些特殊的字符串可以用在提示符当中


除了上面这些,还有很多有用的字符串可以用在提示符当中:


  • \d:将日期扩展成 “Tue Jun 27” 这种格式

  • \D{fmt}:允许自定义日期格式——可通过 man strftime 来获得更多信息

  • \D{%c}:获得本地化的日期和时间

  • \n:换行(参考下面的多行提示符)

  • \w:显示当前工作目录的完整路径

  • \H:当前工作机器的完整主机名


除了以上这些,你还可以在 Bash 的 man 页面的 PROMPTING 部分找到更多的特殊字符和它的用处。


多行提示符


如果你的提示符过长(比如说你想包括 \H 、\w 或完整的日期时间时 ),想将提示符切成两行,可以使用 \n 将提示符切断成两行显示,比如下面的多行的例子会在第一行显示日期、时间和当前工作目录,第二行显示用户名和主机名:

PS1="\D{%c} \w\n[\u@\H]$ "


还能再好玩点吗?


人们偶尔也想将提示符变成彩色的。虽然我觉得彩色提示符让人分心、易怒,但是也许你很喜欢。如果我们想将日期变成红色的,目录变成青蓝色,用户名搞一个黄色背景,你可以这样做:


PS1="\[\e[31m\]\D{%c}\[\e[0m\]

     \[\e[36m\]\w\[\e[0m\]\n[\[\e[1;43m\]\u\[\e[0m\]@\H]$ "


640?wx_fmt=png


所以你最喜欢的自定义提示符是什么样子的呢?有没有让你抓狂的自定义提示符呢?请在留言区告诉达妹吧~

作者简介:Dave Neary – Dave Neary 是红帽开源和标准化团队成员,帮助开源项目对红帽的成功至关重要。

英文:Dave Neary,翻译:Linux中国/toyijiu

linux.cn/article-8711-1.html


云计算免费课程火热抢先中,5天运维课程免费听,点击文末“阅读原文”即可免费听课当然也有其他IT课程免费听(Java、前端、大数据、Python、设计、C++、嵌入式、网络营销),后台回复“姓名+联系方式+所在+课程名称”也可申请其他免费课程,火速抢先~~~~

PS:记得查收小编送你的免费大礼包呦~

福利 | 一万多套PPT模板等你免费来拿!无条件领取!

免费送 | 1000多套简历模板免费拿,附赠简历制作教程!

免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~

640? 640?wx_fmt=jpeg

▼▼点击【阅读原文】,免费听5天Linux运维干货分享课,火热开讲中,速来抢!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值