tmux没有颜色 | linux PS1变量详解

最新办法

编辑~/.tmux.conf

set -g default-terminal "screen-256color"

一键命令:

echo set -g default-terminal \"screen-256color\" >> ~/.tmux.conf

以下原文

以ubuntu为例
编辑~/.bashrc
下面这段改一下:

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

添加一个screen*,如下:

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color|screen*) color_prompt=yes;;
esac

如果只是tmux没有颜色,到这里就可以结束了。下面是其他的。

一点私货

更改ssh连接时的控制台标题栏:
主要是通过更改环境变量PS1来实现的
默认的PS1

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

颜色代码格式:

echo -e "\033[前景色值;背景色值m 文本\033[0m"

用m来结束一段转义序列。前景色值和背景色值使用分号间隔,不分先后,因为两种值的颜色范围不一样,比如 黑色 30 40 。另外分开写同样生效,如 \033[44m\033[32m

各类数字代表的含义:
功能类:
0m 关闭所有属性
1m 设置高亮度
4m 下划线
5m 闪烁
7m 反显
8m 消隐

颜色类:
背景色:40-47,前景色:30-37
前景色就是字体颜色

背景色 前景色
40:黑色 30:黑色
41:红色 31:红色
42:绿色 32:绿色
43:黄色 33:黄色
44:蓝色 34:蓝色
45:紫色 35:紫色
46:天蓝 36:天蓝
47:白色 37:白色

然后可以分析PS1了。

首先,所有非打印字符需要放在\[\]之间,\033或者\e来开启一段转义字符。\a作为字符串终止符。

先看第一段:
\[\e]0;\u@233: \w\a\]
两边的\[\]是包裹这段非打印字符的
\e开启一段转义序列。]表示之后的数字代表一个Operating system command(OSC)0表示设置终端标题,;后面就是终端标题,最后用字符串终止符\a结束标题。
可以参考:console_codes
image

剩下的部分就好理解了,都是设置终端输入提示的,设置了不同的颜色等等。
\h: 主机名
\u: 用户名
\w: 工作目录
剩下的详见Controlling-the-Prompt
最后一个$是输入的标志符号

posted @ 2022-11-03 19:40  王冰冰  阅读(315)  评论(0编辑  收藏  举报