当前位置:文档之家› Linux Bash 提示符的一些骚操作

Linux Bash 提示符的一些骚操作

原文出处: Dave Neary 译文出处:Linux中国/toyijiu 当你在 Linux 环境下打开一个 Shell 终端时,会看到命令行中出现了类似下面的一个 Bash 提示符:






[user@$host ~]$


1

[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!


123456

[dneary@dhcp-41-137 ~]$ export PS1="[Linux Rulez]$ "[Linux Rulez] export PS2="... "[Linux Rulez] if true; then... echo "Success!"... fiSuccess!



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






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


1

[ "$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?或完整的日

相关主题
文本预览
相关文档 最新文档