SecularBird的专栏

The more learned ,the more unknown

终端bash美化(FC)
用Linux也已经一年多了,感觉几乎还是什么都不会。
大概是一直再做一些没多大意义的事的缘故吧,就像今天些的内容一样。
以前搞了一段时间的GENTOO,发现里面的bash提示(也就是[user@hostname directory]$)比FC中的漂亮,于是就想要改一下。

FC中bash的配置主要和/etc/bashrc,~/.bashrc有关,鉴于改/etc/bashrc是比较愚蠢的做法,一旦失误,可能对初学者带来极其严重的后果(FC中大部分的shell是bash),而改~/.bashrc可以用有相同的结果,所以我们选择后者。

bash的提示主要和PS1有关,在bash的manual中的PROMPTING一段中有相应的参数说明。PS1默认是'/v-/s/$',在FC中通常配置为’[/u@/h /W]//$',可以通过echo $PS1命令来查看。
bash中的色彩,主要和/etc/DIR_COLORS、/etc/DIR_COLORS.xterm有关系。
所以我们现在只要在~/.bashrc文件中设置相应的PS1值,便可以得到比较好看的颜色。
下面是我的配置文件中的一部分参考下。
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
# Define some colors first:
red='/e[0;31m'
RED='/e[1;31m'
green='/e[0;32m'
GREEN='/e[1;32m'
yellow='/e[0;33m'
YELLOW='/e[1;33m'
blue='/e[0;34m'
BLUE='/e[1;34m'
magenta='/e[0;35m'
MAGENTA='/e[1;35m'
cyan='/e[0;36m'
CYAN='/e[1;36m'
NC='/e[0m' # No Color

if [ "$PS1" ]; then
  case $TERM in
    xterm*)
        PS1="/[$magenta/]/u@/[$yellow/]/h /W //$/[$NC/]"
        ;;
    linux)
        PS1="/[$RED/]/u@/[$YELLOW/]/h /[$GREEN/]/W /[$MAGENTA/]//$/[$NC/]"
        ;;
    *) 
        PS1="/u @/h /W //$"
        ;;
    esac 
fi

网上有点说法像PS1="${red}/u@/h /W //$ $NC"也能工作,但是当你输的命令长一点超过一行你就会发现问题了。
在bash的menual中提到的PROMPTING中有
/[     begin a sequence of non-printing characters, which could be used to embed a terminal control sequence  into
       the prompt
/]     end a sequence of non-printing characters
使用他们可以有效的解决问题。 
阅读更多
个人分类: linux/unix
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

终端bash美化(FC)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭