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