macOS终端ls配色方案设计
我来为你设计一个实用且美观的 ls 配色方案,让文件和目录在终端中有明显的颜色区分。
1. 使用 CLICOLOR 和 LSCOLORS(macOS 原生方案)
在 ~/.zshrc(或 ~/.bash_profile)中添加:
# 启用颜色输出
export CLICOLOR=1
# macOS 原生配色方案 (BSD ls)
# 格式: 对象1目录2符号链接3socket4管道5可执行6块设备7字符设备8设置uid9设置gid10粘滞位11其它可写12
export LSCOLORS="gxfxcxdxbxegedabagacad"
# 解释:
# gx - 目录:粗体青色
# fx - 符号链接:粗体洋红色
# cx - socket:粗体绿色
# dx - 管道:粗体棕色
# bx - 可执行:粗体红色
# eg - 块设备:洋红色背景+粗体
# ed - 字符设备:洋红色背景+粗体
# ab - 设置uid:黑色背景+红色
# ag - 设置gid:黑色背景+棕色
# ac - 粘滞位:黑色背景+绿色
# ad - 其它可写:黑色背景+青色
2. 安装 GNU Coreutils(推荐)
macOS 自带的 ls 功能有限,建议安装 GNU 版本:
# 安装 GNU coreutils
brew install coreutils
# 创建别名,使用 GNU ls
echo "alias ls='gls --color=auto'" >> ~/.zshrc
echo "alias ll='gls -l --color=auto'" >> ~/.zshrc
echo "alias la='gls -la --color=auto'" >> ~/.zshrc
# 设置 LS_COLORS(GNU 风格)
brew install source-highlight
echo "export LS_COLORS=\$(dircolors -b | sed 's/^LS_COLORS=//')" >> ~/.zshrc
3. 专业配色方案
这里是我为你设计的专业配色方案,添加到 ~/.zshrc:
方案A:经典色系(护眼)
export LS_COLORS="rs=0:di=01;36:ln=01;35: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:*.t7z=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:"
方案B:现代色系(高对比度)
export LS_COLORS="di=1;34:ln=1;36:so=1;31:pi=1;33:ex=1;32:bd=1;33;41:cd=1;33;41:su=37;41:sg=30;43:tw=30;42:ow=34;42:*.tar=31:*.tgz=31:*.zip=31:*.gz=31:*.bz2=31:*.rar=31:*.7z=31:*.jpg=35:*.jpeg=35:*.gif=35:*.png=35:*.svg=35:*.mp4=35:*.mp3=36:*.wav=36:*.pdf=33:*.doc=33:*.docx=33:*.xls=33:*.xlsx=33:*.ppt=33:*.pptx=33:*.py=32:*.sh=32:*.pl=32:*.rb=32:*.js=32:*.html=32:*.css=32:*.java=32:*.c=32:*.cpp=32:*.h=32"
4. 一键安装脚本
创建一个安装脚本 install-ls-colors.sh:
#!/bin/bash
# 检查是否安装了 Homebrew
if ! command -v brew &> /dev/null; then
echo "安装 Homebrew..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi
# 安装 GNU coreutils
echo "安装 GNU coreutils..."
brew install coreutils
# 写入配置到 ~/.zshrc
echo "配置 LS_COLORS..."
cat >> ~/.zshrc << 'EOF'
# ========== LS 颜色配置 ==========
# 启用颜色
export CLICOLOR=1
export LSCOLORS="gxfxcxdxbxegedabagacad"
# 别名
alias ls="gls --color=auto --group-directories-first"
alias ll="gls -lh --color=auto --group-directories-first"
alias la="gls -lha --color=auto --group-directories-first"
alias l="gls -CF --color=auto --group-directories-first"
# GNU ls 颜色配置
export LS_COLORS="di=1;34:ln=1;36:so=1;31:pi=1;33:ex=1;32:bd=1;33;41:cd=1;33;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:*.tar=31:*.tgz=31:*.arc=31:*.arj=31:*.taz=31:*.lha=31:*.lz4=31:*.lzh=31:*.lzma=31:*.tlz=31:*.txz=31:*.tzo=31:*.t7z=31:*.zip=31:*.z=31:*.dz=31:*.gz=31:*.lrz=31:*.lz=31:*.lzo=31:*.xz=31:*.zst=31:*.tzst=31:*.bz2=31:*.bz=31:*.tbz=31:*.tbz2=31:*.tz=31:*.deb=31:*.rpm=31:*.jar=31:*.war=31:*.ear=31:*.sar=31:*.rar=31:*.alz=31:*.ace=31:*.zoo=31:*.cpio=31:*.7z=31:*.rz=31:*.cab=31:*.wim=31:*.swm=31:*.dwm=31:*.esd=31:*.jpg=35:*.jpeg=35:*.mjpg=35:*.mjpeg=35:*.gif=35:*.bmp=35:*.pbm=35:*.pgm=35:*.ppm=35:*.tga=35:*.xbm=35:*.xpm=35:*.tif=35:*.tiff=35:*.png=35:*.svg=35:*.svgz=35:*.mng=35:*.pcx=35:*.mov=35:*.mpg=35:*.mpeg=35:*.m2v=35:*.mkv=35:*.webm=35:*.ogm=35:*.mp4=35:*.m4v=35:*.mp4v=35:*.vob=35:*.qt=35:*.nuv=35:*.wmv=35:*.asf=35:*.rm=35:*.rmvb=35:*.flc=35:*.avi=35:*.fli=35:*.flv=35:*.gl=35:*.dl=35:*.xcf=35:*.xwd=35:*.yuv=35:*.cgm=35:*.emf=35:*.ogv=35:*.ogx=35:*.aac=36:*.au=36:*.flac=36:*.m4a=36:*.mid=36:*.midi=36:*.mka=36:*.mp3=36:*.mpc=36:*.ogg=36:*.ra=36:*.wav=36:*.oga=36:*.opus=36:*.spx=36:*.xspf=36:*.pdf=33:*.doc=33:*.docx=33:*.odt=33:*.rtf=33:*.txt=37:*.md=37:*.org=37:*.py=32:*.sh=32:*.pl=32:*.rb=32:*.js=32:*.ts=32:*.html=32:*.css=32:*.scss=32:*.sass=32:*.json=32:*.yml=32:*.yaml=32:*.xml=32:*.java=32:*.c=32:*.cpp=32:*.h=32:*.hpp=32:*.go=32:*.rs=32:*.swift=32:*.kt=32:*.kts=32:*.sql=32:*.php=32"
EOF
echo "配置完成!请重启终端或运行: source ~/.zshrc"
5. 使用效果预览
应用配置后,你将看到:
- 目录:蓝色 🔵(粗体)
- 可执行文件:绿色 🟢
- 压缩文件:红色 🔴
- 图片文件:洋红色 🟣
- 音频文件:青色 🔵
- 文档文件:棕色 🟤
- 代码文件:绿色 🟢
- 符号链接:青色 🔵
- 特殊权限文件:带背景色
6. 额外优化
# 在 ~/.zshrc 中添加这些优化
# 按文件类型排序(目录优先)
alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"
# 使用 exa(更现代的替代品)
# brew install exa
# alias ls='exa --icons --group-directories-first'
# alias ll='exa -lh --git --icons'
# alias la='exa -lha --git --icons'
使用方法:
- 简单方案:直接使用
CLICOLOR和LSCOLORS - 推荐方案:安装 GNU coreutils 并使用
LS_COLORS - 运行脚本:执行上面的一键安装脚本
重启终端后,输入 ls 就能看到彩色输出了!