文章目录
- 前言
- 一. uname命令介绍
- 二. 语法格式及常用选项
- 三. 参考案例
- 3.1 输出全部信息
- 3.2 输出内核名称及版本
- 3.3 输出网络节点的主机名
- 3.4 输出主机硬件架构
- 3.5 输出操作系统名称
- 3.6 显示版本信息
- 总结
前言
大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第52篇文章。
专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. uname命令介绍
uname命令的英文全称即“Unix name”。
用于显示系统相关信息,比如主机名、内核版本号、硬件架构、操作系统类型等。
如果未指定任何选项,其效果相当于执行uname -s命令,即显示系统内核的名字。
二. 语法格式及常用选项
依据惯例,我们还是先查看帮助,使用 uname --help
[root@mufeng ~]# uname --help
用法:uname [选项]...
输出一组系统信息。如果不跟随选项,则视为只附加-s 选项。
-a, --all 以如下次序输出所有信息。其中若-p 和
-i 的探测结果不可知则被省略:
-s, --kernel-name 输出内核名称
-n, --nodename 输出网络节点上的主机名
-r, --kernel-release 输出内核发行号
-v, --kernel-version 输出内核版本
-m, --machine 输出主机的硬件架构名称
-p, --processor 输出处理器类型或"unknown"
-i, --hardware-platform 输出硬件平台或"unknown"
-o, --operating-system 输出操作系统名称
--help 显示此帮助信息并退出
--version 显示版本信息并退出
为了更直观一些,我们把常用的参数用表格来展示:
参数 | 解释 |
---|---|
a | 显示所有可用信息,包括内核名称、主机名称、内核版本、操作系统名称、硬件架构等等。 |
s | 显示内核名称。 |
n | 显示主机名称。 |
r | 显示内核版本号。 |
v | 显示内核发布号。 |
m | 显示硬件架构。 |
接下来我们看看与参数相关的案例应用
三. 参考案例
3.1 输出全部信息
[root@mufeng ~]# uname -a
Linux mufeng 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
这里可以输出系统,主机名,内核版本,时间和主机硬件系统架构等信息。
3.2 输出内核名称及版本
[root@mufeng ~]# uname -s
Linux
[root@mufeng ~]# uname -r
3.10.0-957.el7.x86_64
这里解析下与内核有关的知识,简单了解,后续有机会再深入学习即可:
可以看到当前的版本是3.10版本
Linux内核的作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。
如果要学习linux内核,建议C语言要掌握熟练,否则直接上手容易走很多弯路。
操作系统的组成:
- Bootloader:它负责设备的启动过程。
- Shell:Shell是一种编程语言,它可以控制其他文件,进程以及所有其他程序。
- Kernel:它是操作系统的主要组件,管理内存,CPU和其他相关组件。
- Desktop Environment:这是用户通常与之交互的环境。
- Graphical server(图形服务器):它是操作系统的子系统,用于在屏幕上显示图形
- Applications: 这些是执行不同用户任务(例如word,excel等)的程序集。
- Daemons : 后台服务提供商。
内核的任务
- 用于应用程序执行的流程管理。
- 内存和I / O(输入/输出)管理。
- 系统调用控制(内核的核心行为)。
- 借助设备驱动程序进行设备管理
如何学习linux内核呢?
学习Linux内核需要具备一定的计算机操作系统和编程知识,建议先掌握以下基础知识:
- 熟悉Linux操作系统的基本操作和命令行使用。
- 掌握C语言编程基础和Linux系统编程知识,如系统调用、进程管理、文件系统等。
- 了解操作系统的基本原理和概念,如进程、线程、内存管理、文件系统等。
- 熟悉Linux内核的源代码结构和代码组织方式,以及内核的编译和安装方法。
在具备以上基础知识的基础上,可以通过以下途径学习Linux内核:
- 阅读内核源代码:通过下载内核源代码并阅读代码,深入了解Linux内核的实现原理和代码实现细节。
- 学习内核开发文档:Linux内核有丰富的开发文档,包括官方文档和社区文档,这些文档详细介绍了内核的设计和实现,可以帮助学习者更好地理解内核源代码。
- 参与内核社区:加入Linux内核社区,参与内核开发和讨论,与其他开发者交流经验和知识。
- 学习内核开发工具:掌握内核开发工具的使用,如调试工具、性能分析工具等,可以帮助学习者更好地理解内核运行机制和调试内核问题。
学习Linux内核需要投入大量的时间和精力,建议通过逐步深入学习的方式,逐步提升自己的技能和知识水平。同时,应该多加实践,通过编写内核模块、实现内核功能等方式巩固所学知识。
3.3 输出网络节点的主机名
[root@mufeng ~]# uname -n
mufeng
此处和hostname查出来的是一样的:
[root@mufeng ~]# hostname
mufeng
3.4 输出主机硬件架构
[root@mufeng ~]# uname -m
x86_64
[root@mufeng ~]# uname -p
x86_64
uname -m : 输出主机硬件架构名称
uname -p 输出处理器类型或者unkown
拓展:
cpu有四大架构:
我们目前使用比较多的架构有:ARM、RISC-V、MIPS,X86等等
架构 | 特点 | 代表的使用者 | 运营机构 | 发布时间 |
---|---|---|---|---|
X86 | 性能高,速度快,兼容好 | Intel,AMD | 英特尔 | 1978 |
ARM | 成本低,功耗低 | 苹果,谷歌,华为,IBM | 英国ACORN公司 | 1983年 |
RISC-V | 模块化,简单化,可拓展 | 三星,英伟达,西部数据 | RISC-V基金会 | 2014 |
MIPS | 简洁,优化方便,拓展性能高 | 龙芯 | MIPS科技 | 2002 |
这里设计到两个概念: 主机硬件架构和处理器类型:
主机硬件架构名称和处理器类型是两个不同的概念。
主机硬件架构名称指的是计算机所采用的硬件平台架构。常见的硬件平台架构包括x86、x86-64、ARM、MIPS等。硬件平台架构决定了操作系统和软件在计算机上的运行方式。
处理器类型指的是计算机的中央处理器(CPU)的型号或系列。常见的处理器型号或系列包括Intel Core i7、AMD Ryzen、Qualcomm Snapdragon等。不同的处理器型号或系列在性能、功耗、架构等方面存在差异。
在使用uname -m命令时,它所返回的主机硬件架构名称是指计算机的处理器架构类型,例如x86、x86-64、ARM等,而不是具体的处理器型号或系列。
因此,主机硬件架构名称和处理器类型是两个不同的概念,但它们都会影响操作系统和软件在计算机上的运行方式。
你会发现这里的uname -p 和uname -m 输出的结果一样,为什么呢?
uname -m命令返回的是计算机的主机硬件架构名称,例如x86、x86-64、ARM等,而uname -p命令返回的是计算机的处理器类型,例如i686、x86_64、armv7l等。
然而,在一些操作系统上,uname -p命令实际上也会返回主机硬件架构名称,而不是处理器类型。这通常是因为在这些操作系统上,处理器类型和主机硬件架构名称的含义被混淆了。因此,在这些操作系统上,uname -p和uname -m命令返回的结果是相同的。
需要注意的是,不同的操作系统可能对uname命令的实现方式存在差异,因此在不同的操作系统上使用uname命令时,其输出的结果也可能会存在差异。
3.5 输出操作系统名称
[root@mufeng ~]# uname -o
GNU/Linux
拓展:
GNU/Linux 是以 Unix 操作系统为原型创造的,自从诞生之日起,它就被设计成一种多任务、多用户的系统。这些特点使 GNU/Linux 完全不同于其它著名的操作系统。
这里有小伙伴就有疑问了,输出操作系统名称,不应该是centos这种吗,为什么是 GNU/Linux。
因为:
操作系统名称通常是基于其核心代码的标准命名方式,而不是基于某个特定的发行版。
GNU/Linux是一种开源操作系统,其核心代码是由GNU组织开发的GNU项目中的一部分,而Linux则是由Linus Torvalds开发的内核部分。这种操作系统通常会以GNU/Linux的形式进行命名,以突显GNU和Linux两部分代码的重要性。这种命名方式是由GNU组织和自由软件社区推广的,并被广泛接受。
CentOS是一种基于Red Hat Enterprise Linux(RHEL)的开源操作系统,它是RHEL的重新编译版本。尽管CentOS是一种非常流行的操作系统,但它只是基于RHEL的一种发行版,而不是一个独立的操作系统。因此,CentOS通常被视为RHEL的社区支持版本。
因此,CentOS虽然是一种重要的Linux发行版,但它的命名通常不用于代表整个Linux操作系统的名称。而GNU/Linux是一种更广泛的命名方式,它代表了使用Linux内核和GNU软件的开源操作系统的范畴。
3.6 显示版本信息
使用 --version可以查看与版本相关的信息,不过这个不经常用。
root@mufeng ~]# uname --version
uname (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。
总结
uname命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~