补充课02:Terminal基础

图形界面让你走得快,命令行让你走得远。

学习目标

  • 理解 Terminal 是什么以及为什么需要它
  • 掌握基本命令结构:command [options] [arguments]
  • 熟练文件导航和文件操作核心命令
  • 学会使用实用工具(grep, find, ps 等)
  • 能够在 Cursor 中高效使用 Terminal

1. Terminal 是什么

Terminal(终费)是一个用文字命令操作电脑的界面。

flowchart LR
    A[你输入命令] --> B[Shell 解释执行]
    B --> C[操作系统]
    C --> D[返回结果]
    D --> A

当你点击鼠标操作电脑时,实际上是在让图形界面帮你”翻译”成命令。而 Terminal 让你直接发送命令,绕过了中间商。

图形界面 vs 命令行

操作图形界面命令行
创建文件夹右键 → 新建文件夹mkdir
查看文件双击打开cat 件名
复制文件拖动 / Cmd+C+Vcp 源件 目标
搜索内容Cmd+F (单文件)grep "内容" 文件
批量操作手动一个个做一行命令搞定

NOTE

Terminal 不是 Cursor 或 VS Code 的专属功能。macOS 的”终端”、Linux 的 shell、Windows 的 PowerShell 都是 Terminal。它们是操作系统自带的。


2. 基本命令结构

所有命令都遵循一个通用结构:

command [options] [arguments]
部分含义示例
command要执行的命令ls, cd, mkdir
[options]修改行为的选项-l (详情), -a (全部)
[arguments]操作对ls /Users

组合使用示例

ls -la /Users
# ^^^ ^^^ ^^^^^^^^
# | | |
# 命令 选项 参数

TIP

大多数命令都支持 --help 查看帮助,或 man 查看详细手册。man ls 会显示 ls 命令的所有用法。


3. 文件导航

这是日常开发中使用频率最的命令:

pwd — 我在哪

pwd
# 输出: /home/user/project

ls — 看有什么

ls                    # 列出当前日录
ls -l                 # 详细信息(权限、大小、修改时间)
ls -a                 # 包括隐藏文件(以.开头的)
ls -la                # 两个选项组合

cd — 去哪

cd Documents          # 进入 Documents 文件夹
cd ..                 # 返回上级目录
cd ~                  # 回家目录
cd -                 # 回上一步的目录
cd /project/logs        # 使用绝对路径

mkdir — 创建目录

mkdir my-project     # 创建单个文件夹
mkdir -p a/b/c        # 递归创建多级目录
flowchart TD
    A["终端现状<br/>pwd 查看位置"] --> B{"ls 查看内容"}
    B --> C["cd 进入目录"]
    B --> D["mkdir 创建目录"]
    C --> B
    C --> E["cd .. 返回/退出"]
    D --> B

4. 文件操作

touch — 创建文件

touch index.html      # 创建空文件
touch style.css       # 可以一次创建多个

cat — 看内容

cat README.md         # 显示文件全部内面
cat file1.txt file2.txt # 合并显示多个文件

cp — 复制

cp old.txt new.txt    # 复制文件
cp -r folder/ backup/  # 复制整个目录(-递归)

mv — 移动/重命名

mv old.txt new.txt    # 重命名
mv file.txt ../backup/  # 移动文件

rm — 删除

rm temp.txt                        # 删除文件
rm -r old-folder/                   # 删除目录(-递归)
rm -rf temp/                       # 强制删除(小心!)

WARNING

rm -rf 是最危险命令之一。不要 在不确定时运行。它不会经过回收站,删除即消失。

操作命令文件目录
创建touch否(用 mkdir
读取cat
cpcp a bcp -r a b
移动/重命名mvmv a bmv a b
删除rmrm arm -r a

5. 实用具

grep — 搜索文件内容

grep "function" index.js          # 在文件中搜索关键字
grep -r "TODO" ./src/              # 递归搜索整个目录
grep -n "error" log.txt           # 显示行号

find — 找文件

find . -name "*.js"              # 找所有 JS 文文件
find . -size +1M                   # 找大于 1MB 的文件
find . -mtime -7                  # 找最近7天修改的文件

ps — 看进程

ps aux                            # 看所有运行中的进程
ps aux | grep node                 # 找 Node.js 进程(管道符 |)

top — 系统监控

top                               # 实时资源占用
# 按 q 退出

chmod — 改权限

chmod +x script.sh                # 添加可执行权限
chmod -R 644 ./*.                # 递归设置文件权限

TIP

|(管道符)是 Terminal 最强大的概念之一。它将一个命令的输出传递给另一个命令作为输入:cat log.txt | grep "rror" 表示”读出 log.txt,然后过滤出包含 error 的行”。


6. 快捷键

高效使用 Terminal 的关键是少敲击键

快捷键作用适用场景
Tab自动补全最常用!补全文件名、命令
Ctrl+C中断当前命令程序卡死或运行太久
Ctrl+D退出当前 shell退出终端或输入结束
Ctrl+A光移到行首快速回到命令开头
Ctrl+E光移到行尾快速回到命令结尾
Ctrl+U清除当前行输入错了重来
上/下箭头浏览命令历史重复执行之前的命令
Ctrl+R搜索命令历史找之前执行过的命令

NOTE

在 Terminal 中,Ctrl+C 不复制!复制用 Cmd+CCtrl+C 的中断功能优先级于复制(来自 Unix 传统)。


7. 实战:创建项目目录结构

目标

创建下面这个项目结构:

my-ecommerce/
├── src/
│ ├── components/
│ ├── pages/
│ └── utils/
├── public/
│ ├── images/
│ └── fonts/
├── tests/
└── package.json```

### 步骤

```bash
# 1. 创建主目
mkdir -p my-ecommerce

# 2. 进入目
cd my-ecommerce

# 3. 创建子目录(一次搞定)
mkdir -p src/components src/pages src/utils 
mkdir -p public/images public/fonts
mkdir tests

#4. 创建初始文件
touch package.json READEME.md .gitignore
练习:常见场景命令组合

场景 1:找代码中所有 TODO

grep -rn "TODO" ./src/ --include="*,js"

场景 2:找大文件

find . -type f -size +10M -exec ls -lh {} \;```
 
**场场景 3:实时看日志**
 
```bash
tail -f log/server.log
# Ctrl+C 退出

场景 4:批量重命名

for file in *.txt; do
  mv "$file" "${file%.txt}.md"
done

场景 5:统计代码行数

find . -name "*.js" -o -name "*,tsx" | xargs wc -l
练习:常见错误排查
问题可能原因解决方法
command not found命令名打错了检查拼写
Permission denied没权限chmodsudo
No such file or directory路径错了pwdls 确认位置
command not found 但有该软件没在 PATH 中检查安装和 PATH 设置

8. 为什么需要 Terminal

很多同学会问:“我都有 Cursor 了,为什么还要学 Terminal?”

原因很简单 — Terminal 是开发者的”底层能力”:

flowchart TD
    subgraph "Terminal 核心场景"
        A["启动开发服务器<br/>npm run dev"]
        B["安装依赖<br/>npm install"]
        C["Git 操作<br/>git commit, git push"]
        D["查看日志<br/>tail -f log.txt"]
        E["运行脚本<br/>python script.py"]
        F["处理数据<br/>grep, awk, sed"]
    end
    场景 --> 效率

不学 Terminal 会遇到的问题

场景图形界面Terminal
启动项目找按钮点npm run dev
安装包下载 → 拖入npm install
看服务器日志打开文件看tail -f log
批量改文件手动一个个改sed -i 's/old/new/g' *.js
Git提交点按钮git add . && git commit -m "msg"

TIP

你不需要成为 Terminal 专家。掌握 10 个左右的命令,就能覆盖 90% 的开发场景。随着使用增多,你会自然而然记住更多。


9. 在 Cursor 中使用 Terminal

Cursor 内置了Terminal,不需要切换到系统终端:

打开方式

  • 快捷键:Ctrl+`(反引号)
  • 菜单:View → Terminal

Cursor 终端的优势

  1. 与编辑器同屏:不用切换窗口
  2. 文件路径自动感知:Terminal 自动在当前项目目录
  3. AI 助:可以把 Terminal 错误信息直接复制到 AI 聊天
  4. 多终端:可以同时开多个(如一个跑服务器,一个做 Git 操作)

开发典型工作流

# 1. 在 Cursor 中打开 Terminal
# 2. 启动开发服务器
npm run dev
 
# 3. 在另一个终端做 Git
# 右键 → Split Terminal
git status
练习:你的一周开发 Terminal 工作流

周一早上

cd projects/my-app
git pull
npm install   # 看看有没有新依赖
npm run dev    # 启动开始干活

提交代码

git add .
git commit -m "feat: 添加用户认证功能"
git push

排查问题

# 看服务器日志
tail -f logs/server.log
 
# 搜索错误
grep "Error" logs/server.log
 
#看进程
ps aux | greap node

总结

Terminal 是开发者的基本功。不一定要成为大师,但掌握基本命令能让效率提升一个档次。

关键要点回顾:

  • 命令结构command [options] [arguments]
  • 导航三剑客pwd(在哪)、ls(有什么)、cd(去哪)
  • 文件五法touchcatcpmvrm
  • 实用具grep 搜索、find 找文件、ps 看进程
  • 快捷键Tab 自动补全最常用,Ctrl+C 中断

下一步

有了代码编辑器(Cursor)和命令行(Terminal),下一课我们做用 HTML 写出第一个网页。这是你编程之旅的真正第一步。