tmux没有颜色 | linux PS1变量详解
最新办法
编辑~/.tmux.conf
1
set -g default-terminal "screen-256color"
一键命令: 1
echo set -g default-terminal \"screen-256color\" >> ~/.tmux.conf
以下原文
以ubuntu为例
编辑~/.bashrc
下面这段改一下: 1
2
3
4# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
添加一个screen*,如下: 1
2
3
4# 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 1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
颜色代码格式: 1
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

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