---
title: "1.4 Terminal 终端入门"
description: "掌握命令行的基本操作"
chapter: "第一章"
---

# 1.4 Terminal 终端入门

> **阅读完本节后，你将会收获：**
>
> - 掌握终端的基本操作（打开、文件导航、命令执行）
> - 理解终端、Shell、命令行的区别
> - 掌握终端快捷键和复制粘贴操作
> - 理解环境变量和 PATH 的作用
> - 学会命令报错的系统化排查流程

> 序言中提到的 Terminal（终端），是通过文字指令与操作系统对话的方式。

## 前置知识

::: tip 终端、Shell、命令行的区别

这三个概念经常被混淆，其实层次不同：

- **终端（Terminal）**：你看到的**界面窗口**，用来输入命令。Windows 上叫 PowerShell/CMD，Mac 上叫 Terminal/iTerm2
- **Shell（壳）**：隐藏在终端后的**命令解释器**，读取你的输入并执行。常见的是 bash、zsh（Mac 默认）、PowerShell（Windows）
- **命令行（CLI）**：通过文本指令操作计算机的**方式**，相比图形界面更高效、更精确

:::

::: tip 为什么 Windows 推荐 PowerShell？

Windows 有两种终端：CMD（老式）和 PowerShell（现代）。

PowerShell 功能更强大，命令更统一（如 `ls` 在 PowerShell 中也能用），且是微软官方推荐的现代终端。**本教程所有 Windows 命令均以 PowerShell 为准**。

:::

## 核心概念

终端是开发者的主要工作界面。理解终端的基本操作：

```mermaid
graph TB
    A[用户输入命令] --> B{命令类型}
    B -->|文件操作| C[ls/cd/mkdir]
    B -->|程序运行| D[pnpm dev/node]
    B -->|系统管理| E[nvm/npm/which]

    C --> F[执行结果]
    D --> F
    E --> F
```

## 实战步骤

### 打开终端

**Mac**：

- 按 `Command + Space`，输入 "Terminal"
- 或在 Finder → 应用程序 → 实用工具 → 终端

**Windows**：

- 按 `Win + R`，输入 `powershell` 或 `Windows Terminal`
- 或右键文件夹 → "在终端中打开"

**VS Code 内置终端**：点击菜单：终端 → 新建终端，推荐在项目目录直接打开

### 提示符是什么？

打开终端后，你会看到一行前面有符号的文字：

```bash
user@MacBook ~ $     # Mac/Linux 的提示符是 $
PS C:\Users\user>    # Windows PowerShell 的提示符是 >
```

这叫**提示符（prompt）**，**不是命令的一部分**，输入命令时不要把它也复制进去。

`$` 表示你在使用 bash/zsh Shell，`>` 表示你在使用 PowerShell。后面的命令示例会省略这些提示符。

### 复制粘贴操作

**Windows PowerShell**：

- **粘贴**：右键单击窗口（直接粘贴，Ctrl+V 可能不生效）
- **复制**：选中文字后右键

**Mac Terminal**：

- **复制**：`Command + C`
- **粘贴**：`Command + V`
- **从其他地方粘贴**：`Command + Shift + V`（有时需要）

### 基本文件操作

这些命令在 Mac、Linux、Windows 的 PowerShell/CMD 上都是通用的：

```bash
# 查看当前目录
pwd

# 列出文件
ls          # Mac/Linux/PowerShell
dir         # Windows CMD

# 切换目录
cd folder-name
cd ..         # 返回上一级
cd ~          # 返回用户主目录（Mac/Linux PowerShell）

# 创建目录
mkdir folder-name
```

### 终端快捷键

| 快捷键 | 作用 |
|--------|------|
| `Ctrl + C` | 停止当前运行的程序 |
| `Ctrl + L` | 清屏（相当于输入 `clear`） |
| `↑ / ↓` | 浏览历史命令 |
| `Tab` | 自动补全文件名或命令 |
| `Ctrl + A` | 光标移到行首 |
| `Ctrl + E` | 光标移到行尾 |

::: tip Ctrl + C 的两种用途

在终端里，`Ctrl + C` 有两个作用：

1. **停止运行中的程序**（如开发服务器）
2. **中断当前输入**（如果你正在输入一行命令，想放弃重新输入）

:::

### 环境变量与 PATH

::: tip 什么是 环境变量

环境变量是操作系统存储的配置信息，程序可以通过它们获取系统设置。比如 `PATH` 就是一个环境变量，告诉系统去哪些目录查找可执行程序。

:::

当你输入 `node`、`pnpm` 这样的命令时，系统是如何找到它们的？

```mermaid
sequenceDiagram
    participant 用户 as 用户输入命令
    participant Shell as Shell 解释器
    participant PATH as PATH 环境变量
    participant 程序 as 可执行程序

    用户->>Shell: 输入 "pnpm"
    Shell->>PATH: 查找 PATH 中的目录
    PATH-->>Shell: 返回目录列表
    Shell->>程序: 找到 pnpm 可执行文件
    程序-->>用户: 命令执行
```

**PATH 的工作原理**：

1. 你输入 `pnpm`
2. Shell 在 PATH 列出的目录中逐个查找名为 `pnpm` 的文件
3. 找到后执行该文件
4. 如果所有目录都找不到，显示 `command not found`

::: tip 命令找不到怎么办？

如果输入命令提示 `command not found`，说明工具没有安装或没有在 PATH 中。

按照下一节（1.5 Node.js 环境与包管理）完成安装后，命令就能正常使用了。

:::

### CLI 软件与命令参数

**什么是 CLI 软件？**

CLI 软件（Command Line Interface）没有菜单和按钮，一切通过输入命令完成。你可能会疑惑：**为什么开发工具偏爱这种简陋的方式？**

原因很简单：输入命令比点击菜单快得多，命令可以带参数精确控制行为，而且可以写成脚本自动执行，占用内存也更少。当你熟练后，会发现效率远超图形界面。

**命令参数入门**

命令后面常跟参数来修改行为。参数有两种格式：

- **短参数**：一个减号加字母，如 `-v`（version）、`-h`（help）
- **长参数**：两个减号加单词，如 `--version`、`--help`

```bash
# 查看版本（短参数）
node -v
pnpm -v

# 查看帮助（长参数）
git --help
npm --help
```

短参数和长参数效果相同，短参数输入更快，长参数更易读。大多数命令同时支持两种形式。

## 常见问题

### Q1: 如何同时运行多个命令？

使用 `&&` 连接命令，只有前一个成功才执行下一个：

```bash
# 清理并重新安装
rm -rf node_modules && pnpm install
```

使用 `;`（或换行）连接命令，无论前一个是否成功都执行下一个：

```bash
mkdir new-folder ; cd new-folder    # new-folder 是示例文件夹名
```

### Q2: 终端显示中文乱码怎么办？

修改终端编码设置。

- **Mac**：Terminal → 偏好设置 → 描述文件 → 高级 → 字符编码 → UTF-8
- **Windows**：PowerShell 属性 → 字体 → 选择支持中文的字体

### Q3: 如何在 VS Code 中打开当前文件夹的终端？

点击菜单：终端 → 新建终端

## 命令报错排查

当遇到 `command not found` 或其他命令报错时，按以下顺序逐层排查：

::: details 🔧 点击体验：命令报错排查流程
<TerminalTroubleshoot />

> 💡 **练习**：按照步骤输入正确的命令来排查问题。从拼写检查开始，逐步验证工具安装、目录位置等。
>
> 🎯 **核心概念**：命令报错时按顺序排查：拼写 → 安装 → 目录 → PATH → 系统差异。
:::

### 排查清单

**1. 拼写检查**

```bash
# 常见错误
pnpm instal  # 错误：少写 l
l s          # 错误：中间有空格

# 正确写法
pnpm install
ls
```

**2. 确认工具已安装**

```bash
# 查看版本（确认可执行）
node -v
pnpm -v
```

如果提示命令不存在，需要先安装。

**3. 确认在正确目录**

```bash
# 查看当前目录
pwd

# 检查是否有 package.json
ls package.json
```

**4. 重新加载终端**

刚安装工具或修改 PATH 后，需要重启终端：

```bash
# Mac：重新加载配置
source ~/.zshrc

# 或直接关闭终端重新打开
```

::: tip 不确定问题出在哪？

直接把报错信息发给 AI，它会告诉你具体原因和解决方法。

你不需要记忆所有错误，只需要知道排查的顺序。

:::

## 相关内容

- 详见：[1.5 包管理与项目配置](./05-package-manager-and-config.md)
