Linux 奇技淫巧:8 个有用且有趣的 Bash 提示
许多人并不认为命令行提示符是一个有用的元素,甚至不太注意它。然而,一个有用的提示符可以改变您使用命令行的方式,并通过扩展,改变您的系统。本文通过示例向您展示了许多有用和有趣的Bash提示。请注意,我们从提示符本身开始,然后进一步说明如何使用它们。
这里我们提供了一些 Bash 提示,并不是所有的都是严肃认真的。 例如,我们在列表中的第一个条目可以为您在使用命令行时带来一点乐趣!
1、执行命令之后显示“字符表情”
这个提示很有趣但很有用! 这个想法是,只要你执行成功的命令,你的提示就会显示一个快乐的字符表情。
相反,当命令失败时,你会看到一个悲伤的字符表情。
要应用它,请使用以下代码:
PS1="/`if [ /$? = 0 ]; then echo /[/e[33m/]^_^/[/e[0m/]; else echo /[/e[31m/]O_O/[/e[0m/]; fi/`[/u@/h:/w]//$"
效果图如下:
这可能看起来令人困惑,但我们使用 if 语句来确定命令是好是坏。 从那里,我们在颜文字周围使用一些转义,以确保它们以正确的方式显示。
2、当终端发出错误命令时更改 Bash 提示的颜色
可以说,这个提示是列表中最有用的。 像上面一样,如果您的最后一个命令未能运行,提示会更改颜色,但也会缩短长路径并包含每个命令的 Bash 历史记录编号以便于检索。
PROMPT_COMMAND='PS1="/[/033[0;33m/][/!]/`if [[ /$? = "0" ]]; then echo "//[//033[32m//]"; else echo "//[//033[31m//]"; fi/`[/u./h: /`if [[ `pwd|wc -c|tr -d " "` > 18 ]]; then echo "//W"; else echo "//w"; fi/`]/$/[/033[0m/] "; echo -ne "/033]0;`hostname -s`:`pwd`/007"'
效果图如下:
同样,这看起来很难实现,但它很简单。 我们再次使用 if 语句以及颜色代码来突出显示各种消息。
您可以将这些颜色设为您喜欢的任何颜色,但我们会运用一些逻辑思维,更改后的颜色应该对您有所帮助,而不是仅仅为了进行更改而更改。
3、将Bash提示扩展到多行
有时,你可能希望在 Bash 提示中包含大量信息。这个 Bash 提示可能会让你感兴趣。 它显示日期、时间、完整目录路径、用户名和主机名、活动终端,甚至文件计数和空间使用情况。
PS1="/n/[/033[35m/]/$(/bin/date)/n/[/033[32m/]/w/n/[/033[1;31m/]/u@/h: /[/033[1;34m/]/$(/usr/bin/tty | /bin/sed -e 's:/dev/::'): /[/033[1;36m/]/$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files /[/033[1;33m/]/$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b/[/033[0m/] -> /[/033[0m/]"
效果图如下:
在这里,我们不需要 if 语句,因为提示本身将具有静态布局和动态内容。 您可能还会发现很难解析这个元素中的不同元素。 我们的建议是应用它,然后逐条运行提示。 通过一些交叉引用,您将开始了解提示是如何组合的。
4、使用颜色使您的 Bash 提示更具可读性
除了很好地使用颜色来分隔不同的信息之外,这个提示没有什么特别之处。 如您所见,它提供了时间、用户名和主机名以及当前目录。
PS1="/[/033[35m/]/t<//[/033[m/]-/[/033[36m/]/u/[/033[m/]@/[/033[32m/]/h:/[/033[33;1m/]/w/[/033[m/]/$"
效果图如下:
这是最有用的 Bash 提示之一,也是您自定义提示时首先要查看的区域。 它可以为您学习自定义提示的工作原理提供良好的基础。
5、显示完整目录路径
就像使用颜色一样,这个提示是一个干净且最少的两行提示(尽管顶部有一个空行)。
我们在第一行显示完整的工作目录路径,然后在底部显示用户。
PS1="[/[/033[32m/]/w]/[/033[0m/]/n/[/033[1;36m/]/u/[/033[1;33m/]-> /[/033[0m/]"
效果图如下:
如果不想在提示中使用空行,可以去掉第一个/n。 但是,请调整布局和格式,因为每个终端体验都会因您的计算机和命令行设置而异。
6、显示后台作业计数
这个两行显示我们尚未在 Bash 提示中使用的信息。 我们提供后台作业的运行记录。 如果您同时处理多项任务但需要密切关注任何活动,这将非常有用。
第一行是用户名和主机名,以及工作目录路径。 在第二行,我们有历史编号和后台运行的作业计数。
PS1='/[/e[1;32m/]/u@/H:/[/e[m/] /[/e[1;37m/]/w/[/e[m/]/n/[/e[1;33m/]hist:/! /[/e[0;33m/] /[/e[1;31m/]jobs:/j /$/[/e[m/] '
效果图如下:
尽管它可以为您提供有关系统活动的一些急需的信息,但它没有什么特别之处。 您甚至可以将其转换为更复杂的提示,并添加 if 语句和颜色编码以在作业达到特定级别时通知您。
7、显示工作目录的信息
有了这个,我们会在第一行显示用户名和主机名、作业计数以及日期和时间。下面是当前目录,以及目录中的文件数量和一些有关磁盘使用情况的信息。
PS1="/n/[/e[30;1m/]/[/016/]l/[/017/](/[/e[34;1m/]/u@/h/[/e[30;1m/])-(/[/e[34;1m/]/j/[/e[30;1m/])-(/[/e[34;1m/]/@ /d/[/e[30;1m/])->/[/e[30;1m/]/n/[/016/]m/[/017/]-(/[/[/e[32;1m/]/w/[/e[30;1m/])-(/[/e[32;1m/]/$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') files, /$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')b/[/e[30;1m/])--> /[/e[0m/]"
效果图如下:
所有这些提示的最大问题是弄清楚围绕格式化和转义发生了什么。但是,与多行提示一样,您应该一点一点地解决这个问题,直到您了解整体结构。
您甚至可以一次输入一部分并注意它是否显示或是否有错误,然后处理完整的代码段。
8、创建你自己的 Bash 提示
自定义 Bash 提示。
您可以结合以上任何一项和所有内容来创建您自己的自定义 Bash 提示。例如,这是对列表中第七个的修改,但已更改为占用更少的空间并包含一些特定和相关的信息。
双线式总是更紧凑,因为您可以看到完整路径,而不会减少您使用的命令的空间。
PS1="/n/[/e[32;1m/](/[/e[37;1m/]/u/[/e[32;1m/])-(/[/e[37;1m/]jobs:/j/[/e[32;1m/])-(/[/e[37;1m/]/w/[/e[32;1m/])/n(/[/[/e[37;1m/]! /!/[/e[32;1m/])-> /[/e[0m/]"
效果图如下:
到现在为止,您可能已经了解此提示的作用,但我们的建议是尝试创建自己的提示而不是粘贴此提示。这样,您就可以开始了解不同元素如何协同工作,甚至可能想出您自己的自定义 Bash 提示。
总结
如果您经常使用命令行,或者在启动终端应用程序时有特定需求,那么自定义提示可能是一个好主意。不需要太多知识,在很多情况下,您可以从其他开发人员那里找到您需要的提示。
The post Linux 奇技淫巧:8 个有用且有趣的 Bash 提示 first appeared on Linux迷.
共有 0 条评论