Logo成贤计协指南

Shell 是什么

在学习编程和操作系统时,你一定会听到“Shell”这个词。它是每个程序员都绕不开的基础工具之一。那么,Shell 到底是什么?

Shell,中文常译为“壳”,本质上是操作系统的用户界面。它负责接收用户的命令,并把这些命令传递给操作系统内核去执行。你可以把 Shell 想象成操作系统和用户之间的“翻译官”或“中介”,用户通过 Shell 与计算机进行“对话”。

Shell 既可以是命令行界面(CLI),也可以是图形界面(GUI)。但通常我们说的 Shell,都是指命令行 Shell,比如 Linux 下的 bash、zsh,Windows 下的 cmd、PowerShell 等。

Shell 的历史可以追溯到 20 世纪 60 年代的 Unix 操作系统。最早的 Shell 是 sh(Bourne Shell),由 Stephen Bourne 在 1977 年开发。随着 Unix 的发展,出现了许多不同的 Shell,比如:

  • sh(Bourne Shell):最早的标准 Shell
  • bash(Bourne Again Shell):Linux 下最常用的 Shell,功能丰富,兼容 sh
  • zsh:功能更强,扩展性好,现代开发者常用
  • fish:语法更友好,自动补全强大,但是并不完全符合 POSIX 标准

每种 Shell 都有自己的语法和特性,但它们的核心作用都是一样的:让用户通过命令与操作系统交互

在 Windows 系统下,最早的命令行工具是 cmd.exe(命令提示符),后来微软又推出了更强大(?)的 PowerShell。虽然它们和 Unix/Linux 下的 Shell 在实现和语法上有很大不同,但本质上都是 Shell。

但事实上,Windows 下的两个 Command Shell 都是大芬(PowerShell 7 稍微比之前好些,但是并非 Windows 预装版本的 PowerShell)

为什么要学习 Shell?

有些同学可能会问:“既然现在都有这么方便的图形界面(点点点)了,为什么还要学这种‘黑框框’一样的命令行呢?”

  1. 效率极高:如果你要在一个文件夹里创建 100 个文件,用鼠标点 100 次右键新建可能要花好几分钟,但在 Shell 里,只需要一行命令:touch file{1..100}.txt
  2. 自动化:你可以把一连串的命令写成一个脚本文件,让电脑自动帮你处理复杂的任务。
  3. 管理服务器:以后如果你要买自己的云服务器(比如阿里云、腾讯云),或者在实验室跑深度学习模型,这些远程服务器通常是没有图形界面的,你只能通过 Shell 来操作。
  4. 极客范儿:你不觉得在黑框框里敲代码的样子看起来很酷吗?(逃

如何打开 Shell?

  • Windows: 推荐使用 PowerShell 7。按下 Win + R 键,输入 pwsh (如果安装了 PS7) 或 powershell 即可打开。当然,如果你安装了 Git,使用 Git Bash 也是个极好的选择。
  • macOS: 苹果电脑自带 终端 (Terminal)。你可以在“应用程序 -> 实用工具”里找到它,或者直接用 Spotlight 搜索 Terminal
  • Linux: 不同发行版路径不同,但通常快捷键 Ctrl + Alt + T 就能唤出那个熟悉的黑框框。

常用命令初体验

在学习 C/C++ 时,你通常只需要掌握几个最基础的命令来管理你的代码文件。

1. 我在哪? —— pwd

pwd (Print Working Directory) 会告诉你当前所在的文件夹路径。

pwd
# 输出可能是 /Users/yourname/Documents

2. 这儿有什么? —— ls

ls (List) 会列出当前目录下的所有文件和文件夹。

ls
# 如果想看详细信息(比如文件大小、修改时间),可以用 ls -l

3. 我要去哪? —— cd

cd (Change Directory) 让你在不同的文件夹之间切换。

cd Desktop  # 进入桌面
cd ..       # 返回上一级目录
cd ~        # 回到用户主目录

4. 搞个新文件夹 —— mkdir

mkdir (Make Directory) 用来创建新文件夹。

mkdir my_cpp_project

5. 建个新文件 —— touch

在 Linux/macOS 下(以及 Git Bash),touch 可以创建一个空文件。

touch hello.cpp

6. 看看文件里写了啥 —— cat

cat 可以直接在终端里把文件内容打印出来。

cat hello.cpp

必须要学会的“神技”

如果你还在一个字母一个字母地敲文件名,那你就亏大发了!

  1. Tab 补全:这是 Shell 的灵魂。当你输入文件名的前几个字母后,按下 Tab 键,Shell 会自动帮你补全剩下的部分。如果有多个匹配项,按两下 Tab 会列出所有可能。
  2. 方向键历史:按下 (上箭头)可以快速找回你刚才输入过的命令,再也不用重复输入了。
  3. 清屏:如果屏幕太乱了,输入 clear (Windows 下是 cls) 就能还你一个干净的界面。

现在,你可以试着打开你的终端,输入 pwd 看看你在哪,然后用 mkdir 给你的 C++ 学习之路建一个专属的文件夹吧!

Last updated on

On this page