前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >摸不透系统当前状态和配置?一条命令快速查看服务器状态! NeoFetch和FastFetch使用详解

摸不透系统当前状态和配置?一条命令快速查看服务器状态! NeoFetch和FastFetch使用详解

原创
作者头像
Mintimate
发布2024-08-10 23:34:46
2420
发布2024-08-10 23:34:46
举报
文章被收录于专栏:Mintimate's Blog

有时候,我们在系统内想快速查看当前的硬件配置、操作系统版本、运行时间等关键信息。

无论是为了诊断问题、优化性能,还是单纯满足好奇心;亦或者是想分享当前的服务器信息给小伙伴;我们都希望能快速查看这些信息。

嘿嘿
嘿嘿

然而,传统的命令行工具往往繁琐复杂,输出杂乱;聚合不同命令返回的信息,也比较繁琐。于是便诞生出了NeoFetchFastFetchScreenFetch等命令行工具。它们能用一行命令,即可以简洁、美观的ASCII方式呈现系统信息,满足了用户快速获取关键数据的需求。

比如: 如果你觉得腾讯云轻量应用服务器的控制台,展示的信息不够充分,或者分享起来,不够直观? 那么使用 NeoFetch 或者 NeoFetch 的类似命令行工具,实在是再合适不过了。

Neofetch

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

NeoFetch项目
NeoFetch项目

官方的项目地址是:

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

macOS使用Neofetch
macOS使用Neofetch

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

基于Bash
基于Bash

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

代码语言:bash
复制
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 的安装非常简单,在各大的软件包管理器都有发布:

代码语言:bash
复制
# macOS
brew install neofetch
# Linux Debian/Ubuntu
sudo apt install neofetch
# Linux CentOS
sudo yum install neofetch
安装neofetch
安装neofetch

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

代码语言:bash
复制
neofetch --version
查看neofetch版本
查看neofetch版本

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

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

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

接下来我们看看可选项有那些?

扩展使用

根据官方的 wiki,Neofetch 在安装后,会自动生成默认配置文件,配置文件的存放地址在:${HOME}/.config/neofetch/config.conf内。里面其实就是默认的输出内容定义:

代码语言:bash
复制
cat ${HOME}/.config/neofetch/config.conf
neofetch默认配置
neofetch默认配置

可以看到,默认情况下打印的内容,就在配置文件内的 print_info 所定义。如果我们需要修改呢,有两种方法:

  • 直接使用vim等文本编辑器修改这个文件即可。
  • 在运行neofetch的时候,使用参数开启即可。

举个例子,默认情况,只显示内存,并没有显示内存使用的百分比;但是实际上在config.conf文件内是可以开启的,比如:

代码语言:bash
复制
# 直接输出
neofetch --memory_percent on

或者直接修改配置文件

修改配置文件
修改配置文件

最后的结果:

显示内存比
显示内存比

操作前提

本次文章的操作前提,需要你有一台电脑。如果你是希望使用NeoFetch,那么需要用Bash的支持:

  1. 系统为Linux或Unix;
  2. Bash的版本最少需要3.2,你可以使用bash --version查看bash版本。
适用于NeoFetch的系统
适用于NeoFetch的系统

如果你希望使用 FastFetch ,那么原则上没有什么受限,经过测试,目前的Windows 7也可以使用,Windows 11 ON ARM使用也正常。如果在Windows Server上,那么目前常用的2016、2019和2022都可以使用:

都是支持的
都是支持的

最后,如果你希望有一台Linux进行练手,或者使用一台服务器部署网站,甚至使用Linux服务器测试本文章内容,强烈推荐使用腾讯云轻量应用服务器进行操作。

本文对应的视频教程:

项目归档

Neofetch完全基于bash,使其兼容性很不错;即使你的Debian从8已经到12,但是 Neofetch 版本一直没有更新,那么 Neofetch 的使用,也不会出现什么问题。

这也是为什么,Neofetch在归档前,已经三年没有更新,但使用起来也没有任何问题。可以预想到,未来很长一段时间也不会有任何问题。那些基础的命令free -muname -s等等,都是不会改变的。

但是,为什么 Neofetch 停止维护了呢? 或者说是项目归档了呢?

为什么停止维护呢?
为什么停止维护呢?

其实,根据 reddit 上的两篇文章,可能可以略知一二:

大概就是作者换行了(回家开农场了,不过不清楚是否真的回去开农场?),项目维护者经常面临着巨大的工作量,包括但不限于代码更新、设备兼容考虑、错误修复、功能请求处理以及社区管理等等繁琐事物,加上作者自己从事的软件工作;作者在技术工作中感到厌倦和疲惫。而且即使从事的是技术,也需要考虑政治和不同人的立场,也需要站队。

综合上述的内容,他现在更倾向于追求他认为更简单、压力更小、更纯粹的生活方式。

自然而然地,项目就放弃维护了。

说实话,有点可惜;不过也确实为作者感到高兴,他找到了更好的生活。虽然不知道他是否真的是回去开设农场,但是应该是一个不错的新生活。

回到NeoFetch,其实也有很多继任者:

接任者都是非常好用的项目;不过受限于篇幅,接下来,我们就取其中的 Fastfetch 来一起看看。

FastFetch

通常情况下,你可以把 FastFetch 当作 NeoFetch 使用。安装方式也是一样,FastFetch 已经在各个平台的软件包管理器发布:

代码语言:bash
复制
# macOS
brew install fastfetch
# Linux Debian/Ubuntu (Debian 13 or newer)
sudo apt install fastfetch

当然,相比于 NeoFetch 全部基于bash的 shell 脚本,FastFetch 是基于C的,你也可以进行编译安装:

或者直接下载预编译的版本:

比如 Windows 下载预编译版本使用:

Windows使用FastFetch
Windows使用FastFetch

目前腾讯云的轻量应用服务器,还没有Debian 13的镜像:

目前腾讯云轻量应用服务器的镜像
目前腾讯云轻量应用服务器的镜像

不过也不用担心,我们可以使用deb软件包管理器安装:

树莓派使用FastFetch
树莓派使用FastFetch

也可以下载二进制文件,如果需要频繁使用,还可以配置到环境变量内:

使用二进制文件
使用二进制文件

直接使用软件包管理器安装好 FastFetch 后,直接和 NeoFetch 一样,在终端内直接使用fastfetch命令即可:

腾讯云轻量应用服务器Debian12使用FastFetch
腾讯云轻量应用服务器Debian12使用FastFetch

我的4C8G服务器,是虚拟化为Intel(R) Xeon(R) Gold 6133,居然没有抽奖到AMD的,有点可惜……ヽ(???)メ

如果你想展示全部内容:

代码语言:bash
复制
fastfetch -c all
展示全部内容
展示全部内容

可以看到,这一次,甚至IP地址、DNS信息等等都有了……

如果你需要自定义显示数据,那么和 NeoFetch 一样,编辑自定义配置即可。有些不一样的是,你需要先生成一个配置文件,再进行修改:

代码语言:bash
复制
# 生成默认配置文件
fastfetch --gen-config
# 使用Vim修改
vim $HOME/.config/fastfetch/config.jsonc

修改的内容,可以参考:

比如,我套用模板的效果:

代码语言:json
复制
{
    "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
    "logo": {
        "type": "none"
    },
    "modules": [
        {
            "type": "title",
            "format": "                                {6}{7}{8}"
        },
        "break",
        {
            "type": "custom",
            "format": "┌{$1} {#1}System Information{#} {$1}┐"
        },
        "break",
        {
            "key": "    󰌽 OS           ",
            "keyColor": "red",
            "type": "os"
        },
        {
            "key": "    󰌢 Machine      ",
            "keyColor": "green",
            "type": "host"
        },
        {
            "key": "     Kernel       ",
            "keyColor": "magenta",
            "type": "kernel"
        },
        {
            "key": "    󰅐 Uptime       ",
            "keyColor": "red",
            "type": "uptime"
        },
        {
            "key": "    󰍹 Resolution   ",
            "keyColor": "yellow",
            "type": "display",
            "compactType": "original-with-refresh-rate"
        },
        {
            "key": "     WM           ",
            "keyColor": "blue",
            "type": "wm"
        },
        {
            "key": "     DE           ",
            "keyColor": "green",
            "type": "de"
        },
        {
            "key": "     Shell        ",
            "keyColor": "cyan",
            "type": "shell"
        },
        {
            "key": "     Terminal     ",
            "keyColor": "red",
            "type": "terminal"
        },
        {
            "key": "    󰻠 CPU          ",
            "keyColor": "yellow",
            "type": "cpu"
        },
        {
            "key": "    󰍛 GPU          ",
            "keyColor": "blue",
            "type": "gpu"
        },
        {
            "key": "    󰑭 Memory       ",
            "keyColor": "magenta",
            "type": "memory"
        },
        {
            "key": "    󰩟 Local IP     ",
            "keyColor": "red",
            "type": "localip",
            "compact": true
        },
        {
            "key": "    󰩠 Public IP    ",
            "keyColor": "cyan",
            "type": "publicip"
        },
        "break",
        {
            "type": "custom",
            "format": "└{$1}────────────────────{$1}┘"
        },
        "break",
        {
            "type": "colors",
            "paddingLeft": 34,
            "symbol": "circle"
        }
    ]
}
套用FastFetch模板
套用FastFetch模板

亦或者,修改自定义的Logo:FastFetch: Logo options

代码语言:bash
复制
# 展示所有FastFetch支持的logo
fastfetch --list-logos
# 使用小号logo展示系统信息
fastfetch --logo-type small
# 等等

比如,我这里使用预设的macos2并且在本地的macOS上使用:

套用macos2模板
套用macos2模板

END

让我们一齐瞩目那曾风靡一时的 NeoFetch 项目,即便如此耀眼的存在,亦难逃其创造者因个人考量而选择封存与告别维护的命运。这仿佛在诉说着一个不争的事实:人力有时而穷,世间万物皆有更迭,即便是最为璀璨的美好,也终将画上句点。

然而,在这看似无奈的循环中,我们能够且应当,珍惜并拥抱眼前的每一份美好。更有甚者,当我们具备相应的能力时,我们理应投身于创造与维系这份美好之中,让其得以延续。

哈哈,升华来了~
哈哈,升华来了~

本篇文章,不仅是对 NeoFetch 的致敬,也是对所有致力于开源事业贡献者的颂扬。让技术的光芒得以跨越时间与空间的限制,持续照亮前行的道路(我这波升华怎么样(o′ω`o)ノ?)。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Neofetch
    • 安装使用
      • 扩展使用
      • 操作前提
      • 项目归档
      • FastFetch
      • END
      相关产品与服务
      轻量应用服务器
      轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档