Neofetch
NeoFetch是一个命令行系统信息工具,以其简洁美观的输出格式和高度可定制性而闻名。它能够在终端中显示系统logo(通常是ASCII艺术形式)以及系统信息(如操作系统、硬件配置、安装的软件包等)。
NeoFetch项目
官方的项目地址是:
可以看到,项目最早在2015年12月30日进行了第一次提交,在2024年04月20日项目进行了归档,主分支最后一次的提交停留在2021年12月10日。Neofetch 还可以正常使用,但是 Neofetch 已经停止维护了。这意味着,后续将不会有所更新。
macOS使用Neofetch
Neofetch 基于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版本
通常使用,只需要终端输入neofetch即可输出系统信息:
在不同系设备上使用neofetch
如果细看 Neofetch 的脚本,会发现还有很多可选项,这些在 Neofetch 的 wiki 内也有记录: