怎么在 Linux 上配置 fastfetch 2.67 系统信息工具

如果你曾经在论坛、Discord 或者 Reddit 里贴过自己桌面的截图,大概率用的是 neofetch。这个工具统治了”展示我的 Linux 系统”这个细分领域十多年——一个几行 Bash,把你的发行版 ASCII 标志和一行行系统信息并排打印出来。2024 年原作者把它归档了,Linux 社区很快统一到了一个速度更快、更可配置、还在持续维护的继任者:fastfetch。
本文会讲 2026 年怎么在主流 Linux 发行版上装 fastfetch、用 2.67.0 新加的交互式向导生成第一份配置、自定义要打印的字段,以及加一些视觉上的小花样。最后你应该能在自己的机器上跑出来比上面这张截图更好看的东西。
fastfetch 到底是什么
fastfetch 是一个用 C 写的、小巧的原生命令行工具。官方描述是”一个仍在维护、功能丰富、注重性能的 neofetch 类系统信息工具”。这个描述太长了,简单说:它会探测你的操作系统、内核、CPU、GPU、内存、磁盘、shell、终端、桌面环境、窗口管理器、主题、图标、字体、电池、网卡、语言环境等大概三十多项系统元数据,然后把它们打印在彩色 ASCII 艺术(或 sixel / kitty / iterm / chafa 图像)的发行版标志旁边。
和 neofetch 相比,关键区别是:
- 更快。fastfetch 冷启动大约比 neofetch 快 4–10 倍,因为它不调用几十个外部辅助工具。现代 ThinkPad 上完整跑完不到 50 ms。
- 持续维护。2.67.0 在 2026 年 8 月 6 日发布,带来了基于 WebUI 的配置编辑、扩展的编解码器检测,以及重新设计的
--gen-config交互向导。从 2021 年首次提交以来已经有 167 个带标签的发行版。 - 高度可配置。JSONC 配置文件控制哪些模块出现、按什么顺序、用什么颜色、用什么格式。Lua(5.3–5.5)和 QuickJS 脚本允许运行时计算数值。custom format 让你能重新排列或屏蔽字段。
- 诚实地反映硬件。能正确识别混合架构 CPU、AMD/NVIDIA/Intel GPU、Apple M 系列芯片、COSMIC 和 Niri Wayland 合成器、Asahi Linux 的 GPU 核心、Wi-Fi 6 GHz 信道,以及几十个小众发行版(Bedrock、Astra、Xinux、PostmarketOS、Flatcar、Azure Linux 等等)。
官方仓库是 github.com/fastfetch-cli/fastfetch。MIT 协议,大约两万颗 GitHub 星标,Debian、Ubuntu、Fedora、Arch、openSUSE、NixOS、Void 以及其他主流发行版的系统仓库里都有。
安装 fastfetch
正确的命令取决于你的发行版。截至 2026 年 8 月,现状是这样的。
Ubuntu 25.10 / 26.04 和 Debian 13+
fastfetch 已经进入官方仓库。最简单的安装方法是:
sudo apt update
sudo apt install fastfetch这样装的是最新打包版本,Ubuntu 26.04 上目前是 2.55.x。如果想要 2.67.0 这种最新版本,用 Zhang Songcui 维护的社区 PPA:
sudo add-apt-repository ppa:zhangsongcui3371/fastfetch
sudo apt update
sudo apt install fastfetchUbuntu 22.04 / 24.04 和 Linux Mint 21 / 22
apt 自带的版本比较旧(2.13–2.20 左右),所以 PPA 是更好的选择:
sudo add-apt-repository ppa:zhangsongcui3371/fastfetch
sudo apt update
sudo apt install fastfetchFedora 41 / 42
sudo dnf install fastfetch因为维护者本身也是 Fedora 的打包者,Fedora 仓库里通常能拿到非常新的版本。
Arch Linux 和 CachyOS
sudo pacman -S fastfetchArch 仓库里一般是除了 git 之外最新的非 git 版本(2026 年 7 月目前是 2.66.0)。如果你想要 master 分支上最新的,可以装 AUR 里的 fastfetch-git。
openSUSE Tumbleweed / Leap
sudo zypper install fastfetchNixOS
nix-env -iA nixpkgs.fastfetch或者在 configuration.nix 里加一行 programs.fastfetch.enable = true;,这样每次登录交互式 shell 都会自动跑。
验证安装
装完以后检查版本:
fastfetch --version应该看到类似 fastfetch 2.67.0。如果提示 command not found,重新开一个终端——当前 shell 会话可能缓存了旧的 $PATH。
然后不带任何配置跑一次:
fastfetch你会得到一个合理的默认输出,左边是发行版 ASCII 标志,右边是一组精心挑选的模块。看到这个就说明 fastfetch 装好了。下面就是怎么把它变成你自己的。
新的交互式配置向导(2.67+)
2.67.0 最大的 UX 改进就是新的 --gen-config 命令。以前要在 --gen-config(精简)、--gen-config-full(全部模块)、--gen-config-force(覆盖)、--gen-config-full-force 之间选。这四个标志被合并成了一个交互式 TUI:
fastfetch --gen-config你会看到一个分步向导:
- 预设。选
Minimal(一组精简模块)、Full(所有支持的模块),或者Custom(自己挑)。 - 结构。选
Default(按模块自然顺序),或者从几种备选布局里挑。 - 输出路径。默认是
~/.config/fastfetch/config.jsonc,可以改。 - 确认。一个汇总界面显示你将写入什么。按回车确认。
如果设置了 $NO_COLOR,或者 stdin/stdout 不是 TTY(比如从 cron 任务里跑 fastfetch),向导会自动回退到非交互式生成。所以同一个标志对人和脚本都管用。
向导写好 ~/.config/fastfetch/config.jsonc 之后,下次跑 fastfetch 就会自动用上。不用记 --config 标志,默认路径会优先被检查。
想从头再来,最简单的重置就是:
rm ~/.config/fastfetch/config.jsonc
fastfetch --gen-config配置文件结构
一份精简配置长这样:
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/blob/master/doc/json_schema.json",
"logo": {
"type": "auto",
"color": {
"1": "red",
"2": "green"
}
},
"modules": [
"title",
"separator",
"os",
"host",
"kernel",
"uptime",
"packages",
"shell",
"display",
"de",
"wm",
"wmtheme",
"theme",
"icons",
"font",
"cursor",
"terminal",
"terminalfont",
"cpu",
"gpu",
"memory",
"swap",
"disk",
"localip",
"battery",
"poweradapter",
"locale"
]
}几个要点:
$schema是可选的,但加上之后 VS Code、带coc-jsonc的 Neovim、以及 JetBrains 的 IDE 都能给你补全和实时校验。logo.type可以是auto(用内置发行版标志)、small(缩小版)、none(不显示)、raw(自定义文件),或者任意一种图像协议(kitty、iterm、sixel、chafa)。logo.color可以覆盖 ASCII 标志的颜色。键对应 ANSI 颜色位置,值是 CSS 风格的颜色名。modules是一个扁平字符串数组。顺序很重要,这就是它们打印的顺序。可以随便增删、调换。
要看支持的全部模块(大约 60 个),运行:
fastfetch --list-modules每个模块的全部字段细节,运行:
fastfetch --help--help 输出大约 800 行,是每个模块做什么、接受什么自定义格式占位符、有什么选项的权威参考。
自定义模块
fastfetch 真正的强大之处在于每个模块可以独立配置。可以用 key: value 对给单个模块加选项。
隐藏和重排
比如你不在意 cursor 和 locale,从 modules 数组里把那两项删掉就行。想把 uptime 放到 kernel 后面:
"modules": [
"title",
"separator",
"os",
"kernel",
"uptime",
"host",
"packages",
// ...
]单模块选项
每个模块可以接受一个子对象:
"modules": [
{ "type": "cpu", "show-pe-core-count": true, "temp": "C" },
{ "type": "gpu", "driver-specific": true },
{ "type": "memory", "percent-type": ["used", "total"] },
{ "type": "disk", "folders": ["/", "/home", "/data"] }
]每个模块的完整选项在 fastfetch --help 里。一些常用的:
cpu.show-pe-core-count:在 Intel 混合架构 CPU(Alder Lake 及更新)上显示 P 核 / E 核分布。2.40 起默认开启。gpu.driver-specific:查询实际加载的内核驱动而不是通用 PCI 名。在有多张 GPU 的机器上准得多。memory.percent-type:在["used", "total"]、["free", "total"]、["available", "total"]之间选。disk.folders:限制报告哪些挂载点。默认是所有物理挂载。
自定义格式字符串
每个模块都支持一个 format 字段,让你重新排列输出。比如要把 OS 这一行变成 “OS: Ubuntu 24.04.3 LTS (Noble Numbat) — running on a ThinkPad T480s”,可以这么写:
{ "type": "os", "format": "{os-name} {os-version} ({os-id}) — running on {host-name}" }对于像 disk 这种打印多个数值的模块,格式字符串可以通过名字引用每一个子字段。--help 列出了每个模块的所有可用占位符。
Lua 和 QuickJS 脚本
如果想要动态值,fastfetch 自 2.30 系列开始支持两种内嵌脚本语言。Lua 先加进来,QuickJS(JavaScript)是较新的替代。
Lua 例子:在自定义模块里打印当前 git 分支:
{
"type": "command",
"format": "lua:return shell.cmd('git rev-parse --abbrev-ref HEAD 2>/dev/null') .. ' @ ' .. shell.cmd('hostname')"
}QuickJS 等价写法:
{
"type": "title",
"format": "qjs:` Hello ${this.userName}@${this.hostName} `"
}调试的时候,Lua API 里有个 json_encode() 辅助函数,把所有可用变量和它们的值以 JSON 形式输出。记不清字段名是 cpu-name 还是 cpuName 的时候特别好用。
标志自定义
默认标志是运行时自动选择的发行版 ASCII 艺术。大部分人到这里就够了,看起来已经很棒。但如果你想要更花的,有几种选择。
图像标志
fastfetch 支持通过四种后端渲染真正的图像作为标志:
| 后端 | 适合场景 |
|---|---|
| Kitty | 任何开启了 enable_kitty_graphics_protocol yes 的现代 Kitty 终端 |
| iTerm2 | macOS 用户用 iTerm2 |
| Sixel | Xterm、mlterm、foot、WezTerm——大多数 VT 兼容终端 |
| Chafa | 把栅格图转成 ASCII/Unicode 块字符的兜底方案 |
要启用的话:
"logo": {
"type": "kitty", // 或 "iterm"、"sixel"、"chafa"
"source": "~/Pictures/distro.png",
"width": 32,
"height": 16
}width 和 height 单位是终端格子,不是像素。fastfetch 会按比例缩放源图。
彩色 ASCII 标志
如果你想要 ASCII 的风格但换自定义颜色,覆盖 color 块:
"logo": {
"type": "auto",
"color": {
"1": "#ff6b35",
"2": "#f7c59f"
}
}这样就把默认的 Ubuntu 橙和奶白换成你想要的调色板。
位置和间距
有两个选项控制标志相对于模块列的位置:
"logo": {
"type": "auto",
"position": "left", // "left"、"top" 或 "right"
"padding-top": 0, // 标志上方的空行
"padding-bottom": 0, // 标志下方的空行
"padding-right": 4 // 标志和模块列之间的空列数
}如果设成 position: "top",标志会打印在模块列上方而不是左边。
预设与共享
fastfetch 一个不错的特性是通过 --config 标志支持多份预设:
fastfetch --config ~/.config/fastfetch/configs/work.jsonc这意味着你可以保留多份配置——tmux 状态行用一份精简版,截图用一份完整版,SSH 会话用一份紧凑版,社交媒体分享用一份带 ASCII 艺术和自定义模块的巨无霸。
为了不这么痛苦,fastfetch 2.67.0 加了一个实验性的 WebUI:fastfetch-cli.github.io/fastfetch-config。是另一个项目,但由 fastfetch 团队维护,生成的 config.jsonc 直接拖进去就能用。不想手写 JSONC 的时候很有用。
加入 shell 启动
一旦你有了自己喜欢的配置,你大概希望打开终端自动跑。命令可以加在几个地方:
.bashrc/.zshrc:在文件末尾加一行fastfetch~/.config/fish/config.fish:末尾加fastfetch- Starship 提示符:不是必须,但你可以把 Starship 的目录/git 显示关掉,让 fastfetch 处理剩余部分
- tmux 状态行:在
~/.tmux.conf里写set -g status-right "#(fastfetch --logo none --pipe)"
小提醒:fastfetch 在普通机器上跑需要 30–50 ms。桌面登录时无所谓,但 SSH 进树莓派那种场景会感觉有延迟。需要的话加个守卫:
if [[ -z "$SSH_CONNECTION" ]]; then
fastfetch
fi常见问题排查
某些终端标志渲染不出来
如果 ASCII 标志打印出来了但没颜色,你的终端没有声明支持 256 色或真彩色。检查 COLORTERM 是否设成 truecolor 或 24bit:
echo $COLORTERM如果是空或 unknown,你的终端不支持颜色。GNOME Terminal、Kitty、WezTerm、Alacritty 和 Windows Terminal 这些现代终端都会自动设置。
模块显示 “unknown”
fastfetch 对每个模块会尝试多种探测策略。如果某个值返回 unknown,要么是这个模块在你的系统上被禁用了(比如台式机没电池),要么是 fastfetch 读不到必要的文件(通常是 /proc 或 /sys 的权限问题)。用 --log-level debug 看日志:
fastfetch --log-level debug 2> ~/.fastfetch-debug.log然后看日志里哪个模块出错。Linux 上最常见的原因是读 /sys/class/power_supply/BAT0 没权限;把用户加进 power 用户组一般能解决。
TUI 向导起不来
如果 fastfetch --gen-config 立刻退出且没有输出,说明你不在交互式 TTY 里。要么接一个终端,要么传 --gen-config-force(注:在 2.67 里是 --gen-config --force)强制非交互生成。向导本身会检查 $NO_COLOR 和 stdin/stdout 是否 TTY,任何一种情况都会优雅降级。
结论
2026 年 fastfetch 是正确的选择。它比 neofetch 更快、更可配置、在现代硬件上更准确、还在持续维护。2.67.0 这个版本特别解决了几处之前困扰用户的粗糙边角——配置生成和编解码器检测。
如果只要基础功能,sudo apt install fastfetch && fastfetch 一分钟以内就能跑起来。想要更好看的,花十分钟和 --gen-config 玩玩,你就能得到一份可以和朋友分享的配置文件。
![]()
官方源码、发行说明和 JSON schema 文档都在 fastfetch GitHub 仓库。

评论