// Linux · 2026-07-31

Yazi 终端文件管理器:安装、配置与使用

一、概述

1.1 项目介绍

Yazi 是一款采用 Rust 异步模型 开发的终端文件管理器,对标老牌 Ranger、lf、nnn。依靠无阻塞 IO、原生多媒体预览、轻量化内存占用、TOML+Lua 分层配置体系,解决了 Ranger 基于 Python 同步架构带来的卡顿、内存泄漏、预览配置繁琐等痛点。 Yazi 采用经典三栏布局(目录树|文件列表|文件预览),原生兼容 Vim 式按键逻辑,对运维、渗透测试、开发者整理本地文件、服务器远端文件都十分友好,支持 Linux/macOS/Windows 全平台运行。

1.2 核心优劣对比(Yazi VS Ranger)

维度 Yazi Ranger
运行语言 Rust(内存安全、异步非阻塞) Python(同步执行,海量目录易卡死)
预览能力 原生图片/PDF/视频帧/压缩包/代码预览,开箱即用 依赖 scope.sh、Überzug 拼接配置,调试成本高
内存表现 常驻 20MB 左右,长时间运行无明显堆增长 内存持续累积,需定期重启释放资源
配置体系 TOML 基础配置 + Lua 插件,语法简洁易排错 Python rc 脚本,自定义逻辑门槛高
任务处理 文件拷贝/移动带有进度条、支持任务取消 大文件后台操作无进度展示,极易界面假死
生态现状 高速迭代更新,官方包管理器一键安装插件主题 十余年沉淀,老旧脚本资源极丰富,稳定性强

适用人群:初次使用终端文件管理器、经常处理大量文件素材、挂载网络/NAS 目录、追求流畅体验的用户;习惯深度魔改脚本、拥有多年 Ranger 私有配置的用户可酌情保留 Ranger。

二、系统依赖前置安装(全 Linux 发行版通用)

Yazi 的预览、检索、解压、剪贴板等功能依赖一系列系统工具,Debian/Ubuntu/Kali、CentOS/RHEL 给出对应安装命令。

Debian / Ubuntu / Kali 系列

sudo apt update
sudo apt install -y ffmpeg p7zip-full p7zip-rar jq poppler-utils fd-find ripgrep fzf zoxide imagemagick xclip file zip unzip fonts-nerd-fonts resvg

Fedora / Rocky Linux

sudo dnf install -y ffmpeg p7zip jq poppler fd-find ripgrep fzf zoxide ImageMagick xclip file zip unzip nerd-fonts

依赖说明

  • nerd-fonts:提供界面图标,防止侧边栏、状态栏图标方块乱码;
  • ffmpeg/poppler-utils:负责图片、PDF、视频缩略图实时预览;
  • fd/ripgrep/fzf/zoxide:文件检索、目录快速跳转;
  • xclip:实现文件路径复制至系统剪贴板。

三、四种通用安装方案(按推荐优先级排序)

主流系统软件仓库大多未收录 Yazi,官方提供 deb/rpm 包、一键脚本、静态二进制、Cargo 编译四种部署方式,可根据自身网络环境选择。

方案1:官方 deb 包安装(Debian 系首选,最稳定)

适配系统 glibc,由系统包管理器统一管理卸载与文件注册,规避网络脚本 TLS 握手失败问题。

# 下载对应架构安装包(x86_64 PC通用)
wget https://github.com/sxyazi/yazi/releases/download/v26.5.6/yazi-x86_64-unknown-linux-gnu.deb
# 使用apt安装本地deb,自动补全系统依赖
sudo apt install ./yazi-x86_64-unknown-linux-gnu.deb
# 验证安装
yazi --version
ya --version

卸载命令

sudo apt remove yazi
sudo apt autoremove
rm -rf ~/.config/yazi
rm -f yazi-x86_64-unknown-linux-gnu.deb

方案2:官方一键安装脚本(网络环境优良时使用)

# 强制指定TLS版本,降低连接失败概率
curl -fsSL --tlsv1.2 https://sh.yazi.rs/install.sh | sudo sh
# 卸载脚本
curl -fsSL https://sh.yazi.rs/uninstall.sh | sudo sh

方案3:静态 musl 二进制部署(通用兼容所有 Linux)

静态编译不绑定系统 glibc 版本,容器、老旧系统均可运行

wget https://github.com/sxyazi/yazi/releases/download/v26.5.6/yazi-x86_64-unknown-linux-musl.zip
unzip yazi-x86_64-unknown-linux-musl.zip
sudo mv yazi ya /usr/local/bin/
yazi --version
# 卸载
sudo rm -f /usr/local/bin/yazi /usr/local/bin/ya

方案4:Cargo 源码编译(获取最新开发版本)

适合需要体验最新功能、可搭建 Rust 编译环境的用户

# 安装rustup工具链
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
# 编译安装主程序与命令行工具
cargo install --locked yazi-fm yazi-cli
# 写入环境变量永久生效
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# 卸载编译版
cargo uninstall yazi-fm yazi-cli

四、配置目录结构与基础配置模板

Yazi 用户配置统一存放路径:~/.config/yazi/,初次运行不会自动生成配置文件,手动创建目录与配置文件:

mkdir -p ~/.config/yazi
cd ~/.config/yazi
touch yazi.toml keymap.toml theme.toml init.lua

各文件职责:

配置文件 核心作用
yazi.toml 全局基础参数:布局、预览限制、文件打开规则、后台任务配置
keymap.toml 自定义全部快捷键,支持兼容 Ranger 操作习惯
theme.toml 界面配色、高亮样式、状态栏美化
init.lua Lua 脚本加载、插件注册、高阶自定义逻辑

4.1 全局基础配置 yazi.toml(通用标准版)

[manager]
show_hidden = true
sort_by = "natural"
sort_reverse = false
hover_border = true
preview_wrap = true

[preview]
max_file_size = "10MB"
code_max_lines = 2000
image_quality = 85

[open]
rules = [
  { mime = "text/*", use = ["nano", "reveal"] },
  { mime = "image/*", use = ["xdg-open"] },
  { mime = "audio/*", use = ["mpv"] },
  { mime = "video/*", use = ["mpv"] },
  { mime = "application/pdf", use = ["zathura"] },
]

[tasks]
micro_workers = 10
macro_workers = 20
progress_step = 100

4.2 快捷键配置 keymap.toml(兼容 Vim + Ranger 习惯)

# 目录导航
[[manager.prepend_keymap]]
on = ["h"]
run = "cd .."
desc = "返回上级目录"

[[manager.prepend_keymap]]
on = ["l", "<Enter>"]
run = "enter"
desc = "进入文件夹 / 打开文件"

[[manager.prepend_keymap]]
on = ["j"]
run = "arrow down"
[[manager.prepend_keymap]]
on = ["k"]
run = "arrow up"

[[manager.prepend_keymap]]
on = ["gg"]
run = "go top"
[[manager.prepend_keymap]]
on = ["G"]
run = "go bottom"

# 预览窗口滚动
[[manager.prepend_keymap]]
on = ["J"]
run = "preview down 5"
[[manager.prepend_keymap]]
on = ["K"]
run = "preview up 5"

# 文件选中
[[manager.prepend_keymap]]
on = [" "]
run = "select"
desc = "空格单选/取消选中"

[[manager.prepend_keymap]]
on = ["v"]
run = "visual"
desc = "批量框选模式"

# 复制、剪切、粘贴、删除
[[manager.prepend_keymap]]
on = ["yy"]
run = "yank copy"
[[manager.prepend_keymap]]
on = ["dd"]
run = "yank cut"
[[manager.prepend_keymap]]
on = ["pp"]
run = "paste"
[[manager.prepend_keymap]]
on = ["D"]
run = "remove --permanent"

# 检索与目录跳转
[[manager.prepend_keymap]]
on = ["s"]
run = "find"
desc = "当前目录文件查找"

[[manager.prepend_keymap]]
on = ["Z"]
run = "zoxide"
desc = "历史目录快速跳转"

# 复制文件绝对路径
[[manager.prepend_keymap]]
on = ["cc"]
run = "echo %realpath | xclip -selection clipboard"
desc = "路径复制到剪贴板"

# 标签页
[[manager.prepend_keymap]]
on = ["t"]
run = "tab_create"
[[manager.prepend_keymap]]
on = ["w"]
run = "tab_close"

# 退出程序
[[manager.prepend_keymap]]
on = ["q"]
run = "quit"

4.3 主题快速安装与启用

Yazi 内置命令行工具 ya 管理主题与插件,示例安装主流 Dracula 暗黑主题

# 查看所有可用主题
ya pkg list theme
# 安装Dracula主题
ya pkg add theme/dracula

写入 theme.toml 启用主题

[import]
paths = ["~/.config/yazi/packages/theme/dracula/dracula.toml"]

五、基础使用操作手册

5.1 启停命令

# 前台运行
yazi
# 指定目录直接打开
yazi /home/user/work
# 后台常驻运行(不推荐,终端文件管理器按需启动即可)

5.2 高频核心操作汇总

  1. 浏览导航:hjkl 移动光标、h 返回上级、l 进入目录、gg/G 跳转首尾
  2. 文件选择:空格单选、v 进入可视化批量选择
  3. 文件操作:yy复制、dd剪切、pp粘贴、D永久删除文件
  4. 检索定位:s 模糊搜索当前目录文件,Z 快速跳转访问过的目录
  5. 标签管理:t新建标签、w关闭标签,支持多目录并行浏览
  6. 预览控制:J/K 滚动预览窗口长文本、代码
  7. 剪贴板:cc 将当前文件完整路径复制到系统剪贴板
  8. 退出:q 关闭 Yazi

5.3 进阶功能

  1. 任务面板:文件批量拷贝、解压时,右下角自动弹出进度面板,可查看、终止后台任务;
  2. 格式预览:无需打开软件,终端内直接查看图片、PDF、代码、压缩包内部文件;
  3. 批量重命名:选中多个文件后调用系统编辑器批量修改文件名。

六、常见问题排查

  1. 界面图标显示方块:确认已安装 fonts-nerd-fonts,终端字体配置选择 Nerd Font 系列字体;
  2. wget/github 下载404:核对版本号与文件后缀,优先使用 deb 包而非 tar.gz 压缩包;
  3. curl TLS 连接被重置:添加 --tlsv1.2 参数,或切换二进制离线安装方式;
  4. 图片/PDF 无法预览:检查 ffmpeg、poppler-utils 依赖是否完整安装。

七、总结

Yazi 凭借现代化的异步架构解决了传统终端文件管理器的性能痛点,兼顾开箱即用的预览体验与灵活的自定义配置能力。对于绝大多数 Linux 用户,使用官方 deb 包部署 + 本文提供的标准化配置模板,五分钟即可搭建一套流畅的终端文件管理环境;存量 Ranger 用户可按需逐步迁移配置,兼顾使用习惯与性能提升。

原文 https://blog.csdn.net/2301_79518550/article/details/163376584