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

Ubuntu 24.04.3 LTS 上的 fastfetch 终端输出,显示内核、CPU、内存和磁盘信息以及 Ubuntu ASCII 标志

如果你曾经在论坛、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 已经进入官方仓库。最简单的安装方法是:

Bash
sudo apt update
sudo apt install fastfetch

这样装的是最新打包版本,Ubuntu 26.04 上目前是 2.55.x。如果想要 2.67.0 这种最新版本,用 Zhang Songcui 维护的社区 PPA:

Bash
sudo add-apt-repository ppa:zhangsongcui3371/fastfetch
sudo apt update
sudo apt install fastfetch

Ubuntu 22.04 / 24.04 和 Linux Mint 21 / 22

apt 自带的版本比较旧(2.13–2.20 左右),所以 PPA 是更好的选择:

Bash
sudo add-apt-repository ppa:zhangsongcui3371/fastfetch
sudo apt update
sudo apt install fastfetch

Fedora 41 / 42

Bash
sudo dnf install fastfetch

因为维护者本身也是 Fedora 的打包者,Fedora 仓库里通常能拿到非常新的版本。

Arch Linux 和 CachyOS

Bash
sudo pacman -S fastfetch

Arch 仓库里一般是除了 git 之外最新的非 git 版本(2026 年 7 月目前是 2.66.0)。如果你想要 master 分支上最新的,可以装 AUR 里的 fastfetch-git

openSUSE Tumbleweed / Leap

Bash
sudo zypper install fastfetch

NixOS

Bash
nix-env -iA nixpkgs.fastfetch

或者在 configuration.nix 里加一行 programs.fastfetch.enable = true;,这样每次登录交互式 shell 都会自动跑。

验证安装

装完以后检查版本:

Bash
fastfetch --version

应该看到类似 fastfetch 2.67.0。如果提示 command not found,重新开一个终端——当前 shell 会话可能缓存了旧的 $PATH

然后不带任何配置跑一次:

Bash
fastfetch

你会得到一个合理的默认输出,左边是发行版 ASCII 标志,右边是一组精心挑选的模块。看到这个就说明 fastfetch 装好了。下面就是怎么把它变成你自己的。

新的交互式配置向导(2.67+)

2.67.0 最大的 UX 改进就是新的 --gen-config 命令。以前要在 --gen-config(精简)、--gen-config-full(全部模块)、--gen-config-force(覆盖)、--gen-config-full-force 之间选。这四个标志被合并成了一个交互式 TUI:

Bash
fastfetch --gen-config

你会看到一个分步向导:

  1. 预设。选 Minimal(一组精简模块)、Full(所有支持的模块),或者 Custom(自己挑)。
  2. 结构。选 Default(按模块自然顺序),或者从几种备选布局里挑。
  3. 输出路径。默认是 ~/.config/fastfetch/config.jsonc,可以改。
  4. 确认。一个汇总界面显示你将写入什么。按回车确认。

如果设置了 $NO_COLOR,或者 stdin/stdout 不是 TTY(比如从 cron 任务里跑 fastfetch),向导会自动回退到非交互式生成。所以同一个标志对人和脚本都管用。

向导写好 ~/.config/fastfetch/config.jsonc 之后,下次跑 fastfetch 就会自动用上。不用记 --config 标志,默认路径会优先被检查。

想从头再来,最简单的重置就是:

Bash
rm ~/.config/fastfetch/config.jsonc
fastfetch --gen-config

配置文件结构

一份精简配置长这样:

Jsonc
{
  "$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(自定义文件),或者任意一种图像协议(kittyitermsixelchafa)。
  • logo.color 可以覆盖 ASCII 标志的颜色。键对应 ANSI 颜色位置,值是 CSS 风格的颜色名。
  • modules 是一个扁平字符串数组。顺序很重要,这就是它们打印的顺序。可以随便增删、调换。

要看支持的全部模块(大约 60 个),运行:

Bash
fastfetch --list-modules

每个模块的全部字段细节,运行:

Bash
fastfetch --help

--help 输出大约 800 行,是每个模块做什么、接受什么自定义格式占位符、有什么选项的权威参考。

自定义模块

fastfetch 真正的强大之处在于每个模块可以独立配置。可以用 key: value 对给单个模块加选项。

隐藏和重排

比如你不在意 cursor 和 locale,从 modules 数组里把那两项删掉就行。想把 uptime 放到 kernel 后面:

Jsonc
"modules": [
  "title",
  "separator",
  "os",
  "kernel",
  "uptime",
  "host",
  "packages",
  // ...
]

单模块选项

每个模块可以接受一个子对象:

Jsonc
"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”,可以这么写:

Jsonc
{ "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 分支:

Jsonc
{
  "type": "command",
  "format": "lua:return shell.cmd('git rev-parse --abbrev-ref HEAD 2>/dev/null') .. ' @ ' .. shell.cmd('hostname')"
}

QuickJS 等价写法:

Jsonc
{
  "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 块字符的兜底方案

要启用的话:

Jsonc
"logo": {
  "type": "kitty",  // 或 "iterm""sixel""chafa"
  "source": "~/Pictures/distro.png",
  "width": 32,
  "height": 16
}

widthheight 单位是终端格子,不是像素。fastfetch 会按比例缩放源图。

彩色 ASCII 标志

如果你想要 ASCII 的风格但换自定义颜色,覆盖 color 块:

Jsonc
"logo": {
  "type": "auto",
  "color": {
    "1": "#ff6b35",
    "2": "#f7c59f"
  }
}

这样就把默认的 Ubuntu 橙和奶白换成你想要的调色板。

位置和间距

有两个选项控制标志相对于模块列的位置:

Jsonc
"logo": {
  "type": "auto",
  "position": "left",      // "left""top""right"
  "padding-top": 0,        // 标志上方的空行
  "padding-bottom": 0,     // 标志下方的空行
  "padding-right": 4       // 标志和模块列之间的空列数
}

如果设成 position: "top",标志会打印在模块列上方而不是左边。

预设与共享

fastfetch 一个不错的特性是通过 --config 标志支持多份预设:

Bash
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 进树莓派那种场景会感觉有延迟。需要的话加个守卫:

Bash
if [[ -z "$SSH_CONNECTION" ]]; then
  fastfetch
fi

常见问题排查

某些终端标志渲染不出来

如果 ASCII 标志打印出来了但没颜色,你的终端没有声明支持 256 色或真彩色。检查 COLORTERM 是否设成 truecolor24bit:

Bash
echo $COLORTERM

如果是空或 unknown,你的终端不支持颜色。GNOME Terminal、Kitty、WezTerm、Alacritty 和 Windows Terminal 这些现代终端都会自动设置。

模块显示 “unknown”

fastfetch 对每个模块会尝试多种探测策略。如果某个值返回 unknown,要么是这个模块在你的系统上被禁用了(比如台式机没电池),要么是 fastfetch 读不到必要的文件(通常是 /proc/sys 的权限问题)。用 --log-level debug 看日志:

Bash
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 玩玩,你就能得到一份可以和朋友分享的配置文件。

fastfetch 项目官方图标

官方源码、发行说明和 JSON schema 文档都在 fastfetch GitHub 仓库

fastfetch 在 Pop!_OS 上运行,左侧显示 Pop!_OS 标志,右侧显示系统信息

最后修改: 2026年8月14日

作者

评论

发表评论

您的邮箱地址不会被公开。