Linux 终端文件列表着色方案 🌈 本指南详细介绍如何为 Linux 的 ls 命令配置彩色输出,#
Linux 终端文件列表着色方案 🌈
本指南详细介绍如何为 Linux 的 ls
命令配置彩色输出,让文件列表更加直观和易于识别。通过精心设计的颜色方案,您可以大幅提升终端使用效率和体验!🎨
📖 导航目录
🎯 一、快速配置方法
1. 创建着色配置
1
2
3
4
5
6
7
8
9
|
# 将着色配置添加到 .bashrc 文件
cat >> ~/.bashrc << 'EOF'
# LS 颜色配置
alias ls='ls --color=auto'
export LS_COLORS='di=1;34:ln=1;36:so=1;35:pi=1;33:ex=1;32:bd=1;34:cd=1;34:su=1;41:sg=1;46:tw=1;42:ow=1;33:*.gz=1;32:*.mp4=1;32'
EOF
# 立即生效
source ~/.bashrc
|
2. 验证配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 测试配置是否生效
ls -la
# 🎨 应该显示彩色输出
# 检查 LS_COLORS 变量
echo $LS_COLORS
# 创建测试文件和环境
mkdir -p /tmp/color-test && cd /tmp/color-test
touch {file.txt,script.sh,image.jpg,archive.tar.gz,music.mp3}
chmod +x script.sh
ln -s file.txt link.txt
mkfifo pipe.fifo
ls -la
|
📊 二、颜色代码详解
文件类型颜色代码
代码 |
颜色 |
效果 |
示例 |
1;34 |
蓝色 |
粗体蓝色 |
目录 |
1;36 |
青色 |
粗体青色 |
符号链接 |
1;35 |
紫色 |
粗体紫色 |
Socket 文件 |
1;33 |
黄色 |
粗体黄色 |
命名管道 |
1;32 |
绿色 |
粗体绿色 |
可执行文件 |
1;41 |
红底 |
粗体白色,红色背景 |
setuid 文件 |
1;46 |
青底 |
粗体黑色,青色背景 |
setgid 文件 |
1;42 |
绿底 |
粗体黑色,绿色背景 |
粘滞位目录 |
文件类型标识符
代码 |
文件类型 |
说明 |
示例 |
di |
目录 |
Directory |
/home/user/ |
ln |
符号链接 |
Symbolic Link |
link -> target |
so |
Socket 文件 |
Socket |
/run/service.sock |
pi |
命名管道 |
FIFO/Named Pipe |
pipe.fifo |
ex |
可执行文件 |
Executable |
script.sh |
bd |
块设备 |
Block Device |
/dev/sda |
cd |
字符设备 |
Character Device |
/dev/tty |
su |
setuid 文件 |
Set UID |
/usr/bin/passwd |
sg |
setgid 文件 |
Set GID |
/usr/bin/wall |
tw |
粘滞位目录 |
Sticky Bit Directory |
/tmp/ |
ow |
其他可写目录 |
Other Writable Directory |
/var/www/ |
*.ext |
扩展名匹配 |
按文件扩展名 |
*.txt , *.jpg |
颜色代码格式
1
2
3
4
5
6
7
|
# 基本格式
TYPE=STYLE;FOREGROUND;BACKGROUND
# 示例
di=1;34 # 目录:粗体蓝色文本
*.txt=1;32 # txt文件:粗体绿色文本
*.jpg=1;35 # jpg文件:粗体紫色文本
|
样式代码
代码 |
样式 |
0 |
正常样式 |
1 |
粗体 |
4 |
下划线 |
5 |
闪烁 |
7 |
反显 |
8 |
隐藏 |
颜色代码表
代码 |
前景色 |
背景色 |
30 |
黑色 |
40 |
31 |
红色 |
41 |
32 |
绿色 |
42 |
33 |
黄色 |
43 |
34 |
蓝色 |
44 |
35 |
紫色 |
45 |
36 |
青色 |
46 |
37 |
白色 |
47 |
39 |
默认前景色 |
49 |
🎨 三、自定义颜色方案
1. 基础颜色方案
1
2
|
# 简洁明了的颜色方案
export LS_COLORS='di=1;34:ln=1;36:so=1;35:pi=1;33:ex=1;32:*.tar=31:*.tgz=31:*.zip=31:*.gz=31:*.bz2=31:*.deb=31:*.rpm=31:*.jpg=35:*.png=35:*.gif=35:*.mp4=35:*.mp3=35:'
|
2. 高级颜色方案
1
2
|
# 更详细的文件类型区分
export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'
|
3. 暗色主题方案
1
2
|
# 适合暗色终端的方案
export LS_COLORS='di=1;36:ln=1;35:so=1;32:pi=1;33:ex=1;31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=34;42:*.c=1;33:*.h=1;33:*.py=1;33:*.js=1;33:*.html=1;33:*.css=1;33:*.json=1;33:'
|
4. 高对比度方案
1
2
|
# 适合视力不佳用户的高对比度方案
export LS_COLORS='di=1;37;44:ln=1;37;46:so=1;37;45:pi=1;37;43:ex=1;37;42:bd=1;37;44:cd=1;37;44:su=1;37;41:sg=1;30;47:tw=1;30;42:ow=1;37;44:*.txt=1;37:*.sh=1;32:*.py=1;33:*.js=1;33:*.html=1;33:*.css=1;33:*.jpg=1;35:*.png=1;35:*.gif=1;35:*.mp4=1;35:*.mp3=1;36:'
|
⚙️ 四、系统级配置
1. 全局配置(所有用户)
1
2
3
4
5
6
7
8
9
10
11
|
# 编辑全局配置文件
sudo nano /etc/bash.bashrc
# 添加以下内容
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
|
2. 使用 dircolors 配置文件
1
2
3
4
5
6
7
8
9
10
11
|
# 生成默认配置
dircolors -p > ~/.dircolors
# 编辑自定义配置
nano ~/.dircolors
# 应用配置
eval "$(dircolors -b ~/.dircolors)"
# 查看默认配置内容
cat ~/.dircolors | head -20
|
3. 为不同用户设置不同方案
1
2
3
4
5
6
7
8
9
10
11
|
# 在用户家目录创建个性化配置
cat > ~/.ls_colors << 'EOF'
# 个性化 LS_COLORS 配置
di=1;34:ln=1;36:so=1;35:pi=1;33:ex=1;32
*.txt=1;37:*.sh=1;32:*.py=1;33:*.js=1;33
*.jpg=1;35:*.png=1;35:*.gif=1;35
*.mp4=1;35:*.mp3=1;36:*.flac=1;36
EOF
# 在 .bashrc 中引用
echo 'export LS_COLORS=$(cat ~/.ls_colors | tr -d "\n")' >> ~/.bashrc
|
🔧 五、其他相关配置
1. 为其他命令启用颜色
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 在 ~/.bashrc 中添加
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias ip='ip -color=auto'
# 对于 diff 命令
alias diff='diff --color=auto'
# 对于 ls 的更多别名
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
|
2. 树状显示带颜色
1
2
3
4
5
6
7
8
9
10
11
|
# 安装 tree 命令
sudo apt install tree
# 使用彩色 tree
alias tree='tree -C'
# 永久生效
echo "alias tree='tree -C'" >> ~/.bashrc
# 使用示例
tree -L 2 /home
|
3. 彩色 man 页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 启用彩色 man 页面
export LESS_TERMCAP_mb=$'\E[1;31m' # 开始闪烁
export LESS_TERMCAP_md=$'\E[1;36m' # 开始粗体
export LESS_TERMCAP_me=$'\E[0m' # 结束模式
export LESS_TERMCAP_so=$'\E[01;44;33m' # 开始突出显示
export LESS_TERMCAP_se=$'\E[0m' # 结束突出显示
export LESS_TERMCAP_us=$'\E[1;32m' # 开始下划线
export LESS_TERMCAP_ue=$'\E[0m' # 结束下划线
# 添加到 ~/.bashrc
cat >> ~/.bashrc << 'EOF'
# 彩色 man 页面
export LESS_TERMCAP_mb=$'\E[1;31m'
export LESS_TERMCAP_md=$'\E[1;36m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_us=$'\E[1;32m'
export LESS_TERMCAP_ue=$'\E[0m'
EOF
|
4. 彩色提示符
1
2
3
4
5
|
# 在 ~/.bashrc 中添加彩色提示符
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# 更复杂的提示符
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(git branch 2>/dev/null | grep -e ^* | sed -E "s/^\* (.+)$/ \[\033[01;33m\](\1)\[\033[00m\]/")\$ '
|
🐛 六、故障排除
1. 颜色不显示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 检查终端是否支持颜色
echo $TERM
# 应该显示: xterm-256color 或类似
# 强制启用颜色
export TERM=xterm-256color
# 检查是否设置了 NO_COLOR 环境变量
echo $NO_COLOR
# 如果设置了,取消设置
unset NO_COLOR
# 检查 ls 命令是否支持颜色
ls --color=always | head -5
|
2. 颜色配置无效
1
2
3
4
5
6
7
8
9
10
11
|
# 重新加载配置
source ~/.bashrc
# 检查别名
alias ls
# 检查变量
echo $LS_COLORS
# 检查是否有其他配置覆盖
grep -n "LS_COLORS\|alias ls" ~/.bashrc ~/.profile ~/.bash_profile
|
3. 恢复默认设置
1
2
3
4
5
6
7
8
9
10
|
# 删除自定义配置
sed -i '/LS_COLORS/d' ~/.bashrc
sed -i '/alias ls/d' ~/.bashrc
# 重新加载
source ~/.bashrc
# 或者使用默认值
export LS_COLORS=""
alias ls='ls --color=auto'
|
4. 终端兼容性问题
1
2
3
4
5
6
7
8
|
# 对于某些终端,可能需要不同的设置
if [ "$TERM" = "dumb" ]; then
alias ls='ls --color=never'
alias grep='grep --color=never'
else
alias ls='ls --color=auto'
alias grep='grep --color=auto'
fi
|
💡 七、实用技巧
1. 临时测试颜色方案
1
2
3
4
5
|
# 临时设置而不修改配置文件
LS_COLORS='di=1;34:ln=1;36:ex=1;32' ls -la
# 测试特定文件类型
LS_COLORS='*.sh=1;32:*.py=1;33:*.js=1;33' ls -la
|
2. 查看所有颜色代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 显示所有可用的颜色代码
for i in {0..255}; do
printf "\e[48;5;%sm%3d\e[0m " $i $i
if (( (i + 1) % 16 == 0 )); then
printf "\n"
fi
done
# 或者使用更简单的版本
echo -e "\e[0mNC (No color)"
echo -e "\e[1;37mBold White\e[0m"
echo -e "\e[1;31mBold Red\e[0m"
echo -e "\e[1;32mBold Green\e[0m"
echo -e "\e[1;33mBold Yellow\e[0m"
echo -e "\e[1;34mBold Blue\e[0m"
echo -e "\e[1;35mBold Purple\e[0m"
echo -e "\e[1;36mBold Cyan\e[0m"
|
3. 创建颜色测试脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 创建测试文件
mkdir -p /tmp/color-test
cd /tmp/color-test
touch {file.txt,script.sh,image.jpg,archive.tar.gz,music.mp3}
chmod +x script.sh
ln -s file.txt link.txt
mkfifo pipe.fifo
# 测试颜色显示
ls -la
# 清理测试文件
cd ..
rm -rf /tmp/color-test
|
4. 导出和导入配置
1
2
3
4
5
6
7
8
|
# 导出当前 LS_COLORS 配置
echo $LS_COLORS > ls_colors_backup.txt
# 从文件导入配置
export LS_COLORS=$(cat ls_colors_backup.txt)
# 分享配置给其他用户
echo "export LS_COLORS='$LS_COLORS'" >> ~/shared_ls_colors.sh
|
🌟 八、颜色方案推荐
1. 程序员专用方案
1
|
export LS_COLORS='di=1;34:ln=1;36:so=1;35:pi=1;33:ex=1;32:bd=1;34:cd=1;34:su=1;41:sg=1;46:tw=1;42:ow=1;33:*.c=1;33:*.h=1;33:*.cpp=1;33:*.hpp=1;33:*.py=1;33:*.js=1;33:*.html=1;33:*.css=1;33:*.json=1;33:*.xml=1;33:*.yml=1;33:*.yaml=1;33:*.md=1;33:*.txt=1;37:*.conf=1;33:'
|
2. 多媒体方案
1
|
export LS_COLORS='di=1;34:ln=1;36:so=1;35:pi=1;33:ex=1;32:*.jpg=1;35:*.jpeg=1;35:*.png=1;35:*.gif=1;35:*.bmp=1;35:*.mp4=1;35:*.avi=1;35:*.mkv=1;35:*.mov=1;35:*.mp3=1;36:*.flac=1;36:*.wav=1;36:*.ogg=1;36:*.aac=1;36:'
|
3. 文档方案
1
|
export LS_COLORS='di=1;34:ln=1;36:so=1;35:pi=1;33:ex=1;32:*.pdf=1;31:*.doc=1;31:*.docx=1;31:*.xls=1;31:*.xlsx=1;31:*.ppt=1;31:*.pptx=1;31:*.odt=1;31:*.ods=1;31:*.odp=1;31:*.txt=1;37:*.rtf=1;37:*.tex=1;33:'
|
4. 服务器管理方案
1
|
export LS_COLORS='di=1;34:ln=1;36:so=1;35:pi=1;33:ex=1;32:*.conf=1;33:*.cfg=1;33:*.ini=1;33:*.yml=1;33:*.yaml=1;33:*.json=1;33:*.xml=1;33:*.log=1;37:*.sql=1;33:*.db=1;33:*.sh=1;32:*.py=1;33:*.pl=1;33:'
|
5. 简约方案
1
|
export LS_COLORS='di=34:ln=36:so=35:pi=33:ex=32:*.txt=37:*.sh=32:*.py=33:*.js=33:*.html=33:*.css=33:*.jpg=35:*.png=35:*.gif=35:*.mp4=35:*.mp3=36:'
|
🎯 提示: 选择适合您工作类型的颜色方案,可以让文件管理更加高效。建议定期调整和优化您的颜色配置。
通过本指南,您应该能够创建出既美观又实用的终端颜色方案。记得根据实际使用情况调整颜色代码,找到最适合自己的配置。