返回介绍

Hack-44 给点颜色给 PS1

发布于 2025-03-08 17:38:37 字数 2838 浏览 0 评论 0 收藏 0

给点颜色给 PS1

这里介绍了一堆关于彩色显示的代码...

1.字体颜色

用下面的代码可以让 PS1 变成蓝色:

export PS1="\e[0;34m\u@\h \w> \e[m "

知道这是为什么嘛?

因为我们在中间嵌入了颜色代码: \e[0;34m 以及关闭颜色的代码: \e[m

下面的命令会让颜色变得更亮,还带有加粗效果:

export PS1="\e[1;34m\u@\h \w> \e[m "

慢慢介绍里面的东西都是什么意思:

  • \e[ 颜色开启
  • x;ym 颜色的类型: x,y 自己定义
  • \e[m 关闭颜色

下面是一张颜色代码表:

颜色 代码
黑色 0;30
蓝色 0;34
绿色 0;32
青色 0;36
红色 0;31
紫色 0;35
棕色 0;33

如果把上面代码中的 0 替换成 1 就会使颜色加深,字体加粗。

2.字体背景色

我们不仅可以更改显示的字体的颜色,我们还可以改变字体的背景颜色:

export PS1="\e[47m\u@\h \w> \e[m "

上面的命令使我们得到了一个浅灰色的背景。

3.组合

没错,我们当然可以把上两种结果组合起来,实现任何你想要的结果:

export PS1="\e[0;34m\e[47m\u@\h \w> \e[m "
`

比如利用上面的代码就可以得到一个字体颜色为蓝色,字体背景色为浅灰的效果。

下面是我自己截的图,不要看花眼...

promopt_color

每一行命令都对应它下一行开头的颜色。

这里还是希望你亲自实验一下,而不是看一遍...

4. tput 命令

说实话,我对这里也是第一次见,长知识了。

例子:

$ export PS1="\[$(tput bold)$(tput setb 4)$(tput setaf
7)\]\u@\h:\w $ \[$(tput sgr0)\]"

其中:

  • tput setb [1-7] - 设置背景色
  • tput setf [1-7] - 设置前景色
  • tput setab [1-7] - 用 ANSI escape 设置背景色(我查了,但不懂...)
  • tput setaf [1-7] - 用 ANSI escape 设置前景色

前两个好使,就算用 echo 输出也是很漂亮的。

还有一些设置字体的选项:

  • tput bold 粗体
  • tput dim 亮度减半
  • tput smul 开启下划线
  • tput rmul 关闭下划线
  • tput rev 颜色反转,类似于高对比度那种
  • tput smso 开启高对比度模式
  • tput rmso 关闭高对比度模式
  • tput sgr0 关闭所有特效

颜色代码:

  • 0 – 黑色
  • 1 – 红色
  • 2 – 绿色
  • 3 – 黄色
  • 4 – 蓝色
  • 5 – 洋红
  • 6 – 青色
  • 7 - 白色

扩展阅读

9 UNIX / Linux tput Examples: Control Your Terminal Color and Cursor

本书简介:

  • Linux 进阶技巧
  • 巧妙的命令组合
  • Bash 某些技巧
  • 一共一百零一个(包括充数的)
  • 最后有个奖励章(额外技巧)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文