现代化ls替代工具eza简介与配置

在日常的终端操作中,ls 是我们使用频率最高的命令之一。如果你想让枯燥的黑白文件列表变得更加美观、直观且信息丰富,那么是时候了解一下现代化的 ls 替代工具——eza 了。

eza 简介

eza 是一个用 Rust 语言编写的现代 ls 命令替代品(它是已停止维护的 exa 项目的活跃分支)。它不仅运行极快,还带来了许多令人惊艳的特性:

  • 超强视觉表现:默认使用丰富的颜色来区分文件类型,并原生支持在文件名旁显示精美的小图标。
  • 内置 Git 状态:使用 --git 参数,可以直接在文件列表中查看文件的 Git 状态(如未跟踪 ??、已修改 M 等),对开发者极为友好。
  • 树状视图:使用 --tree 参数,可以像 tree 命令一样递归展示目录结构,且速度更快、支持色彩渲染。
  • 人性化细节:支持按大小、时间、扩展名等灵活排序,支持“人类可读”的文件大小显示,以及让目录优先显示等。

注意:如果你系统里仍然只有旧版的 exa,建议尽快安装 eza。目前主流包管理器(如 apt, pacman, brew)均已提供 eza 的安装源。

前置准备:安装 Nerd Font

eza 的图标功能依赖于 Nerd Font(一种包含大量图标和特殊符号的修改版字体)。如果不配置字体,终端里可能会出现方块或乱码。

  1. 下载并安装字体:前往 Nerd Fonts 官网 下载你喜欢的字体(如 JetBrainsMono Nerd Font 或 FiraCode Nerd Font)。
  2. 配置终端:打开你使用的终端模拟器(如 Windows Terminal, iTerm2, Alacritty 等),在设置中将默认字体修改为你刚刚安装的 Nerd Font。
  3. 版本建议:建议安装 Version 3 及以上的字体版本,以获得最全的图标支持。

推荐配置

将以下别名(Aliases)配置添加到你的 Shell 配置文件中(如 ~/.zshrc 或 ~/.bashrc),即可享受开箱即用的极佳体验:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# ==========================================
# eza 推荐别名配置
# ==========================================

# 基础 ls:显示图标(auto模式防止乱码),并让目录优先显示
alias ls='eza --icons=auto --group-directories-first'

# 详细列表 (ll):显示完整元数据、人类可读的大小、图标
alias ll='eza -l --icons=auto --group-directories-first --human-readable'

# 包含隐藏文件 (la)
alias la='eza -la --icons=auto --group-directories-first --human-readable'

# 树状图 (lt):限制层级为2层,清晰展示目录结构
alias lt='eza --tree --level=2 --icons=auto'

# Git 状态集成 (lg):在列表中显示文件的 Git 状态
alias lg='eza -l --git --icons=auto'

参数贴士

  • --icons=auto:智能判断当前环境是否支持图标,如果不支持(例如在无字体的远程服务器上),会自动回退到无图标模式,避免乱码。

  • --group-directories-first:将文件夹排在文件前面,让目录结构更加清晰。

  • --human-readable:将文件大小显示为 1K, 23M 等更易读的格式,而不是字节数。