跳到主要内容

终端、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-notesmy_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。