快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

永乐国际ag旗舰厅下载:定制精彩的命令提示行



提示行魔术--增强系统提示行

Daniel Robbins

Gentoo Technologies 公司总载兼首席履行官

内容:

提示行根基

彩色化

Xterm 中的乐趣

参考资本

作者简介

假如您很轻易使 shell 提示行变得色彩鲜丽斓且带有更多信息, 为什么还要坚持用单调 的标准 shell 提示行呢?在这篇技术中,Daniel Robbins 将阐明若何得到相符您的意愿的shell 提示行,并会阐明若何动态更新 X 终真个标题栏。

作为 Linux/UNIX 人,我们有很长的光阴是在 shell 中事情,并且在许多环境下, 下面这一行便是始终盯着我们的那个提示行:

bash-2.04$

假如您碰巧是超级用户 (root),您就有权应用下面这个标致的标示“身份”的提示行版本:

bash-2永乐国际ag旗舰厅下载.04#

这些提示行并不是十分漂亮。这也就难怪几种 Linux 版本对默认提示行进行了进级, 在此中增添了颜色和更多的信息。然则,即便您正好有一个本身带有很好的彩色提示行的新式版本,它也弗成能是完美完好的。您或许盼望在提示行中增添或变动几种颜色,或者增添(或删除)一些信息。从头开始设计属于您自己的彩色的、颠末装饰的提示行并不难。

提示行根基在 bash 下,可以经由过程变动 PS1 情况变量的值来设置提示行,如下所示:

$ export PS1="> "

>

变动会急速生效,经由过程将 "export" 定义放在您的 ~/.bashrc 文件中可将这种变动固定

下来。只要您乐意,PS1 可以包孕随意率性数量的纯文本:

$ export PS1="This is my super prompt > "

This is my super prompt >

只管这很有趣,但在提示行中包孕大年夜量静态文本并不是分外有用。大年夜多半定制的提示行包 含诸如用户名、事情目录或主机名之类的信息。 这些花絮信息可以赞助您在 shell 天下中遨游。例如,下面的提示行将显示您的用户名和主机名:

$ export PS1="\u@\H > "

drobbins@freebox >

这个提示行对付那些以多个不合名称的帐户登录多台机械的人尤为有用,由于它可以提醒您:您今朝在哪台机永乐国际ag旗舰厅下载械上操作,拥有什么权限。

在上面的示例中,我们应用了专用的用反斜杠转义的字符序列,藉此看护 bash 将用户名

和主机名插入提示行中,当这些转义字符序列呈现在 PS1 变量中时,bash 就会用特定的值替

换它们。我们应用了序列 "\u"(表示用户名)和 "\H"(表示主机名的第一部分)。下面是 bash 可识别的整个专用序列的完备列表(您可以在 bash man page 的 "PROMPTING" 部分找

到这个列表):

序列 阐明

\a ASCII 响铃字符(也可以键入 \007)

\d "Wed Sep 06" 款式的日期

\e ASCII 转义字符(也可以键入 \033)

\h 主机名的第一部分(如 "mybox")

\H 主机的全称(如 "mybox.mydomain.com")

\j 在此 shell 中经由过程按 ^Z 挂起的进程数

\l 此 shell 的终端设备名(如 "ttyp4")

\n 换行符

\r 回车符

\s shell 的名称(如 "bash")

\t 24 小时制光阴(如 "23:01:01")

\T 12 小时制光阴(如 "11:01:01")

\@ 带有 am/pm 的 12 小时制光阴

\u 用户名

\v bash 的版本(如 2.04)

\V Bash 版本(包括补丁级别) ?/td>

\w 当前事情目录(如 "/home/drobbins")

\W 当前事情目录的“基名 (basename)”(如 "drobbins")

\! 当前敕令在历史缓冲区中的位置

\# 敕令编号(只要您键入内容,它就会在每次提示时累加)

\$ 假如您不是超级用户 (root),则插入一个 "$";假如您是超级用户,则显示一个 "#"

\xxx 插入一个用三位数 xxx(用零代替未应用的数字,如 "\007")表示的 ASCII 字符

\\ 反斜杠

\[ 这个序列应该呈现在不移动光标的字符序列(如颜色转义序列)之前。它使 bash 能够精确谋略自动换行。

\] 这个序列应该呈现在非打印字符序列之后。

这样,您已经知道了 bash 顶用反斜杠转义的整个专用序列。请轻细练习训练一下这些序列,以对它们的事情要领得到一些感性熟识。在您做了一些测试之后,下面开始添加颜色。

彩色化

添加颜色相称轻易;第一步是设计不带颜色的提示行。然后,我们所要做的只是添加终端 (而不是 bash)可识别的专用转义序列,以使它以彩色显示文本的某些部分。标准 Linux 终

端和 X 终端容许您设置前景(翰墨)颜色和背景颜色,假如必要,还可以启用 "bold" 字符。

有八种颜色可供我们选择。

颜色是经由过程在 PS1 中添加专用序列来选择的 -- 基础上是夹在 "\e["(永乐国际ag旗舰厅下载转义开方括号)

和 "m" 之间数字值。假如指定一个以上的数字代码,则用分号将它们分开。 下面是一个颜色

代码示例:

"\e[0m"

假如将数字代码指定为零,则它就会看护终端将前景、背景和加粗设置重置为它们的默认 值。您可能会在在提示行停止时应用这个代码,以使您键入的翰墨成为非彩色的。现在,让我 们看一下这些颜色代码。请留意下面的抓屏结果:

颜色表

要应用这个表,首先请查找您要应用的颜色,然后查找对应的前景编号 (30-37) 和背景 编号 (40-47)。例如,假如您爱好黑底绿字,则可将编号分手设为 32 和 40。 然后打开您的 提示行定义并在此中添加适当的颜色代码。下面的定义:

export PS1="\w> "

变为:

export PS1="\e[32;40m\w> "

到现在为止,提示行只管已经很不错了,但仍不太完美。在 bash 显示出事情目录今后,我们必要应用 "\e[0m" 序列将颜色从新设置为正常值。

export PS1="\e[32;40m\w> \e[0m" 这个定义将显示一个漂亮的绿色提示行,但我们仍必要做一些收尾事情。我们不必要包括

"40" 这个背景颜色设置,由于它将背景设置为玄色,而玄色是默认颜色。此外,绿色还很暗;

我们经由过程添加一个 "1" 颜色代码来修正这个问题,这将启用更亮的加粗翰墨。 除了这个改动

之外,我们还必要将整个非打印字符用专用的 bash 转义序列 "\[" 和 "\]" 括起来。这两个序列看护 bash,被括起来的字符不占用行上的任何空间, 这样就使自动换行能够继承正常工 作。没有这两个转义序列,只管您有了一个异常漂亮的提示行,然则假如您键入的敕令正好到 达终真个最右端,就会造成显示纷乱。下面是我们终极的提示行:

export PS1="\[\e[32;1m\]\w> \[\e[0m\]"

别担心在同一个提示行中应用几种颜色,就像下面这样:

export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\H> \[\e[0m\]"

Xterm 中的乐趣

我已阐清楚明了若何在提示行中添加信息和颜色,但您还可以更进一步。您可以经由过程在提示行中添加专用代码来使 X 终端(如 rxvt 或 aterm)的标题栏获得动态更新。 您所要做的只是

将下面的序列添加到您的 PS1 提示行中:

"\e]2;titlebar\a"

只须用您盼望其呈现在 永乐国际ag旗舰厅下载xterm 标题栏中的翰墨调换子串 "titlebar" 即可, 现在已经一 切就绪了!不必应用静态翰墨;您可以将 bash 转义序列插入标题栏中。请查看下面这个示例,它将用户名、主机名和当前事情目录显示在标题栏中,并定义了一个简短、豁亮的绿色提示行:

export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "

这便是我在上面的抓屏结果中所用的那个提示行。我爱好这个提示行,由于它将整个信息显示在标题栏上,而不是显示在终端上,终端对一行可以显示若干字符有限定。顺便提一句,

确保用 "\[" 和 "\]" 将您的标题栏序列括起来(由于就终端而言,这个序列长短打印序列)。

将大年夜量信息放在标题栏中的问题是,假如您应用非图形终端(如系统节制台),则看不到这些

信息。为了办理这个问题,可以在您的 .bashrc 中添加以下几行:

if [ "$TERM" = "linux" ]

then

#we're on the system console or maybe telnetting in

export PS1="\[\e[32;1m\]\u@\H > \[\e[0m\]"

else

#we're not on永乐国际ag旗舰厅下载 the console, assume an xterm

export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "

fi

这个 bash 前提语句将根据当前的终端设置动态设置提示行。为了得到同等性,您必然希

望设置设置设备摆设摆设您的 ~/.bash_profile,以便它在启动时搜索 (source) 您的 ~/.bashrc。确保您的

~/.bash_profile 文件中有以下这样一行:

source ~/.bashrc

这样,无论您开启一个登录 shell 照样一个非登录 shell,都邑得到同样的提示行。

好了,您已掌握了提示行魔术。现在尽情享受一下,制作一个漂亮的彩色提示行吧!

参考资本

* rxvt 是一款既好又小的 xterm,它正好有大年夜量关于转义序列的文档资料, 这些资料都

集中在源代码 tar 包中的 "doc" 目录下。

* aterm 是基于 rxvt 的另一款终端法度榜样。它支持几种很好的可视化特点,如透明和着色。

* bashish 是适用于各类终真个一种主题引擎。请查看事情中的 bashish 的一些很好的

抓屏结果!

作者简介

Daniel Robbins 住在新墨西哥州的 Albuquerque,他是 Gentoo Technologies 公司的总

载兼首席履行官,他照样 Gentoo Linux(一种运行于小我谋略机上的高档 Linux)和

Portage 系统(Linux 的下一代端口系统)的创作者。他同时也是 Macmillan 出版的

Caldera OpenLinux Unleashed、SuSE Linux Unleashed 和 Samba Unleashed 几本书的紧张

作者之一。因为深受 Pan Man 的影响,Daniel 在读二年级时第一次接解到 Logo 编程说话后

即执迷于谋略机。这可能是他后来作为 SONY El

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: