跳转到内容

终端与命令行基础:和电脑用文字对话

完成时间:约 20 分钟。读完后你能在终端里自如地查看文件、切换目录、运行命令——这些是使用 Claude Code 的前提。

你平时用电脑,是用鼠标点图标、拖文件、选菜单。这是图形界面(GUI)——餐厅里看着菜单点菜,服务员帮你传话给厨房。

终端是另一种方式:你直接用文字告诉电脑要做什么。不用菜单,不用鼠标,打字就行。这就像绕过服务员,直接喊厨师名字下单——更精确、更高效。

为什么要学?因为 Claude Code 运行在终端里。Git、Docker、npm 这些开发工具也全是终端命令。不会终端,就没法用 Claude Code。


操作系统怎么打开备注
macOS搜索 “Terminal” 打开,或安装 iTerm2系统自带就够用
Windows打开 Ubuntu (WSL)参考环境搭建章节,不要用 CMD 或 PowerShell

打开后你会看到一个黑色(或白色)的窗口,有一个光标在闪。这就是终端。你在这里输入命令,按回车执行。


在图形界面里,你双击文件夹一层层打开。在终端里,你需要用路径来告诉电脑”你说的是哪个文件”。

路径就是文件的地址。就像”北京市朝阳区某某路 10 号”,路径也是从大到小、用 / 分隔:

/Users/xiaoming/projects/my-app/src/App.jsx
Terminal window
# 绝对路径 — 从根目录开始的完整地址(像写完整的邮寄地址)
/Users/xiaoming/projects/my-app
# 相对路径 — 从"你当前所在位置"开始(像说"隔壁那栋楼")
./src/App.jsx # 当前目录下的 src 文件夹里的 App.jsx
../other-project # 上一级目录里的 other-project
符号含义类比
/根目录(整个文件系统的起点)国家名
~家目录(你的个人文件夹)你家的地址
.当前目录”我现在站的地方”
..上一级目录”我楼下”

/Users/xiaoming/projects
pwd
# 显示你当前所在的完整路径

迷路了就打 pwd,像看导航上的”当前位置”。

Terminal window
ls
# 输出:README.md package.json src node_modules
ls -la
# 显示隐藏文件(以 . 开头的)和详细信息
# -l 是"详细模式",-a 是"显示所有(包括隐藏的)"

进了一个文件夹不知道里面有啥,先 ls 看一眼。

Terminal window
cd projects # 进入 projects 文件夹
cd my-app/src # 一次进好几层
cd .. # 回到上一级目录
cd ~ # 回到家目录(不管你现在在哪)
cd / # 去根目录

cd 是你用得最多的命令。“cd 到某个目录”是程序员的日常口头禅。

Terminal window
mkdir my-project # 创建一个叫 my-project 的文件夹
mkdir -p a/b/c # 一次创建多层嵌套文件夹(-p 表示自动创建父目录)
Terminal window
touch hello.txt # 创建一个空文件
echo "你好世界" > hello.txt # 创建文件并写入内容(> 会覆盖已有内容)
Terminal window
cat hello.txt
# 输出:你好世界
# 把文件内容直接打印到终端

快速看一个小文件的内容。文件太长的话会刷屏,后面你会学到更好的方式。

7. cp / mv — 复制 / 移动(重命名)

Section titled “7. cp / mv — 复制 / 移动(重命名)”
Terminal window
cp hello.txt backup.txt # 复制:hello.txt → backup.txt
cp -r src src-backup # 复制整个文件夹(-r 表示递归)
mv hello.txt greeting.txt # 重命名:hello.txt → greeting.txt
mv greeting.txt ../ # 移动到上一级目录
Terminal window
rm hello.txt # 删除文件
rm -r my-folder # 删除文件夹和里面所有内容

没有回收站! rm 删除的文件不会进垃圾桶,直接消失。用之前想清楚。

Terminal window
clear
# 终端屏幕清空,重新开始(历史命令还在,只是看不见了)

屏幕太乱的时候用一下,清清爽爽。

10. which / --version — 检查工具是否安装

Section titled “10. which / --version — 检查工具是否安装”
Terminal window
which node # 查看 node 安装在哪(有输出就是装了)
node --version # 查看 node 版本号
git --version # 查看 git 版本号

装完一个工具不确定有没有成功?which--version 就是你的验证手段。


输入文件名或命令的前几个字母,按 Tab 键,终端会自动帮你补全。

Terminal window
cd pro[Tab] # 自动补全为 cd projects/(如果只有一个 pro 开头的文件夹)
cat READ[Tab] # 自动补全为 cat README.md

少打字、少出错。养成随手按 Tab 的习惯。

上箭头键),可以翻出之前输入过的命令。不用重新打一遍。

刚才那条很长的命令想再执行一次?按几下上箭头就找到了。

如果一个命令卡住了、一直在运行、或者你输错了想取消,按 Ctrl+C

Terminal window
# 比如你不小心运行了一个死循环,Ctrl+C 立刻停掉它

终端世界的”紧急刹车”。记住它,关键时刻救命。


环境变量是操作系统层面的设置项,每个程序运行时都能读到。

类比:你手机的”系统设置”——语言、时区、Wi-Fi 密码。应用不用自己存这些信息,直接从系统设置里读。

/usr/sbin
echo $PATH

PATH 告诉系统:当你输入一个命令时,去哪些目录里找这个程序。 目录之间用 : 分隔。

当你输入 node 并回车时,系统会依次在 PATH 里的目录中搜索叫 node 的程序。找到了就运行,找不到就报错 command not found

在开发项目中,敏感信息(数据库地址、密钥等)不会写在代码里,而是放在 .env 文件中:

Terminal window
# server/.env 示例
DATABASE_URL=postgres://localhost:5432/mydb
JWT_SECRET=my-super-secret-key

程序启动时会读取 .env 文件里的值。

为什么重要?本课程的 server/.env 就是存放数据库连接和密钥的地方。CLAUDE.md 里提到的 DATABASE_URLJWT_SECRET 就是环境变量。


这两个概念现在不需要深入掌握,但你会在别人的命令里看到它们。

| 管道 — 把输出传给下一个命令

Section titled “| 管道 — 把输出传给下一个命令”
Terminal window
cat log.txt | grep "error"
# 先读取 log.txt 的内容,然后从里面筛选包含 "error" 的行
# 就像流水线:一个工人加工完,传给下一个工人继续加工
Terminal window
ls -la > filelist.txt
# 把 ls 的结果写入 filelist.txt(而不是显示在屏幕上)
# > 会覆盖文件,>> 是追加到文件末尾

看到命令里有 |> 别慌,知道它们是”传递”和”保存”输出就行。


打开终端,依次执行下面的命令。每一步都看看输出,确认你理解了发生了什么:

Terminal window
# 第 1 步:看看你现在在哪
pwd
# 第 2 步:创建一个测试文件夹,进去
mkdir my-test
cd my-test
# 第 3 步:创建一个文件,看看它
touch hello.txt
cat hello.txt # 什么都没输出——因为文件是空的
# 第 4 步:往文件里写点东西
echo "我学会终端了" > hello.txt
cat hello.txt # 输出:我学会终端了
# 第 5 步:查看所有文件(包括隐藏文件)
ls -la
# 第 6 步:回到上级目录
cd ..
# 第 7 步:确认你回来了
pwd

如果每一步都顺利执行、输出和预期一致,恭喜——你已经掌握终端基本操作了。


命令作用示例
pwd显示当前路径pwd
ls列出文件ls -la
cd切换目录cd projects
mkdir新建文件夹mkdir my-app
touch新建空文件touch index.html
cat查看文件内容cat README.md
cp复制cp a.txt b.txt
mv移动 / 重命名mv old.txt new.txt
rm删除(无回收站)rm -r folder
clear清屏clear
which检查工具是否安装which node

3 个必记快捷操作:

操作作用
Tab自动补全文件名/命令
上箭头翻出历史命令
Ctrl+C中断当前命令

终端看起来没有图形界面直观,但一旦熟悉了,效率远超鼠标点击。而且——Claude Code 就运行在这个环境里。掌握这些基础,你就准备好和 AI 协作了。


下一步:回到主线,开始 Step 1:思考框架