深度剖析:Linux下查看系统版本与CPU架构
bigegpt 2025-03-13 13:13 10 浏览
在Linux系统管理、维护以及软件部署的过程中,精准掌握系统版本和CPU架构是极为关键的基础操作。
这些信息不仅有助于我们深入了解系统特性、判断软件兼容性,还能为后续的软件安装、性能优化提供重要依据。
接下来,我们将全面且细致地介绍在Linux系统中查看系统版本和CPU架构的多种方法,涵盖不同发行版的特性。
一、查看系统版本
(一)基于文件的方法
1. /etc/os - release文件
在大多数现代Linux发行版中, /etc/os-release 文件包含系统版本的关键信息。使用文本编辑器(如 cat 命令)查看该文件内容:
cat /etc/os-release
执行上述命令后,以Ubuntu为例,会输出类似如下内容:
NAME = "Ubuntu"
VERSION = "22.04.3 LTS (Jammy Jellyfish)"
ID = ubuntu
ID_LIKE = debian
PRETTY_NAME = "Ubuntu 22.04.3 LTS"
VERSION_ID = "22.04"
HOME_URL = "https://www.ubuntu.com/"
SUPPORT_URL = "https://help.ubuntu.com/"
BUG_REPORT_URL = "https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL = "https://www.ubuntu.com/legal/terms - and - conditions/privacy - policy"
VERSION_CODENAME = jammy
UBUNTU_CODENAME = jammy
从输出中,我们能清晰获取系统的名称( NAME )、版本号( VERSION )、版本代号( VERSION_CODENAME )等重要信息。
而对于Arch Linux,输出则类似:
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux
从中可得知其发行版名称以及一些相关的支持与文档链接等信息。
2. /etc/lsb-release文件(适用于基于Debian和Ubuntu的系统)
对于基于Debian和Ubuntu的系统, /etc/lsb-release 文件也存储着系统版本相关信息。通过以下命令查看:
cat /etc/lsb - release
输出内容类似:
DISTRIB_ID = Ubuntu
DISTRIB_RELEASE = 22.04
DISTRIB_CODENAME = jammy
DISTRIB_DESCRIPTION = "Ubuntu 22.04.3 LTS"
其中, DISTRIB_RELEASE 表示发行版本号, DISTRIB_DESCRIPTION 给出了系统的完整描述。不过,Arch Linux没有这个文件,因为它不属于基于Debian的发行版体系。
(二)使用命令行工具
1. lsb_release命令
lsb_release 是专门用于显示LSB(Linux Standard Base)和发行版相关信息的工具。执行以下命令查看系统版本:
lsb_release -a
-a 参数表示显示所有信息,输出结果与查看 /etc/lsb - release 文件类似,但更加格式化,易于阅读。如果只想查看版本号,可以使用 -r 参数:
lsb_release -r
此命令在Arch Linux中不可用,因为Arch不遵循LSB标准。
2. hostnamectl命令(适用于基于systemd的系统)
在基于systemd的系统中, hostnamectl 命令不仅能管理主机名,还能查看系统版本信息。执行以下命令:
hostnamectl
输出中会包含“Operating System”字段,显示系统的名称和版本,例如在Ubuntu中:
Static hostname: my - server
Icon name: computer - server
Chassis: server
Machine ID: 1234567890abcdef1234567890abcdef
Boot ID: 1234567890abcdef1234567890abcdef
Operating System: Ubuntu 22.04.3 LTS
Kernel: Linux 5.15.0 - 76 - generic
Architecture: x86_64
在Arch Linux中执行该命令,输出类似:
Static hostname: arch - pc
Icon name: computer
Chassis: desktop
Machine ID: 1234567890abcdef1234567890abcdef
Boot ID: 1234567890abcdef1234567890abcdef
Operating System: Arch Linux
Kernel: Linux 6.1.63 - arch1 - 1
Architecture: x86_64
能看到系统名称为“Arch Linux”以及内核版本等信息。
3. pacman -Q linux命令(针对Arch Linux)
Arch Linux使用 pacman 作为包管理器,通过 pacman -Q linux 命令可以查看当前安装的Linux内核版本,以此间接了解系统版本相关信息,因为Arch是滚动更新,内核版本一定程度反映了系统的更新状态。
pacman -Q linux
输出类似:
linux 6.1.63 - arch1 - 1
这里的“6.1.63 - arch1 - 1”就是当前安装的内核版本。
二、查看CPU架构
(一)/proc/cpuinfo文件
/proc/cpuinfo 是一个虚拟文件,包含了CPU的详细信息,通过它可以获取CPU架构。
使用 grep 命令查找“processor”和“cpu architecture”相关信息:
grep 'processor\|cpu architecture' /proc/cpuinfo
输出结果类似:
processor : 0
cpu architecture: 64
processor : 1
cpu architecture: 64
其中,“cpu architecture”后面的数字表示CPU架构,“64”代表64位架构,“32”则代表32位架构。
有些CPU信息中可能不会直接出现“cpu architecture”字段,但可以通过“flags”字段中的信息辅助判断,例如包含“lm”标志通常表示支持64位长模式,即64位架构。
(二)uname命令
uname 命令用于显示系统相关信息,加上 -m 参数可以查看CPU架构:
uname -m
常见的输出结果有“x86_64”(表示64位x86架构)、“i386”或“i686”(表示32位x86架构)、“armv7l”(表示32位ARM架构)、“aarch64”(表示64位ARM架构)等。此外, uname -a 命令可以输出更全面的系统信息,包括内核版本、主机名、CPU架构等,方便一次性获取多个关键信息。
(三)lscpu命令
lscpu 命令提供了更详细的CPU信息,包括架构、型号、核心数等。执行该命令:
lscpu
输出内容包含“Architecture”字段,明确显示CPU架构,例如:
Architecture: x86_64
CPU op - mode(s): 32 - bit, 64 - bit
Byte Order: Little Endian
Address sizes: 46 bits physical, 48 bits virtual
CPU(s): 4
On - line CPU(s) list: 0 - 3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 158
Model name: Intel(R) Core(TM) i5 - 8250U CPU @ 1.60GHz
Stepping: 10
CPU MHz: 800.000
CPU max MHz: 3400.0000
CPU min MHz: 400.0000
BogoMIPS: 3200.00
Virtualization: VT - x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
NUMA node0 CPU(s): 0 - 3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
该命令还可以结合 --extended 参数,显示更详细的CPU拓扑结构等信息。
准确获取Linux系统版本和CPU架构信息,是系统管理和软件部署的重要前提。
通过上述方法,我们可以轻松获取这些关键信息,为后续的系统操作和软件应用提供有力支持。
相关推荐
- 最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)
-
前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...
- Redis数据库从入门到精通(redis数据库设计)
-
目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...
- netcore 急速接入第三方登录,不看后悔
-
新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...
- 精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)
-
大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...
- Oracle 12c系列(一)|多租户容器数据库
-
作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...
- flutter系列之:UI layout简介(flutter-ui-nice)
-
简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...
- Flutter 分页功能表格控件(flutter 列表)
-
老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...
- Flutter | 使用BottomNavigationBar快速构建底部导航
-
平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...
- Android中的数据库和本地存储在Flutter中是怎样实现的
-
如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...
- Flet,一个Flutter应用的实用Python库!
-
▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...
- flutter系列之:做一个图像滤镜(flutter photo)
-
简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...
- flutter软件开发笔记20-flutter web开发
-
flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...
- Flutter实战-请求封装(五)之设置抓包Proxy
-
用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...
- 为什么不在 Flutter 中使用全局变量来管理状态
-
我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...
- Flutter 攻略(Dart基本数据类型,变量 整理 2)
-
代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...
- 一周热门
- 最近发表
-
- 最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)
- Redis数据库从入门到精通(redis数据库设计)
- netcore 急速接入第三方登录,不看后悔
- 精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)
- Oracle 12c系列(一)|多租户容器数据库
- flutter系列之:UI layout简介(flutter-ui-nice)
- Flutter 分页功能表格控件(flutter 列表)
- Flutter | 使用BottomNavigationBar快速构建底部导航
- Android中的数据库和本地存储在Flutter中是怎样实现的
- Flet,一个Flutter应用的实用Python库!
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)