命令行中查看当前Linux发行版信息

Friday, January 17, 2020

1. 通过 /etc/os-release 文件查看

/etc/os−release 文件包含了当前操作系统的基本信息,可以直接使用 cat 查看

$ cat /etc/os-release 
NAME="Manjaro Linux"
ID=manjaro
ID_LIKE=arch
PRETTY_NAME="Manjaro Linux"
ANSI_COLOR="1;32"
HOME_URL="https://www.manjaro.org/"
SUPPORT_URL="https://www.manjaro.org/"
BUG_REPORT_URL="https://bugs.manjaro.org/"
LOGO=manjarolinux

值得注意的是 ID_LIKE 字段, 一般是当前Linux发行版密切相关的其他Linux发行版, 对于衍生的发行版来说放的就是上游的发行版(上游发行版不会在该字段中放其衍生发行版)。Manjaro基Arch Linux 所以 ID_LIKE=arch ,在Ubuntu中 ID_LIKE=debian ,在Centos中 ID_LIKE="rhel fedora" 等等

另外关于 NAME ID PRETTY_NAME 三者的区别有兴趣请自行查看手册( man os-release )

在shell脚本中使用

你可能已经发现了 /etc/os-release 文件的内容完全符和shell赋值语句的语法, 你可以在shell脚本中直接用 source 命令导入该文件包含的所有信息

还有一个有趣的地方, /etc/os-release 其实是符号链接, 指向 ../usr/lib/os-release

$ ls -l /etc/os-release 
lrwxrwxrwx 1 root root 21 Feb 20  2019 /etc/os-release -> ../usr/lib/os-release

注意是 ../usr/lib/os-release 而不是 /usr/lib/os-release , 也就是说用的是相对路径而不是绝对路径, 对此手册中给出的解释是

A relative symlink instead of an absolute symlink is necessary to avoid breaking the link in a chroot or initrd environment such as dracut.

2. 使用 lsb_release 命令

使用 -a 选项显示所有信息

$ lsb_release -a
LSB Version:	n/a
Distributor ID:	ManjaroLinux
Description:	Manjaro Linux
Release:	18.1.5
Codename:	Juhraya

在shell脚本中使用

该命令所显示的信息在一些发型版中也会保存在 /etc/lsb-release 文件中,可以使用 source 命令导入。当然个人认为更好的方式是使用该命令的 -s 选项

$ lsb_release -si
ManjaroLinux
$ lsb_release -sd
"Manjaro Linux"
$ lsb_release -sr
18.1.5
$ lsb_release -sc
Juhraya

在脚本中可以这样

Distro_Description=`lsb_release -sd`

或者更易读的形式

Distro_Description=$(lsb_release -s --description)

3. 使用neofetch

neofetch 是一个用bash写的命令行工具用以显示系统软硬件信息,用来向别人展示自己电脑的基本信息非常方便

当然你想的话也可以稍微调整一下参数显示其他发行版的LOGO

linux

Linux查询文件所属包和查看包所包含文件

一些毫无卵用的命令行工具