文章目录
前言
大家好,又见面了,我是沐风晓月,本文是专栏【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 -r3.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英特尔1978ARM成本低,功耗低苹果,谷歌,华为,IBM英国ACORN公司1983年RISC-V模块化,简单化,可拓展三星,英伟达,西部数据RISC-V基金会2014MIPS简洁,优化方便,拓展性能高龙芯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 --versionuname(GNU coreutils)8.22
Copyright (C)2013 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。
总结
uname命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~
版权归原作者 我是沐风晓月 所有, 如有侵权,请联系我们删除。