多语言展示
当前在线:1538今日阅读:183今日分享:45

Linux Bash 提示符的一些玩得比较骚的操作

当你在 Linux 环境下打开一个 Shell 终端时,会看到命令行中出现了类似下面的一个 Bash 提示符:[user@$host ~]$你知道命令行提示符其实是可以自己设置添加许多非常有用的信息的吗?学习《linux就该这么学》时候总是看着无聊的终端,在这篇文章中我就会教你如何自定义自己的 Bash 命令行提示符
工具/原料
1

linux

2

shell

方法/步骤
1

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

2

在哪里设置 PS1 的值?PS1 就是一个普通的环境变量,系统默认值设置在 /etc/bashrc 中,在我的系统中,默认提示符通过以下命令来设置的:[ '$PS1' = '\\s-\\v\\\$ ' ] && PS1='[\u@\h \W]\\$ '它判断 PS1 是否是系统的默认值 \s-\v$ ,如果是的话则将值设置为 [\u@\h \W]\$。(LCTT 译注:注意命令中用 \ 做了转义。)但如果你想要自定义提示符,不应该修改 /etc/bashrc ,而是应该在你的主目录下将自定义命令加到 .bashrc 文件中。

3

还有哪些特殊的字符串可以用在提示符当中除了上面这些,还有很多有用的字符串可以用在提示符当中: \d:将日期扩展成 “Tue Jun 27” 这种格式0 \D{fmt}:允许自定义日期格式——可通过 man strftime 来获得更多信息 \D{%c}:获得本地化的日期和时间  \n:换行(参考下面的多行提示符)  \w:显示当前工作目录的完整路径 \H:当前工作机器的完整主机名除了以上这些,你还可以在 Bash 的 man 页面的 PROMPTING 部分找到更多的特殊字符和它的用处。

4

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

5

还能再好玩点吗?人们偶尔也想将提示符变成彩色的。虽然我觉得彩色提示符让人分心、易怒,但是也许你很喜欢。如果我们想将日期变成红色的,目录变成青蓝色,用户名搞一个黄色背景,你可以这样做: PS1='\[\e[31m\]\D{%c}\[\e[0m\]  \[\e[36m\]\w\[\e[0m\]\n[\[\e[1;43m\]\u\[\e[0m\]@\H]$ ' \[..\] :表示一些非打印字符 \e[.. :转义字符,后面的跟着的特定的转义字符串在终端中表示颜色或者其他 意思 31m :表示红色字体(41m 表示是红色背景) 36m :表示是青蓝色字体 1;  43m :表示黄色字体(1;33m 表示黄色字体) [\e[0m]] :它在最后将颜色恢复成系统终端默认颜色

推荐信息