终端、Shell 与命令提示符
刚开始学习 Linux 时,你可能会把“终端”“Shell”“命令行”混在一起说。这很正常,因为它们经常同时出现。但如果你能分清它们,后面理解命令、脚本、环境变量都会顺很多。
终端是什么
终端是你输入命令、查看输出的窗口。它负责显示字符、接收键盘输入,并把你的输入交给后面的程序处理。
在桌面 Linux 中,终端通常是一个图形窗口;在服务器上,它可能是 SSH 连接后的远程会话;在没有图形界面的机器上,它可能就是一块黑底白字的控制台。
你可以这样理解:
- 终端负责“显示和输入”。
- Shell 负责“解释和执行命令”。
- 命令是你让系统做事的具体指令。
Shell 是什么
Shell 是一个命令解释器。你在终端中输入:
ls -l
Shell 会解析这行文本,找到 ls 程序,把 -l 作为参数传给它,然后把结果显示回来。
Linux 上常见的 Shell 包括:
- Bash:最常见,很多教程默认使用它。
- Zsh:交互体验好,常见于 macOS 和开发者环境。
- Dash:轻量,常用于执行系统脚本。
- Fish:更强调交互提示和易用性。
本教程默认以 Bash 为例。你不需要一开始就比较所有 Shell,先掌握通用概念更重要。
命令提示符
终端里常见的提示符大概长这样:
rudy@ubuntu:~/linux-practice$
它通常包含:
- 当前用户:
rudy - 主机名:
ubuntu - 当前目录:
~/linux-practice - 权限提示:
$表示普通用户,#通常表示 root 用户
提示符本身不是命令。你输入命令时,不需要复制提示符前面的部分。
例如教程写:
ls -l
你只需要输入 ls -l,不要输入 $。
一条命令的结构
大多数 Linux 命令可以拆成三部分:
命令 选项 参数
例如:
ls -l /etc
其中:
ls是命令名称。-l是选项,表示使用长格式显示。/etc是参数,表示要查看的目录。
很多命令支持短选项和长选项:
ls -a
ls --all
短选项通常只有一个字母,长选项更容易读懂。初学时遇到长选项不要怕,它们反而经常更清楚。
空格很重要
Shell 用空格分隔命令、选项和参数。下面两条命令含义不同:
cd /tmp
cd/tmp
第一条是进入 /tmp 目录;第二条会被 Shell 当成名为 cd/tmp 的命令,通常会报错。
如果文件名里有空格,需要使用引号:
mkdir "my notes"
cd "my notes"
更推荐你在练习时使用不带空格的文件名,例如 my-notes 或 my_notes。这不是硬性规定,只是能少踩很多初学坑。
命令历史和补全
Shell 会记住你输入过的命令。你可以:
- 按方向键上:找到上一条命令。
- 按方向键下:回到下一条命令。
- 输入命令前几个字符后按 Tab:自动补全命令名或文件名。
- 按 Ctrl+C:中断当前正在运行的命令。
- 按 Ctrl+D:在空行处退出当前 Shell。
你也可以使用 history 查看历史命令:
history
当前 Shell 是谁
可以通过下面命令查看当前登录 Shell:
echo $SHELL
也可以查看当前进程名 :
ps -p $$
这里的 $$ 表示当前 Shell 进程的 PID。现在不需要深入理解,后面的进程章节会再讲。
终端中的复制粘贴
不同终端程序的快捷键可能不同。常见情况是:
- Ctrl+Shift+C:复制。
- Ctrl+Shift+V:粘贴。
- 鼠标选中:复制选中的文本。
- 鼠标中键:粘贴选中的文本。
在终端里,Ctrl+C 通常表示中断程序,不是复制。这个差异很重要。
小结
这一篇你需要记住:
- 终端是输入输出界面。
- Shell 是命令解释器。
- 一条命令通常由命令名、选项和参数组成。
- 空格、引号、Tab 补全和命令历史会影响你的使用体验。
- 普通用户提示符通常 是
$,root 提示符通常是#。
接下来你会学习如何在 Linux 中获取帮助。会查帮助文档,才算真正开始独立使用 Linux。