快速业务通道

Linux shell命令提示符

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-07
容易;第一步是设计不带颜色的提示行.然后,我们所要做的只是添加终端(而不是 bash)可识别的专用转义序列,以使它以彩色显示文本的某些部分.标准 Linux 终端和 X 终端允许您设置前景(文字)颜色和背景颜色,如果需要,还可以启用 "bold" 字符.有八种颜色可供我们选择.   颜色是通过在 PS1 中添加专用序列来选择的 -- 基本上是夹在 "e["(转义开方括号)和 "m" 之间数字值.如果指定一个以上的数字代码,则用分号将它们分开.下面是一个颜色代码示例:   "e[0m"   如果将数字代码指定为零,则它就会通知终端将前景、背景和加粗设置重置为它们的默认值.您可能会在在提示行结束时使用这个代码,以使您键入的文字成为非彩色的.现在,让我们看一下这些颜色代码.请注意下面的抓屏结果:   要使用这个表,请查找您要使用的颜色,然后查找对应的前景编号 (30-37) 和背景编号 (40-47).例如,如果您喜欢黑底绿字,则可将编号分别设为 32 和 40.然后打开您的提示行定义并在其中添加适当的颜色代码.下面的定义:   export PS1="w> "
Empire CMS,phome.net

  变为:
  export PS1="e[32;40mw> "   到现在为止,提示行尽管已经很不错了,但仍不太完美.在 bash 显示出工作目录以后,我们需要使用 "e[0m" 序列将颜色重新设置为正常值.   export PS1="e[32;40mw> 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;titlebara"    只须用您希望其出现在 xterm 标题栏中的文字替换子串 "titlebar" 即可,现在已经一切就绪了!不必使用静态文字;您可以将 bash 转义序列插入标题栏中.请查看下面这个示例,它将用户名、主机名和当前工作目录显示在标题栏中,并定义了一个简短、明亮的绿色提示行:   export PS1="[e]2;u@H wae[32;1m]>[e[0m] "   这就是我在上面的抓屏结果中所用的那个提示行.我喜欢这个提示行,它将全部信息显示在标题栏上,而不是显示在终端上,终端对一行可以显示多少字符有限制.顺便提一句,确保用 "[" 和 "]" 将您的标题栏序列括起来(就终端而言,这个序列是非打印序列).将大量信息放在标题栏中的问题是,如果您使用非图形终端(如系统控制台),则看不到这些信息.为了解决这个问题,可以在您的 .bashrc 中添加以下几行:
Empire CMS,phome.net

  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 wae[32;1m]>[e[0m] "
  fi    这个 bash 条件语句将根据当前的终端设置动态设置提示行.为了获得

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号