• linux 修改命令提示符&ubuntu目录颜色个性化



    1.linux 命令提示符个性化

    在 ANSI 兼容终端(例如 xterm、rxvt、konsole 等)里, 可以用彩色显示文本而不仅仅是黑白。 本文示范了如何使用粗体和彩色的文字。

        相信每一位Linux使用者都要面对 Bash。 虽然第一眼看上去非常枯燥,但是又很多方法能够让你的 shell 足够的个性化。 shell 提示符的彩色增强让能够让你的 shell 独一无二, 而且还非常清晰易读。

    在本文中我以 Bash shell 为例。因为在不同的终端里的转义序列不完全相同, 所以在本文中我使用的是 ANSI 终端。 

      shell 彩色配置出现在 bash 的个人配置文件 ~/.bashrc 或者是全局配置文件 /etc/bashrc 里面。 可以通过bashrc 里面的 PS1 变量来设置提示符的外观。

    一般默认的情况下.bashrc里面应该是:

                     ~/.bashrc

                      export    PS1=' u@h:w$ '

                      上面的意思是:用户@主机:当前目录 $

                       -->这也是大家都非常熟悉的shell提示符 。

    下面简单说说环境下默认的特殊符号所代表的意义:

    /d :代表日期,格式为weekday month date,例如:"Mon Aug 1"

    /H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux

    /h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略

    /t :显示时间为24小时格式,如:HH:MM:SS

    /T :显示时间为12小时格式

    /A :显示时间为24小时格式:HH:MM

    /u :当前用户的账号名称

    /v :BASH的版本信息

    /w :完整的工作目录名称。家目录会以 ~代替

    /W :利用basename取得工作目录名称,所以只会列出最后一个目录

    /# :下达的第几个命令

    /$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$



    转义序列

    要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。 在 shell 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 33 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033)。

    要直接在 shell 里面输入转义序列我们需要先按 ctrl-v:CTRL-v ESC。 

    下面进入主题,说下该如何用shell的颜色。我用我自己的shell颜色设置详细说明.



    代码:

            PS1="[33[1;32;40m[33[0;32;40mu@h:33[1;35;40mw33[1;32;40m]33[1;31;40m$33[1;32;40m ]"

    最外边的"[    ]"是为了把转义序列的字符串括起来,防止转义序列的文本显示在 shell 里占用太多的空间。

    33 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义了字符背景色。字母m是定义本身所必须的,字母m后面的字符就是你想改变的字符了。

    可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。

    用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。

    比如上面我的定义中: 最后显示的结果是在$号之前的字符全部用一个浅绿色的中括弧扩起来。$字符 显示为红色。后面的输入显示为高亮浅绿色。在括弧里面,用户名@主机显示为深绿色,路径显示为洋红。

    用代码解释:

    Ps1 ="[                                                  -------------> 最外面的括弧

                     33[1;32;40m[

                                                   ----> 定义最右边的" [ " ;1:字体宽度,好像有加亮功能。

                                                                                                  32:字符颜色。32表示绿色。

                                                                                                  40:背景色,40表示黑色。

                    33[0;32;40mu@h:

                                                    --------->定义右边的 u@h:  这几个字符颜色。

                                                                                                0: 默认字体宽度。

                                                                                                 32:字符颜色。绿色。

                                                                                                 40:  背景颜色。黑色。

                       33[1;35;40mw

                                                      ---------> 定义右边的 w  (路径颜色) 。

                                                                                                 1:字符宽度。加亮。

                                                                                                 35:字符颜色。洋红。

                                                                                                 40:背景色。黑色。

                         33[1;32;40m]

                                                      ---------> 定义右边的  ]  字符。跟前面的   [   字符使用同一效果。

                         33[1;31;40m$

                                                       ---------> 定义了  $  字符 为红色。转义字符,所以前面加了 .

                                                                           颜色都跟前面差不多。相信大家都发现规律了。

                          33[1;32;40m

                                                      ----------> 这个定义了你在命令行要输入命令显示的颜色。

                           ]"

                                                      -----------> 字符串结束括弧。

    这个就是上面例子的详细定义内容。

    其实我的是没有关闭颜色转义序列,让自己输入的字符也改变颜色,整天看这黑白屏幕不爽哇!!如果不想改变输入颜色的话,用 33[0m 关闭转义序列, 33[0m 是 shell 的默认颜色。按照上面的例子来说就是在 ]" 前面加上 33[0m 即可。

    2.ubuntu 修改目录的显示颜色

    因为ubuntu下的/etc/目录里没有DIR_COLORS, 所以费了点劲儿

    1. 利用dircolors命令,查看我们的系统当前的文件名称显示颜色的值,然后利用管道重定向到用户目录下的任意一个文件(这里我们创建了一个.dir_colors文件)

         命令1: cd ~

        命令2: dircolors -p > .dir_colors

    2. 用vim打开.dir_colors文件,然后找到“DIR 01;34”   //这里的01表示高亮度显示,34表示蓝色,33表示黄色

        修改为 “DIR 01;33”,保存退出

    3. 为了将修改之后的配置文件导入到dircolors中,我们采取如下的方案

        打开用户目录下的.bashrc文件,找到类似“eval 'dircolors -b '”(如果没有自行添加),

       修改为 eval 'dircolors -b .dir_colors'   保存退出   //这里的.dir_colors就是我们前面自己创建的文件

    4. 为了让修改生效,退出,并重新进入系统

    命令: exit

    5. 就可以按照你的意思来显示目录了

  • 相关阅读:
    Autofac官方文档翻译--二、解析服务--2隐式关系类型
    Verdi 不加载filelist,load design方法
    Power-Aware GateSim Debug
    simulation vs emulation
    关于SMI、MSI、SCI、INTx各种中断小结【转】
    zgrep用法
    sometimes we should use "disable fork" instead of "disable block_name"
    How to view assertions in the Verdi waveform viewer
    FIFO设计中的深度计算【zz】
    写写我的硕士三年【zz】
  • 原文地址:https://www.cnblogs.com/zsw-1993/p/4879700.html
Copyright © 2020-2023  润新知