作者tdb (tbd)
看板Linux
标题[分享] 彩色 shell 设定
时间Sun Aug 13 04:07:44 2006
大部分的 Linux 发行版的 bash shell 登入後都是长这样的「dbtsai@ubuntu:~$」,也
就是「帐号@hostname:目录$」,或许这样您会嫌太单调。其实这个是可以调的唷!整个
设定的环境变数放在 PS1 里面。
原始的 Ubuntu PS1 环境设定可以透过以下指令来得知。
######################################################################
dbtsai@ubuntu:~$ echo $PS1
\u@\h:\w\$ # \u 代表 username,\h 代表 hostname,\w 代表目录
######################################################################
所以依照上面的逻辑,您就可以很简单的去修改看看啦!
######################################################################
dbtsai@ubuntu:~$ PS1="[\u@\h \W \$] "
[dbtsai@ubuntu ~ $]
######################################################################
所以您应该发现了,在宣告环境变数时,它只会把整个环境变数的控制指令取代掉,其他
的都照常显示出来。
那麽现在要进阶一点,加上颜色控制功能。我们从一个很简单的范例开始,先告诉读者,
这有点像打 BBS 的 ANSI 控制码,例如『\[\033[1;33m\]』这样的控制码,就是定义从
这之後所有文字全部都是黄色!而那个 33m 就是定义黄色。我们还可以使用红色 (31m)
,绿色 (32m),蓝色 (34m),紫色 (35m),青色 (36m) 和白色 (37m)。当然还有其他可
以用的颜色码,如背景等等,如果又兴趣的读者可以去查询 bash 相关资料。
所以我们试试看下面范例的效果吧!
#############################################################################
dbtsai@ubuntu:~$ PS1='\[\033[1;33m\]\u@\h\w$ '
#############################################################################
读者会发现,全部都变成黄色了耶!连打的字都是黄色的!真 Orz 阿!其实这是因为最
後我们没有把它在变回成白色字,所以我们最後再加上白色的控置码吧!
#############################################################################
dbtsai@ubuntu:~$ PS1='\[\033[1;33m\]\u@\h\w$\[\033[1;37m\] '
#############################################################################
这时候看起来正常多了!只有前面那串 shell 部份是黄色的,打出来的字是正常的白色
!各位骇客一定不会那麽容易满足吧!笔者提供我花俏的设定给读者尝试看看吧!碍於印
刷的关系,无法让读者直接看到效果,读者一定要试试看唷!您将会爱上您的 shell 的
!
#############################################################################
PS1='\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\]:
\[\033[1;31m\]\w\[\033[1;36m\]\$ \[\033[0m\]'
#############################################################################
那麽每次用 shell 都要设定,启不是烦死了。若您要个人使用的话,可以加到
~/.bashrc 里面的最後一行!所谓的 ~/ 就是您读者个个人家目录啦! 您可以如以下这
样打,也就是在 shell 里面,打 ~/ 会直接用家目录取代,这样是不是方便多了呐!
若是您希望所有人预设都看到,很对不起,笔者还没找到方法!因为若您把设定写在
/etc/bash.bashrc 里面,虽然这是每个 user 登入都会读取的,但是 PS1 在 Ubuntu 内
每个使用者的 ~/.bashrc 都在再重新定义一次,所以设定还是会被最後读取的
~/.bashrc 盖过去而失效!所以建议自己改想要用的使用者吧!强迫中奖也不是 Linux
的精神哩。
您最後的办法是修改 /etc/skel/.bashrc,新建的使用者都会以它为范本拷到自己的目录
下,所以您可以把 PS1 加到上面,那新建使用者预设就有彩色 shell 的功能。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.121.148.92