Linux 概念性问题
关于 Shell(命令解释器)
(Windows 和 Linux 中都有 Shell,但二者不是一个东西)
Linux 中的 Shell : 是 Linux 系统的"标准命令解释器",常见的有 bash zsh sh…Linux 用户几乎都用 Shell 操作系统 (Shell 本质是用户和操作系统内核之间的桥梁程序)
Windows 中的 Shell : 早期是 CMD,后来是 PowerShell,它们都属于 Shell 范围,是 Windows 的命令解释器
你在终端/命令行里输入的命令 (eg : ls cd…)电脑硬件是听不懂的,Shell 的作用就是 :
- 接收你输入的命令 (eg ls cd …)
- 把命令翻译为电脑能懂的语言 (内核命令)
- 让系统执行命令,再把执行结果"翻译"回你能看懂的文字,显示在终端
比喻 : Shell 就像你和 Linux/Windows 系统之间"翻译",你说人话命令,它帮你和系统沟通
Linux Shell 命令 && Windows 中的 CMD/PowerShell/Windows Terminal
- Linux 命令 : 专门用来操作 Linux 系统的工具
- Windows 的 CMD(自带 Shell) : 传统的 Windows 命令解释器
- Windows 的 PowerShell(自带 Shell) : CMD 的升级版,功能更强大
- Windows Terminal(不是 Shell,非自带,在 Microsoft Store 下载) : 不是命令解释器,是一个终端模拟器,可以同时打开 CMD,PowerShell,Linux Shell(比如 WSL 中的 bash),相当于一个命令行的总控制台
Linux 命令分类
Linux 命令分为两类 : 内置命令(Shell 内置命令只有十几个) + 外部命令(几乎都是外部命令)
(不管是 Linux 还是 Windows Shell,命令都分为两种,核心区别是是否有独立的可执行文件)
- Shell 内置命令 : 安装 Shell 时,内置命令就一起被装进去了,不需要额外安装
- 外部命令 : 独立于 Shell 的可执行文件,有自己的安装路径 (Shell 执行外部命令时,需要先找到它的可执行文件,在加载执行)
# 怎么判断一个命令是 内置命令 or 外置命令
type cd
# 输出 : cd is a shell builtin # (内置命令)
type ls
# 输出 : ls is /bin/ls # (外部命令)
type 命令 (它是 Shell 内置命令) 注意事项
type 作用 : 查看命令调用的类型 + 真实调用路径 + 本质 (只返回一个结果,按照优先级)
# 情况 1
type cd
# 输出:cd is a shell builtin
# 表示 cd 命令是一个 Shell 内置命令
# 这一类内置命令,没有独立的可执行文件,无需安装,直接可用 (只有十几个)


