NeoFetch 命令行系统信息工具

Neofetch

NeoFetch是一个命令行系统信息工具,以其简洁美观的输出格式和高度可定制性而闻名。它能够在终端中显示系统logo(通常是ASCII艺术形式)以及系统信息(如操作系统、硬件配置、安装的软件包等)。

NeoFetch项目NeoFetch项目

官方的项目地址是:

可以看到,项目最早在2015年12月30日进行了第一次提交,在2024年04月20日项目进行了归档,主分支最后一次的提交停留在2021年12月10日。Neofetch 还可以正常使用,但是 Neofetch 已经停止维护了。这意味着,后续将不会有所更新。

macOS使用NeofetchmacOS使用Neofetch

Neofetch 基于bash,所以不需要编译,同时兼容性也好:

基于Bash基于Bash

举个例子,main函数内部的cache_uname方法,就会使用 Linux 和 macOS 都有的命令:uname -srm:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
cache_uname() {
    # 使用空格作为分隔符读取并存储uname命令的输出结果(系统名、内核版本、机器类型)。
    IFS=" " read -ra uname <<< "$(uname -srm)"

    # 分别提取内核名称、版本和机器类型。
    kernel_name="${uname[0]}"
    kernel_version="${uname[1]}"
    kernel_machine="${uname[2]}"

    # 如果内核名称为"Darwin",则针对macOS进行特殊处理。
    if [[ "$kernel_name" == "Darwin" ]]; then
        # macOS在某些情况下报告的版本信息可能不正确,除非将此环境变量设置为0。
        # 参考链接: https://github.com/dylanaraps/neofetch/issues/1607
        export SYSTEM_VERSION_COMPAT=0

        # 从/System/Library/CoreServices/SystemVersion.plist文件中读取系统版本信息。
        # 使用awk命令解析.plist文件中的键值对。
        IFS=$'\n' read -d "" -ra sw_vers <<< "$(awk -F'<|>' '/key|string/ {print $3}' \
                                "/System/Library/CoreServices/SystemVersion.plist")"
        
        # 遍历读取到的系统版本信息数组,根据键名提取对应值。
        for ((i=0;i<${#sw_vers[@]};i+=2)); do
            case ${sw_vers[i]} in
                # 当键名为ProductName时,获取系统名称。
                ProductName)          darwin_name=${sw_vers[i+1]} ;;
                # 当键名为ProductVersion时,获取操作系统版本。
                ProductVersion)       osx_version=${sw_vers[i+1]} ;;
                # 当键名为ProductBuildVersion时,获取操作系统构建版本。
                ProductBuildVersion)  osx_build=${sw_vers[i+1]}   ;;
            esac
        done
    fi
}

可以说,设计的非常巧妙。

安装使用

Neofetch 的安装非常简单,在各大的软件包管理器都有发布:

1
2
3
4
5
6
# macOS
brew install neofetch
# Linux Debian/Ubuntu
sudo apt install neofetch
# Linux CentOS
sudo yum install neofetch

安装neofetch安装neofetch

安装完成,我们看看 Neofetch 的版本:

1
neofetch --version

查看neofetch版本查看neofetch版本

通常使用,只需要终端输入neofetch即可输出系统信息:

在不同系设备上使用neofetch在不同系设备上使用neofetch

如果细看 Neofetch 的脚本,会发现还有很多可选项,这些在 Neofetch 的 wiki 内也有记录:

posted @ 2025-12-15 20:09  木子欢儿  阅读(5)  评论(0)    收藏  举报