zoukankan      html  css  js  c++  java
  • Linux 修改终端命令提示符颜色

    相信很多人已经看厌了Linux已成不变的命令提示符的颜色,多数人要么使用默认的绿色,要么在使用PUTTY的时候设置成绿色的,不知道是否有人想到提示符可以设置成其他的颜色呢,本文就说明命令提示符变量PS1的设置。

    1、PS1变量简介

    PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。

    可以使用 man bash命令查看bash手册,找到该变量支持的特殊字符,以及这些特殊字符的意义:

     
    1. a     #an ASCII bell character (07)   
    2. d     #the date in "Weekday Month Date" format (e.g.,  "Tue  May   
    3.        26")   
    4. D{format}   
    5.        #the  format  is  passed  to strftime(3) and the result is   
    6.        #inserted into the prompt string; an empty format  results   
    7.        #in a locale-specific time representation.  The braces are   
    8.        #required   
    9. e     #an ASCII escape character (033)   
    10. h     #the hostname up to the first ‘.’   
    11.   H     #the hostname   
    12. j     #the number of jobs currently managed by the shell   
    13. l     #the basename of the shell’s terminal device name   
    14.      #newline   
    15.      #carriage return   
    16. s     #the name of the shell, the basename of  $0  (the  portion   
    17.        #following the final slash)   
    18.      #the current time in 24-hour HH:MM:SS format   
    19. T     #the current time in 12-hour HH:MM:SS format   
    20. @     #the current time in 12-hour am/pm format   
    21. A     #the current time in 24-hour HH:MM format   
    22. u     #the username of the current user   
    23. v     #the version of bash (e.g., 2.00)   
    24. V     #the release of bash, version + patch level (e.g., 2.00.0)   
    25. w     #the current working  directory,  with  $HOME  abbreviated   
    26.        #with  a tilde (uses the value of the PROMPT_DIRTRIM vari-   
    27.        #able)   
    28. W     #the basename of the current working directory, with $HOME   
    29.        #abbreviated with a tilde   
    30. !     #the history number of this command   
    31. #     #the command number of this command   
    32. $     #if the effective UID is 0, a #, otherwise a $   
    33. nn   #the character corresponding to the octal number nnn   
    34. \     #a backslash   
    35. [     #begin  a sequence of non-printing characters, which could   
    36.        #be used to embed a terminal  control  sequence  into  the   
    37.        #prompt   
    38. ]     #end a sequence of non-printing characters  

    下面我把常用的特殊字符做中文解释:

     
    1. d :#代表日期,格式为weekday month date,例如:"Mon Aug 1"   
    2. H :#完整的主机名称。   
    3. h :#仅取主机的第一个名字,如上例,则为fc4,.linux则被省略   
    4.  :#显示时间为24小时格式,如:HH:MM:SS   
    5. T :#显示时间为12小时格式   
    6. A :#显示时间为24小时格式:HH:MM   
    7. u :#当前用户的账号名称   
    8. v :#BASH的版本信息   
    9. w :#完整的工作目录名称。家目录会以 ~代替   
    10. W :#利用basename取得工作目录名称,所以只会列出最后一个目录   
    11. # :#下达的第几个命令   
    12. $ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$  

    2、颜色设置说明

    在PS1中设置字符序列颜色的格式为:[e[F;Bm]

    其中“F”为字体颜色,编号30~37;“B”为背景色,编号40~47。

    下面看下颜色表:

     
    1.     前景     背景      颜色
    2. ------------------------
    3.   30      40      黑色   
    4.   31      41      红色   
    5.   32      42      绿色   
    6.   33      43      黄色   
    7.   34      44      蓝色   
    8.   35      45      紫红色   
    9.   36      46      青蓝色   
    10.   37      47      白色  

    效果控制代码:

     
    1. 代码              意义   
    2. -------------------------   
    3.  0                 OFF   
    4.  1                 高亮显示   
    5.  4                 underline   
    6.  5                 闪烁   
    7.  7                 反白显示   
    8.  8                 不可见  

    3、示例

    我们用下面这个例子,解析PS1变量来设置有颜色的命令提示符:

    PS1="[e[32m]###[e[1;31m]u@[e[36m]h w]$[e[m"

    说明:

    ‘[e[32m]’用来设置‘###’的颜色为绿色,###就是显示现在运行的是第几条命令

    ‘[e[31m]’设置‘u@’的颜色为红色并高亮显示,如果指定多个数字需要用分号隔开。u@ 就是当前登录的用户名后跟一个‘@’符号。

    ‘[e[36m]’设置‘hw’为青蓝色,h表示主机名的第一位,如果主机名为centos6.lampbo.org,那么就显示centos6;w将显示完整的绝对路径。

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

    ‘[e[m]’使用来关闭颜色设置的。要是你没有这个的话;那么,你的命令提示符,包括你通过命令提示符输出的东西都是和最后一次的颜色设置相同。

    为了能够在启动和登录是可以保持刚刚设置的变量,需要将PS1的设置加入到用户home目录的.bashrc文件后。

    额外的示例:

    (1):PS1="e[1;32mue[me[1;33m@e[me[1;35mhe[m:w$ "

    (2):编辑.bashrc,加入以下内容:

     
    1. c_1="[e[0m%]"  
    2. c0="[e[30m%]"  
    3. c1="[e[31m%]"  
    4. c2="[e[32m%]"  
    5. c3="[e[33m%]"  
    6. c4="[e[34m%]"  
    7. c5="[e[35m%]"  
    8. c6="[e[36m%]"  
    9. c7="[e[37m%]"  
    10. PS1="$c0***** $c1w $c2*** $c3<u@h> $c4***** $c5! $c6***** $c7  $c1*** $c2$ $c_1"; export PS1  


     




  • 相关阅读:
    redis 之redis集群与集群配置
    redis 之redis-sentinel主从复制高可用
    Python 基础之函数的嵌套与nonlocal修改局部变量及闭包函数
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
  • 原文地址:https://www.cnblogs.com/sanyuanempire/p/6169047.html
Copyright © 2011-2022 走看看