`
xu_wccq
  • 浏览: 130901 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

用巧命令行DIY你的xterm 颜色 for linux

阅读更多
在上面的示例中,我们使用了专用的用反斜杠转义的字符序列,藉此通知 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["(转义开方括号)和 "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"



只须用您希望其出现在 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,以便它在启动时搜索 (source) 您的 ~/.bashrc。确保您的 ~/.bash_profile 文件中有以下这样一行:
分享到:
评论

相关推荐

    Xterm一个用于远程连接linux的图形可视化工具

    **Xterm:Linux远程连接的图形化神器** Xterm,全称X Window终端模拟器,是Linux操作系统下的一款强大的终端模拟器。...无论你是系统管理员、开发者还是Linux爱好者,Xterm都值得你去了解和使用。

    MobaXterm 用于操作linux系统

    总的来说,MobaXterm 是一个非常实用的工具,它将Linux系统的命令行操作与Windows的图形界面完美结合,简化了远程运维和开发过程,对于经常在Windows和Linux系统间切换的用户来说,是一个不可或缺的利器。

    MobaXterm_CHS远程Linux工具.zip

    《MobaXterm:连接与管理远程Linux系统的全能利器》 MobaXterm,这款备受赞誉的远程Linux客户端软件,以其强大的功能和易用性在IT业界赢得了广泛的赞誉。它不仅是一个终端模拟器,还集成了多种网络工具,使得用户...

    xterm5 (linux终端工具)破解版

    在 unix 中虚拟终端有很多种, 但因为是在 fvwm 中使用, 因此不想依赖 gnome 或是 kde 中的东西, 这么一排除, 几乎就只剩下 rxvt(rxvt, urxvt, mrxvt ...) 和 xterm 了. google 了一下这两种终端的不同, 最终选择了 ...

    MobaXterm远程linux机器连接工具

    除了SSH,MobaXterm还支持RDP(远程桌面协议)、VNC(虚拟网络计算)等其他远程桌面协议,这意味着你不仅能管理Linux服务器,还能连接到Windows或Unix系统的远程桌面,实现多平台的统一管理。 **4. 文件传输** Moba...

    mobaxterm无法连接到liunx的解决办法.doc

    标题中的“mobaxterm无法连接到liunx的解决办法”指的是在Linux系统(这里特别提到了Ubuntu)重装后,使用MobaXterm这款软件无法成功建立SSH连接的问题。MobaXterm是一款流行的终端模拟器,尤其受IT专业人员喜爱,...

    mobaxterm 连接Linux工具

    ** Mobaxterm:一款全能的Linux连接工具** Mobaxterm是一款专为IT专业人士设计的强大工具,尤其适合Linux系统运维人员。它集成了多种远程连接协议,如SSH(Secure Shell)、FTP(File Transfer Protocol)、串口...

    MobaXterm SSHX远程 Linux系统访问客户端

    MobaXterm是一款SSHX远程控制软件,当程序员需要远程工作时,它可以起到非常重要的作用。

    MobaXterm接管Linux

    **正文** MobaXterm是一款深受开发者和系统管理员喜爱的跨平台终端软件,尤其在Linux系统管理方面展现出其独特的优势。...因此,无论是新手还是经验丰富的专业人士,都值得尝试和使用MobaXterm来接管Linux操作。

    快乐的Linux命令行

    - **为什么使用命令行**:在Linux环境中,命令行界面(CLI)提供了一种高效、直接与系统交互的方式。相较于图形用户界面(GUI),命令行允许用户通过简单的文本命令来完成复杂任务,如文件管理、进程监控等。它特别...

    MobaXterm v21.5 linux 多合一远程管理工具 全能型终端神器 MobaXterm

    MobaXterm v21.5 linux 多合一远程管理工具 全能型终端神器 MobaXterm Linux 远程管理工具 linux 远程管理工具 多合一远程管理工具 全能型终端神器 MobaXterm 1.功能强大,支持SSH,FTP,串口,VNC,X server等功能...

    MobaXterm_Personal远程连接Linux终端的神器

    MobaXterm是一款深受IT专业人士喜爱的远程连接工具,尤其对于需要频繁与Linux服务器交互的用户来说,它堪称神器。这款软件集成了多种网络工具,包括SSH、Telnet、RDP、VNC等,能够方便地进行远程控制和文件传输。在...

    Linux免密登入 使用公钥+私钥:MobaXterm设置无密码登录

    ### Linux免密登录详解:利用MobaXterm实现公钥+私钥认证 #### 一、密钥对的概念 ...通过上述步骤,您可以轻松地使用MobaXterm实现Linux环境下的免密登录。这种方法不仅提高了工作效率,还增强了系统的安全性。

    MobaXterm backup_window远程操作linux服务器软件_

    除此之外,MobaXterm还包括了一个内置的终端,提供了一整套的Unix命令行工具,如ls、cd、vi等,使得Windows用户在不离开熟悉的环境就能执行Linux命令。对于那些习惯于使用命令行的用户,这是一个极大的便利。 总的...

    Linux环境搭建VMware+xterm

    为自己的电脑配置Linux环境,在VMware中安装Linux,使用Xterm连接Linux(可视化操作界面),详细介绍,包含安装细节,以及对应的Linux操作命令

    MobaXterm_Personal_11.1(远程连接Linux).zip

    本文将详细介绍MobaXterm的功能特性、使用方法以及其在远程连接Linux中的应用。 MobaXterm,全名MobaXterm Personal Edition,是一款免费的、基于Windows平台的全能型远程计算工具。它集成了多种远程协议,如SSH、...

    MobaXterm linux客户端

    1. 功能十分强大,支持SSH,FTP,串口,VNC,X server等功能; 2. 支持标签,切换也十分方便; 3. 众多快捷键,操作方便; 4. 有丰富的插件,可以进一步增强功能; 5. 虽然有收费版,但免费版已经可以让我们装逼装...

    快乐的Linux命令行(高清版PDF带书签)

    ### 快乐的Linux命令行 #### 引言 在《快乐的Linux命令行》这本书中,作者旨在通过轻松愉快的方式向读者介绍Linux命令行的基础知识。对于新手来说,掌握命令行不仅可以提升工作效率,还能更好地理解和操作Linux...

    Linux系统下如何改进系统命令行工具

    通过对Linux系统下的命令行工具进行个性化设置,不仅可以提升用户的使用体验,还能够提高工作效率。本文介绍的方法涵盖了从简单的文本更改到复杂的颜色配置,旨在帮助读者根据自身需求定制出既美观又实用的shell提示...

    colors:Xterm的256种颜色代码的列表,包括颜色,Xterm名称,Xterm编号,HEX,RGB和HSL代码的示例

    `Xterm`是XTerminal Emulator的简称,它是一款广泛使用的Linux终端模拟器,支持256色模式。这个名为"colors"的资源提供了一个详尽的256种颜色代码列表,用于在Xterm环境中进行色彩配置和调用。 颜色代码分为不同的...

Global site tag (gtag.js) - Google Analytics