🔥个人主页: Milestone-里程碑
❄️个人专栏: <<力扣hot100>> <<C++>><<Linux>>
🌟心向往之行必能至
目录
[一 . 基础指令的总结和使用](#一 . 基础指令的总结和使用)
[1.1 bc 指令:可以很⽅便的进⾏浮点运算](#1.1 bc 指令:可以很⽅便的进⾏浮点运算)
[1.2 面试题讲解(带三个指令)](#1.2 面试题讲解(带三个指令))
[二. 常用热键:提升操作效率](#二. 常用热键:提升操作效率)
[三. shell命令及其内核交互的原理](#三. shell命令及其内核交互的原理)
[1.1 核心原理解析](#1.1 核心原理解析)
[1.2 shell(翻译者/中间商) 内壳(执行者)](#1.2 shell(翻译者/中间商) 内壳(执行者))
前言:
前面的我们讲述了常用的指令,但基本也是会用,但不知道原理及哪些指令很实用,此篇将带你见识常用键位及shell 与Linux的关系,理解底层结构
一 . 基础指令的总结和使用
1.1 bc 指令:可以很⽅便的进⾏浮点运算
bash
#普通使用
root@hcss-ecs-1cde:/tmp# bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1.06 *56.2
59.57
4+5
9
23.6*89
2100.4
#与管道结合`
root@hcss-ecs-1cde:/tmp# echo '1+2' |bc
3
1.2 面试题讲解(带三个指令)
面试题:
1.你的计算机体系结构是什么?
2.如何查看你的 Linux 版本?
3.如何查看你的具体系统发行版?
1.首先,我们先明白体系结构其实就是我们的芯片结构
2.Linux分新旧版本,企业一般都是使用旧版本(经过时间与多数公司的验证,稳定性好)
uname ‒r 指令
语法:uname [选项]
功能: uname⽤来获取电脑和操作系统的相关信息。
补充说明:uname可显⽰linux主机所⽤的操作系统的版本、硬件的名称等基本信息。
bash
root@hcss-ecs-1cde:~# uname -r
5.15.0-138-generic
| 版本组成部分 | 含义及对应关系 |
|---|---|
| 5.15.0 | 对应的Linux 主线内核版本(基础内核版本) |
| -138 | Ubuntu 对该主线内核的补丁版本号(表示该主线内核在 Ubuntu 中的第 138 次补丁更新) |
| generic | 内核类型(适用于通用 x86_64 硬件平台) |
| 对应 Ubuntu 发行版 | 该版本属于Ubuntu 22.04 LTS(Jammy Jellyfish)(Ubuntu 22.04 默认采用 5.15 系列内核,-138 是该系列的后期补丁版本) |
-a / -all 会详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理
器类型,硬件平台类型,操作系统名称
bash
root@hcss-ecs-1cde:~# uname -a
Linux hcss-ecs-1cde 5.15.0-138-generic #148-Ubuntu SMP Fri Mar 14 19:05:48 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
| 信息项 | 对应内容 |
|---|---|
| 内核名称 | Linux |
| 主机名 | hcss-ecs-1cde |
| 内核版本号 | 5.15.0-138-generic |
| 内核版本 | #148-Ubuntu SMP Fri Mar 14 19:05:48 UTC 2025 |
| 硬件名 | x86_64 |
| 处理器类型 | x86_64 |
| 硬件平台类型 | x86_64 |
| 操作系统名称 | GNU/Linux |
注:x86_64 是64位,如果后面没有64,那么就是32位
大多软件都适配32位,是因为兼容性,32位可以在64位下跑,反之则不一定
lsb_release -a:查看操作系统版本
bash
root@hcss-ecs-1cde:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
| 输出字段 | 对应内容 | 含义说明 |
|---|---|---|
| Distributor ID | Ubuntu | 操作系统的发行商标识(发行商名称) |
| Description | Ubuntu 22.04.5 LTS | 发行版完整描述:包含发行版名、具体版本号、LTS(长期支持)标识 |
| Release | 22.04 | 发行版的主版本号 |
| Codename | jammy | 该发行版对应的开发 / 内部代号 |
二. 常用热键:提升操作效率
|---------|--------------------------------------------------|
| 热键 | 功能 |
| ctrl+c | 终止异常任务 |
| 上下键 | 查看历史命令,从新到旧 |
| tab | 输入数据后,快速按两下,可以查看根目录下包含该数据的文件 |
| ctrl+r | 查看历史命令,搜索 |
| ctrl+d | 退出当前队伍 |
| history | 上面的指令竟然可以查看历史命令,难道Linux可以记录我们的命令吗?用histroy是验证可以的 |
三. shell命令及其内核交互的原理
1.1 核心原理解析
Linux严格意义上说的是⼀个操作系统,我们称之为"核⼼(kernel)" ,但我们⼀般⽤⼾,不能直接
使⽤kernel。⽽是通过kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通。如何理解?为
什么不能直接使⽤kernel?

从技术⻆度,Shell的最简单定义:命令⾏解释器(command Interpreter)主要包含:
• 将使⽤者的命令翻译给核⼼(kernel)处理。
• 同时,将核⼼的处理结果翻译给使⽤者。
那么为什么要存在外壳程序呢?
1.方便用户操作
2.保护内壳程序
1.2 shell(翻译者/中间商) 内壳(执行者)
以我们当前的知识,无法很好理解,下面举个例子,方便我们感性理解
阶段一:
在一个村子里,老王是村长,他的儿子小王事业有成回到家乡。老王催小王找对象,但小王不擅长与女孩交流。于是,老王请来村里有名的媒婆------王婆。王婆到小王家询问他的心意,小王说:"我喜欢隔壁的如花。"王婆便去如花家说媒。如花表示不认识小王,王婆提醒:"他是你小学同学。"如花想了想,还是拒绝了。王婆只好回去告诉小王。
解析:
1.小王不亲自去,是因为他不善于交流(用户不善于操作)
2.小王让媒婆(shell)替他去传递信息
3.如花(内核)拒绝,王婆回去告诉小王(执行错误,反馈用户)
阶段二:
小王得知该消息仍不死心,要求王婆再尝试,王婆只好继续,但走到如花家门口,看到小帅一家人与如花一家人和谐地一起吃饭,王婆见此,未进门
理解
1.(用户)在得知自己错误仍不死心,继续进行操作,王婆看到如花家场景,选择放弃
2.正如王婆这样,shell这外壳也会判断信息是否正确,防止侵害内壳
阶段三
小王依旧不死心,于是王婆只能招一个实习生替她去说媒(无论实习生成不成功,都不影响王婆本人)
理解
正如王婆找替身一样,shell也会开一个子进程来判断是否可以进行,其中子进程并不会影响shell

对⽐windows GUI,我们操作windows 不是直接操作windows内核,⽽是通过图形接⼝,点击,从⽽完成我们的操作(⽐如进⼊D盘的操作,我们通常是双击D盘盘符.或者运⾏起来⼀个应⽤程序)。
shell 对于Linux,有相同的作⽤,主要是对我们的指令进⾏解析,解析指令给Linux内核。反馈结果在通过内核运⾏出结果,通过shell解析给⽤⼾。
总结:
掌握常用的热键,提升自己的操作效率
理解shell于内核交互的原理.让我们不竟可以知指令,还明白指令的原理