免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 18396 | 回复: 5
打印 上一主题 下一主题

[系统管理] 如何修改Linux命令提示符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-23 11:32 |只看该作者 |倒序浏览
Linux终端下的颜色设置
2008-10-30 shell, 3
(转载请说明出处)

参考Nico Golde牛牛的文章发挥:

    在 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提示符 。

转义序列

要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 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 即可。

够简单吧?

看看root下的shell:

论坛徽章:
17
CU大牛徽章
日期:2013-03-13 15:32:35午马
日期:2014-07-29 13:09:18未羊
日期:2014-09-19 16:21:07巳蛇
日期:2014-09-29 16:17:06巳蛇
日期:2014-10-16 08:33:00白羊座
日期:2014-10-16 09:10:24申猴
日期:2015-01-09 11:36:332015年亚洲杯之澳大利亚
日期:2015-03-03 13:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之沙特阿拉伯
日期:2015-03-27 11:24:282015亚冠之阿尔纳斯尔
日期:2015-06-16 11:50:23CU大牛徽章
日期:2013-03-13 15:38:15
2 [报告]
发表于 2012-05-23 14:32 |只看该作者
默认的黑白其实挺不错的,就是看久了眼睛不舒服。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
3 [报告]
发表于 2012-05-24 04:47 |只看该作者
扫盲贴适合放到新手园地

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015年迎新春徽章
日期:2015-03-04 09:57:09
4 [报告]
发表于 2012-05-24 21:34 |只看该作者
一直都是黑白,感觉还好。

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
5 [报告]
发表于 2012-05-25 12:58 |只看该作者
回复 1# jfxl


    我感觉我这样更爽

论坛徽章:
0
6 [报告]
发表于 2014-06-21 17:38 |只看该作者
你的文章  “如何修改Linux命令提示符” 中

\033[1;31;40m\$
---------> 定义了  $  字符 为红色。转义字符,所以前面加了 \
是不是应该写成这样
\033[1;31;40m \\$,要不然提示字符#就会固定位$,不会随用户属性变化了。

                              
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP