当前位置: 首页 > news >正文

第3章 为什么输入一个命令,电脑就会执行?

上一章我们知道程序不能直接控制硬件,必须经过 Kernel。

但是又出现一个问题。例如:你打开 Linux。

输入:

ls

为什么电脑就知道:

我要查看目录?

是谁认识:

ls

这个单词?

Kernel吗?

不是。

真正认识它的是:

Shell。


第1节 什么是 Shell?

英文:

Shell

中文一般翻译:

命令解释器(Command Interpreter)

为什么叫 Shell(外壳)?

因为它包裹在 Kernel 外面。

可以理解成:

用户 ↓ Shell ↓ Kernel ↓ 硬件

Shell就是:用户和Kernel之间的翻译官。


举一个生活例子。

假设:

你去银行,你不会直接操作银行后台系统。

而是告诉柜员:

我要转账。

柜员把你的意思翻译成:

银行后台能理解的操作。

这里柜员就是Shell。

银行后台就是Kernel。


所以Shell就是

一个负责理解命令、调用程序、把结果显示出来的软件。


第2节 Shell 到底做了什么?

假设输入:

pwd

整个过程其实发生了很多事情。

第一步:

键盘收到:

p w d

第二步:

Terminal显示:

pwd

第三步:

你按Enter。

第四步:

Shell开始工作。

它首先想:

pwd 是什么?

它开始寻找:

有没有叫 pwd 的程序?

找到以后执行它。

程序里面需要知道:当前目录。

于是程序向Kernel发起:系统调用。

Kernel返回:

/home/x

Shell收到以后,把结果交给Terminal。

Terminal显示出来整个流程:

键盘 ↓ Terminal ↓ Shell ↓ 程序 ↓ Kernel ↓ 硬盘/内存 ↓ Shell ↓ Terminal ↓ 屏幕

学习每一个命令其实都是这个流程。


第3节 Terminal 是什么?

这是很多新手最大的误区。

很多人认为黑窗口就是Shell,其实不是。

例如:

Windows里面你看到:

Windows Terminal

它只是一个窗口程序。

Linux里面:

例如:

GNOME Terminal

也是一个窗口程序。

它负责:

  • 接收键盘输入
  • 显示文字
  • 复制粘贴
  • 滚动历史记录
  • 改变字体颜色

但是:

它不会解释:

ls

什么意思。

解释命令的始终是:Shell。

所以Terminal更像:一本空白的笔记本。

Shell:才是真正会思考的人。


第4节 Terminal 和 Shell 的关系

假设:

你和国外朋友聊天。

你使用:微信。

微信负责:

输入文字 发送消息 显示消息

但是微信不会翻译,真正翻译的人是:翻译软件。

Linux也是一样。Terminal负责:

输入 显示

Shell负责:

理解命令 执行命令

所以关系应该是:

你 ↓ Terminal ↓ Shell ↓ Kernel ↓ 硬件

第5节 Bash 是什么?

现在能解释:

为什么很多Linux教程。

第一句话就是:

bash

Bash是什么?

它是一种Shell。

Linux里面有很多Shell。

例如:

bash zsh fish dash sh

都属于Shell。

只是功能不同,风格不同。


企业里面最常见的是:

bash

Mac现在默认:

zsh

有些高级用户喜欢:

fish

因为自动补全更智能,界面更漂亮。


所以以后别人说:

打开 Bash。

真正意思就是:

打开 Bash 这个 Shell。


第6节 Windows 为什么有 CMD 和 PowerShell?

很多人觉得:Linux才有Shell。

其实不是。

Windows也有。

例如:

最老的是:

CMD

后来微软推出:

PowerShell

PowerShell其实也是Shell。

只是能力比CMD强很多。

例如:

Linux:

ls

Windows CMD:

dir

作用其实一样,都是查看目录,只是命令不同。


第7节 Shell 不只是执行命令

很多新手认为Shell只能输入:

ls

其实不是。

Shell本身还是一种编程语言。

例如:

echo Hello

输出:

Hello

例如:

name="Tom" echo $name

输出:

Tom

以后你会学习:Shell Script(Shell脚本)。

就是把很多命令写成一个程序,自动执行。

所以很多服务器维护,其实都是Shell脚本完成的。


第8节 PATH —— Shell 怎么知道命令在哪?

这里有一个非常重要的问题。

假设:

你输入:

ls

Shell为什么知道去哪里找?

答案就是:

PATH(环境变量)

PATH可以理解成:

一张"搜索目录清单"。

例如:

PATH里面记录了:

/usr/bin /bin /usr/local/bin

当你输入:

ls

Shell就会先去:

/usr/bin

找。

没有。

继续:

/bin

找。

找到:

/bin/ls

于是执行它。

所以真正执行的是:

/bin/ls

只是PATH帮你省略了。

以后安装很多软件其实就是把程序放进PATH里面,这样,任何地方都能直接运行。


第9节 一个完整命令的生命周期

现在我们终于可以完整解释,为什么:

ls

能够工作。

整个过程:

① 你按键盘 ↓ ② Terminal显示文字 ↓ ③ 按Enter ↓ ④ Shell读取命令 ↓ ⑤ Shell通过PATH寻找程序 ↓ ⑥ 找到: /bin/ls ↓ ⑦ 执行ls程序 ↓ ⑧ ls向Kernel请求读取目录 ↓ ⑨ Kernel读取磁盘 ↓ ⑩ Kernel返回数据 ↓ ⑪ ls整理输出 ↓ ⑫ Terminal显示结果

看到这里你应该已经发现:一个看似简单的命令,背后其实经过了十几个步骤。


本章总结

今天请记住七句话:

  1. Terminal 是窗口,它负责输入和显示。
  2. Shell 是命令解释器,它负责理解和执行命令。
  3. Kernel 不认识lspwd等命令,它只负责系统资源和系统调用。
  4. Bash、Zsh、Fish 都是不同的 Shell。
  5. Windows 的 CMD 和 PowerShell,本质上也是 Shell。
  6. PATH 告诉 Shell 去哪里寻找可执行程序。
  7. 每执行一个命令,都经历"Terminal → Shell → 程序 → Kernel → 硬件 → 返回结果"这一完整流程。

到这里,你已经完成了 Linux 世界观的三块基石

现在你已经理解了:

  • 第1章:操作系统是什么。
  • 第2章:Kernel(内核)如何管理硬件。
  • 第3章:Shell 和 Terminal 如何让人类与 Kernel 交流。

这三个知识点,构成了后面所有 Linux 学习的基础。


下一章预告(非常重要)

从下一章开始,我们终于要进入真正的 Linux 世界。

主题是:

Linux 的文件系统——为什么 Linux 没有 C 盘、D 盘?

这一章会彻底改变你对文件和目录的理解。学完后,你不仅知道/home/etc/var是做什么的,还会理解一句 Linux 圈最经典的话:

Everything is a file(万物皆文件)。

这是 Linux 最独特、也是最优雅的设计思想之一。

http://www.jsqmd.com/news/1103954/

相关文章:

  • 解决Visual Studio在双击鼠标输入时总是多段选中的问题
  • 告别部署报错!OpenClaw 2.7.9 Win11超稳安装配置全流程
  • 多卡通信不卡顿,RCCL 在 AMD 集群中的调优技巧
  • 基于现成大模型搭建智能体 Agent
  • Nuke Survival Toolkit:150个专业插件打造高效合成工作流
  • HarmonyOS7 SKU 选择器为什么总写崩?规格组合和库存联动这次讲清
  • 开源版Coze:Agent三件套48小时狂揽9K星
  • 《深度学习及应用》期末考试计算题回忆版
  • LLM API架构瘦身:客户端策略固化实现请求链路‘归零’
  • 如何选择靠谱的装修公司?从泰美空间设计合作案例看筛选标准
  • 6DoF运动追踪:IIM-42652 IMU与STM32F302R8实战指南
  • 分层实验智能体(HExA):基于上下文自演化物理推理智能体框架
  • 【2026最新】Audacity免费版中文版下载安装使用全纪录:从打开到导出,一篇搞定
  • 2026年,靠谱的定量质控菌株供应商究竟是谁?
  • SQL优化_监管指标计算性能全维度优化方案
  • GEO 是什么?从 “关键词匹配” 到 “AI 信任” 的营销革命
  • 总部-门店素材协同:从统一上传到一键调用的落地指南
  • 三明 开店扫码点餐系统到底要花多少钱?别被坑了才知道!
  • 最小二乘法
  • 2026 网络安全零基础学习路线,保姆级实操教程可直接照搬
  • UE4SS:解锁虚幻引擎游戏的终极扩展工具 - 从零开始掌握游戏修改与Mod开发
  • 五、Prometheus安装nginx
  • 成都GEO优化公司选哪家?2026本地优质服务商推荐
  • 快速分子对接工具QuickVina 2:20倍加速的终极安装指南
  • 机器人技术:从自动化到具身智能,机器正走进现实
  • CCE Cash SOL混币实操:SOL跨链交换混币为BNB只需2-5分钟
  • 强烈推荐一个基于 .NET 8 开发的企业级 OAuth 2.0 / OpenID Connect 认证框架
  • 包装纸箱字符缺失、模糊、不清晰、颜色差异大智能检测方案 —— 昂德高 KEYTU 包装纸箱首件对版机落地应用价值分析
  • 企微SILK语音解析的工程痛点:流式解码管道、内存穿透与ASR异步转写架构
  • Wu.CommTool工业通信调试工具技术实现深度解析:基于C WPF的模块化架构设计