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 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033)。



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



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







代码:



        PS1="\[\033[1;32;40m[\033[0;32;40m\u@\h:\033[1;35;40m\w\033[1;32;40m]\033[1;31;40m\$\033[1;32;40m \]"



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



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



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



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



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



用代码解释:



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



                 \033[1;32;40m[



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



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



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



                \033[0;32;40m\u@\h:



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



                                                                                            0: 默认字体宽度。



                                                                                             32:字符颜色。绿色。



                                                                                             40:  背景颜色。黑色。



                   \033[1;35;40m\w



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



                                                                                             1:字符宽度。加亮。



                                                                                             35:字符颜色。洋红。



                                                                                             40:背景色。黑色。



                     \033[1;32;40m]



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



                     \033[1;31;40m\$



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



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



                      \033[1;32;40m



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



                       \]"



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



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



其实我的是没有关闭颜色转义序列,让自己输入的字符也改变颜色,整天看这黑白屏幕不爽哇!!如果不想改变输入颜色的话,用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。按照上面的例子来说就是在 \]" 前面加上 \033[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. 就可以按照你的意思来显示目录了

linux 修改命令提示符&ubuntu目录颜色个性化的更多相关文章

  1. Linux修改命令提示符(关于环境参量PS1)

    关乎环境参量的四个文件/etc/profile  /etc/bashrc ~/.bashrc  ~/.bash_profile $$$:/etc/profile:此文件为系统的每个用户设置环境信息,当 ...

  2. Linux修改磁盘挂载目录

    比如想把已经挂载在home目录上的硬盘挂载到data目录上, 如下操作 #df -h(查看分区情况及数据盘名称) # mkdir /data(如果没有data目录就创建,否则此步跳过) # umoun ...

  3. Linux学习教程 | 全文目录

    本教程最大的特点是通俗易懂,并且非常详细,花费 7 天时间即可快速了解 Linux. 第一章 Linux简介 1.1 操作系统是什么,操作系统概述 1.2 Linux是什么,有哪些特点? 1.3 Li ...

  4. Linux修改Shell命令提示符及颜色

    Linux修改Shell命令提示符及颜色 1. Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~ ...

  5. Linux:修改Shell命令提示符及颜色

    Linux修改Shell命令提示符及颜色   1. Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ...

  6. ubuntu 修改 ls 下的目录颜色

    ubuntu 下, ls 显示的目录的颜色,怎么说呢,看起来太费劲了. 于是想着修改成容易识别的颜色. 于是搜索了一下. 这里列举三个搜到的教程吧. 简单说我按这上面的方法做了,然后都失败了. 1.  ...

  7. Linux的命令提示符 修改

    Linux的命令提示符可按个人喜好随意更改,修改PS1的值即可: 在Ubuntu下若只是个别用户下修改~/.profile文件就好,所有用户统一则修改/etc/profile: 加入: export ...

  8. Linux如何修改命令提示符

    1.什么是命令提示符 命令提示符是CLI(command-line interface,命令行界面)在人机交互的过程中提示用户可以进行命令输入的特殊符号,在Linux中普通用户的prompt为“$”, ...

  9. linux修改PS1,自定义命令提示符样式

    目录 参数说明 修改颜色 linux默认的命令提示符是这样的: 白色的,如果当前执行的命令很多的话,一整块屏幕上全是一堆输出信息,上一条命令在哪?我刚输入的命令在哪?找的头晕.有没有办法可以修改命令提 ...

随机推荐

  1. MySQL中\g和\G的作用

    \g的作用和MySQL中的分号”;"是一样: \G的作用是讲查找到的内容结构旋转90度,变成纵向结构: 下面举例说明,查找数据库中的存在的存储过程状态: SHOW PROCEDURE STA ...

  2. python requests 高级用法 -- 包括SSL 证书错误的解决方案

    Session Objects会话对象 Session对象在请求时允许你坚持一定的参数.此外,还坚持由Session实例的所有请求的cookie. 让我们坚持在请求时使用 s = requests.S ...

  3. 廖雪峰Java15JDBC编程-3JDBC接口-3JDBC更新

    使用update语句的时候,需要通过JDBC实现update语句的执行,这个时候仍然通过PreparedStatement对象来使用,直接传入update语句,然后通过setObject传入占位符的值 ...

  4. STL vector容器需要警惕的一些坑

    从迭代器中取值切记需要判断是否为空 例如: vector<int> vtTest; vtTest.clear(); if (vtTest.empty()){ ; } ]; 如果没有忘了判断 ...

  5. make: 警告:检测到时钟错误。您的创建可能是不完整的。

    我在make的时候也出现了同样的问题,不过不是什么大问题,这个不影响编译结果,但是强迫症还是希望能解决掉 分析原因可能是:服务器上的文件最后修改时间比当前时钟要晚 解决办法:用touch 命令把源程序 ...

  6. SPSS超详细操作:分层回归(hierarchical multiple regression)

    SPSS超详细操作:分层回归(hierarchical multiple regression) 1.问题与数据 最大携氧能力(maximal aerobic capacity, VO2max)是评价 ...

  7. 自建免费的代理ip池

    00x01--- 前言 因为爬虫被禁ip这样的反扒真的很凶,但自从建了一个代理ip池以后,反反扒就可以跟的上节奏.当然你也可以上网上各种代理平台自己付费.这些平台当然很方便提供api调用,还不用自己验 ...

  8. 05-python 学习第五天-简单验证码

    通过python 随机数可以制作简单的验证码. 1.0版本来了,这验证码,只有一个码,功能虽然达不到,逻辑还是准确的,目前还不能算是验证码,但是我们会继续完善的. import random # 导入 ...

  9. Leetcode958. Check Completeness of a Binary Tree二叉树的完全验证性

    给定一个二叉树,确定它是否是一个完全二叉树. 百度百科中对完全二叉树的定义如下: 若设二叉树的深度为 h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集 ...

  10. mac上开启22号端口

    在苹果maC系统SSH 远程登录服务器,采用默认22端口,登录出现了以下的提示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...