荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: wein.bbs@bbs.tju.edu.cn (wein), 信区: Linux
标  题: 技巧:提示行魔术,增强系统提示行(2)-zz
发信站: 天大求实BBS站 (Wed May 28 21:09:36 2003)
转信站: SZU!news.tiaozhan.com!UTJ

:Xterm 中的乐趣

我已说明了如何在提示行中添加信息和颜色,但您还可以更进一步。
您可以通过在提示行中添加专用代码来使 X 终端(如 rxvt 或 aterm)的标题栏得到动
态更新。
您所要做的只是将下面的序列添加到您的 PS1 提示行中:
"\e]2;titlebar\a"
只须用您希望其出现在 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 the console, assume an xterm
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
fi
这个 bash 条件语句将根据当前的终端设置动态设置提示行。
为了获得一致性,您一定希望配置您的 ~/.bash_profile,以便它在启动时搜索 (sour
ce)您的 ~/.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 Unleashe
d
和 Samba Unleashed 几本书的重要作者之一。
由于深受 Pan Man 的影响,Daniel 在读二年级时第一次接解到 Logo编程语言后即执迷
于计算机。
这可能是他后来作为 SONY Electronic Publishing/Psygnosis 的首席图形艺术家的原
因。
Daniel 喜欢与他的妻子 Mary 和他的新出生的女儿 Hadassah 共度美好时光。
可以通过 drobbins@gentoo.org 与 Daniel 联系。
--

                 只要存在的就可以理解

                      但不是赞同

*※ 来源:·天大求实 bbs.tju.edu.cn·[FROM:? 显示器的正前方!!!]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店