终端命令行入门:从 ls、cd、mkdir 到 Bash、Git 与 AI 工具部署
一篇面向零基础用户的终端命令行入门教程,解释 Terminal、Shell、Bash、Zsh、路径、ls、cd、mkdir、git clone、npm run dev 等基础概念。
很多人第一次接触终端命令行时,都会觉得它像一个“黑客窗口”:没有按钮、没有图标,只有一行行英文命令。尤其是在使用 GitHub、Vercel、Node.js、Python、Claude Code、Codex 或各种 AI Agent 项目时,教程里经常出现 ls、cd、mkdir、git clone、npm install、npm run dev 这样的命令,新手很容易被劝退。
但命令行并没有那么神秘。它本质上只是另一种操作电脑的方式:你平时用鼠标点击文件夹、创建文件、移动文件、打开项目,而命令行是用文字命令完成类似操作。
这篇文章会用尽量直白的方式,解释终端、Shell、Bash、Zsh、路径、常见命令,以及它们和 GitHub、Vercel、Python、Node.js、AI 工具部署之间的关系。理解这些概念后,你再看开源项目说明、网站部署教程、AI 工具文档时,就会轻松很多。
一、终端、Shell、Bash、Zsh 分别是什么?
在学习命令行之前,先区分几个容易混淆的概念。
| 名称 | 可以怎么理解 | 说明 |
|---|---|---|
| Terminal / 终端 | 输入命令的窗口 | 你在 Mac、Linux 或 Windows 里打开的命令行界面 |
| Shell | 解释命令的程序 | 负责理解你输入的命令,并交给系统执行 |
| Bash | 一种常见 Shell | 很多 Linux 教程默认使用 Bash |
| Zsh | 另一种 Shell | macOS 现在默认更常见的是 Zsh |
| PowerShell | Windows 常见 Shell | Windows 上更现代的命令行环境之一 |
| Git Bash | Windows 上模拟类 Unix 命令的环境 | 安装 Git for Windows 后常见,适合运行很多 GitHub 教程里的命令 |
简单理解就是:
你在 Terminal 里输入命令,Shell 负责理解命令,然后操作系统执行命令。所以很多教程里说“打开 Bash 执行命令”,对新手来说可以先理解为:
打开终端,然后输入这些命令。需要注意的是,不同系统的命令行环境略有差异。Mac 和 Linux 教程里常见的 ls、cd、mkdir、rm 等命令,在 Windows 的 PowerShell 里不一定完全相同;但如果你使用 Git Bash、WSL 或类 Unix 环境,这些命令通常更接近 Mac/Linux 教程。
二、Bash 到底是什么?为什么教程总提它?
Bash 全称是 Bourne Again Shell,是一种非常常见的命令语言解释器。很多 Linux 服务器、部署教程、开源项目 README,默认都会使用 Bash 或接近 Bash 的 Shell 语法。
你在教程里看到的这些写法,很多都和 Bash 习惯有关:
cd my-project && npm installexport OPENAI_API_KEY="your_api_key"python main.py --input data.txtBash 的作用不是“写代码那么复杂”,而是帮助你把多个系统操作串起来。例如进入项目目录、安装依赖、设置环境变量、运行脚本、查看日志、部署项目。
对于初学者来说,不需要一开始系统学习 Bash 脚本。你只要先掌握下面几类内容就够了:
- 如何切换目录;
- 如何查看文件;
- 如何创建、复制、移动、删除文件;
- 如何运行程序;
- 如何理解参数和选项;
- 如何看懂
&&、|、>、>>这类符号; - 如何知道一条命令是否危险。
等这些基础熟悉后,再学习变量、循环、条件判断、脚本文件也不迟。
三、命令行的基本结构
一条完整的命令通常由三个部分组成:
command [options] [arguments]例如:
ls -la ~可以拆成:
| 部分 | 示例 | 含义 |
|---|---|---|
| 命令 Command | ls | 要执行什么操作 |
| 选项 Options | -la | 修改命令的行为 |
| 参数 Arguments | ~ | 命令作用的目标 |
再举一个例子:
mkdir -p images/icons意思是:创建 images/icons 这个文件夹路径,如果中间的 images 文件夹不存在,也一起创建。
很多新手害怕命令行,是因为把整行命令当成一串无法理解的英文。其实只要拆开看,通常都能读懂:
python main.py --input data.txt --output result.md这条命令可以理解为:
python:用 Python 运行程序;main.py:要运行的脚本文件;--input data.txt:输入文件是data.txt;--output result.md:输出文件是result.md。
四、路径:命令行世界里的“地址”
路径就是文件或文件夹在电脑里的位置。
例如在 Mac 上:
~/GitHub/LamjinlabWebsite这就像一个文件夹地址:
用户主目录 ~
└── GitHub
└── LamjinlabWebsite常见路径符号如下:
| 符号 | 含义 | 示例 |
|---|---|---|
/ | 路径分隔符,也可以表示根目录 | /Users/yourname |
~ | 当前用户的主目录 | ~/Desktop |
. | 当前目录 | ./package.json |
.. | 上一级目录 | cd .. |
例如:
cd ..意思是回到上一级文件夹。
再比如:
cd ~/GitHub/LamjinlabWebsite意思是进入主目录下的 GitHub/LamjinlabWebsite 文件夹。
如果路径中有空格,建议用引号包起来:
cd "My Projects"或者使用反斜杠转义空格:
cd My\ Projects对新手来说,引号更直观,也更不容易出错。
五、常用基础命令
下面这些命令是新手最应该先掌握的内容。
1. pwd:查看当前位置
pwd = print working directory,意思是打印当前所在目录。
pwd示例输出:
/Users/yourname/GitHub/LamjinlabWebsite当你不知道自己现在在哪个文件夹时,先输入 pwd。
2. ls:列出文件和文件夹
ls = list,意思是列出当前目录里的内容。
ls常见写法:
ls -l显示详细信息。
ls -a显示隐藏文件。
ls -la同时显示详细信息和隐藏文件。
隐藏文件通常以 . 开头,例如:
.env
.gitignore
.DS_Store其中 .env、.env.local 文件经常用于保存 API Key、数据库地址等敏感配置,不应该随便上传到 GitHub。
3. cd:切换目录
cd = change directory,意思是切换到另一个文件夹。
cd Desktop进入桌面目录。
cd ..回到上一级目录。
cd ~回到当前用户的主目录。
cd -回到上一次所在的目录。
这一点在项目之间来回切换时很方便。
4. mkdir:创建文件夹
mkdir = make directory,意思是创建文件夹。
mkdir images创建一个叫 images 的文件夹。
更常见、更安全的写法是:
mkdir -p images/icons-p 的作用是:如果中间路径不存在,就自动创建;如果文件夹已经存在,也不会报错。
例如:
mkdir -p ~/ai-agent-workflow-ppt/images意思是创建这个路径:
~/ai-agent-workflow-ppt/images如果 ai-agent-workflow-ppt 不存在,也会一起创建。
5. touch:创建空文件
touch 常用于创建一个空文件。
touch README.md这会创建一个名为 README.md 的文件。
在网站项目中,你可能会看到:
touch .env.local这通常表示创建本地环境变量文件,用来保存 API Key、数据库地址等配置。
6. cat、less、head、tail:查看文件内容
cat 可以快速查看文本文件内容。
cat README.md如果文件很短,用 cat 很方便;如果文件很长,可以用 less 分页查看:
less README.md常用操作是:按空格翻页,按 q 退出。
如果只想看文件开头,可以用:
head README.md如果只想看文件末尾,可以用:
tail README.md查看日志时,tail 很常见。例如:
tail -f app.log-f 表示持续跟踪文件变化,常用于观察程序运行日志。
7. cp:复制文件或文件夹
cp = copy,意思是复制。
复制文件:
cp a.txt b.txt复制文件夹通常需要加 -r:
cp -r images images-backup-r 表示递归复制,也就是把文件夹里面的内容一起复制。
8. mv:移动或重命名
mv = move,意思是移动。
重命名文件:
mv old.md new.md移动文件:
mv article.md content/posts/ai/所以 mv 有两个常见用途:移动文件,以及重命名文件。
9. rm:删除文件或文件夹
rm = remove,意思是删除。
删除文件:
rm test.txt删除文件夹:
rm -r test-folder新手一定要谨慎使用 rm,尤其是下面这种命令:
rm -rf some-folder-r 表示递归删除,-f 表示强制删除。这个命令不会像图形界面那样把文件放进废纸篓,而是直接删除,因此执行前一定要确认路径。
10. echo:输出文字
echo 用来输出一段文字,经常配合 > 或 >> 写入文件。
echo "hello"输出:
hello写入文件:
echo "hello" > test.txt这会把 hello 写入 test.txt。
六、常见交互技巧
1. Tab 自动补全
输入部分命令或文件名后,按 Tab 键,终端会尝试自动补全。
例如你当前目录下有一个文件夹叫:
LamjinlabWebsite你可以输入:
cd Lam然后按 Tab,系统可能会自动补全成:
cd LamjinlabWebsite2. 上下箭头查看历史命令
按 ↑ 可以找回上一条命令,按 ↓ 可以往后翻。
这在反复运行命令时非常有用,例如:
npm run dev如果刚才执行过,直接按 ↑ 就可以找回来,不需要重新输入。
3. Ctrl + C 中断程序
如果某个命令一直运行,或者你想停止当前程序,可以按:
Ctrl + C例如本地开发服务器、Python 脚本、Node.js 程序都可以用它停止。
4. clear 清屏
如果终端内容太多,可以输入:
clear这样可以清空当前显示区域,让界面更干净。
5. history 查看历史命令
有时你想找回之前执行过的命令,可以输入:
history它会列出一批历史命令。新手可以用它复盘自己刚才到底做了什么。
七、常见符号解释
1. &&:前一个命令成功后再执行下一个
例如:
mkdir -p images && ls意思是:先创建 images 文件夹,如果创建成功,再执行 ls 查看当前目录内容。
2. ;:不管前面是否成功,都继续执行下一个
例如:
mkdir images; ls意思是:先尝试创建 images 文件夹,然后执行 ls。即使前一个命令失败,后一个命令也可能继续执行。
因此,新手在安装依赖、部署项目时,更推荐看懂 && 的含义,因为它更强调“前一步成功,才进入下一步”。
3. |:管道符
管道符会把前一个命令的输出交给后一个命令处理。
例如:
ls | grep "mdx"意思是:先列出当前目录内容,再从结果里筛选包含 mdx 的行。
4. > 和 >>:重定向输出
> 会把输出写入文件,并覆盖原内容:
echo "hello" > test.txt>> 会把输出追加到文件末尾:
echo "world" >> test.txt新手要注意:> 会覆盖文件内容,使用前要确认。
5. *:通配符
* 表示匹配多个字符。
例如:
ls *.md意思是列出当前目录下所有以 .md 结尾的文件。
再比如:
rm *.log意思是删除当前目录下所有 .log 文件。这个命令有删除风险,执行前一定要确认自己所在目录。
八、结合真实例子理解命令
例如你看到这样一条命令:
mkdir -p ~/ai-agent-workflow-ppt/images && ls ~/ai-agent-workflow-ppt/可以拆成两部分:
mkdir -p ~/ai-agent-workflow-ppt/images意思是创建项目里的 images 文件夹。
ls ~/ai-agent-workflow-ppt/意思是查看 ai-agent-workflow-ppt 文件夹下有什么内容。
中间的 && 表示:
前面的创建命令成功后,才执行后面的查看命令。所以整条命令的意思就是:
先创建 images 文件夹,然后查看项目目录内容。这类命令通常是安全的,因为它只是创建文件夹和查看目录,不涉及删除。
九、命令行和 GitHub 有什么关系?
GitHub 是很多开源项目的托管平台,而 Git 是版本控制工具。你在 GitHub 上看到的项目,通常需要用 Git 下载到本地。
最常见的命令是:
git clone https://github.com/example/project.git这条命令的意思是:把远程 GitHub 仓库复制一份到你的电脑上。
下载后一般会进入项目目录:
cd project然后查看项目文件:
ls很多开源项目 README 中会写:
git clone https://github.com/example/project.git
cd project
npm install
npm run dev新手不要一口气复制运行。更好的方式是逐行理解:
1. git clone:下载项目; 2. cd project:进入项目文件夹; 3. npm install:安装依赖; 4. npm run dev:启动开发服务器。
这样你就知道每一步在做什么,也更容易定位错误。
十、命令行和 Node.js、npm 有什么关系?
很多网站项目、前端项目、Next.js 项目、Vercel 项目都会用到 Node.js 和 npm。
npm 可以理解为 Node.js 生态里的包管理工具。它常见用途包括安装依赖、运行脚本、启动开发服务器、打包项目。
常见命令如下:
npm install安装项目依赖。它通常会读取当前目录下的 package.json 文件。
npm run dev运行 package.json里定义的 dev 脚本,通常用于启动本地开发服务器。
npm run build运行构建脚本,通常用于生成生产环境版本。
npm start运行启动脚本,具体行为取决于项目在 package.json 中如何定义。
所以,当你看到 npm run dev 时,不要只背命令。你可以打开项目里的 package.json,查看类似下面的内容:
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
}
}这说明:
npm run dev实际执行的是next dev;npm run build实际执行的是next build;npm start实际执行的是next start。
理解这一点后,你看前端项目教程会清楚很多。
十一、命令行和 Python、AI 工具有什么关系?
如果你只是浏览网页,可能永远用不到命令行。但如果你想使用更多 AI 工具、开源项目和自动化工作流,命令行几乎绕不开。
例如:
python main.py用于运行 Python 脚本。
python -m venv .venv用于创建 Python 虚拟环境。
pip install -r requirements.txt用于安装 Python 项目依赖。
vercel deploy用于部署网站项目。
claude可能用于启动 Claude Code 这类命令行工具,具体取决于你的安装方式。
很多 AI Agent、Claude Code、Codex、Cursor、Next.js、FastAPI、Vercel 项目,本质上都是通过命令行完成安装、运行、调试和部署的。
所以学习命令行不是为了“装专业”,而是为了真正掌控自己的项目。
十二、新手最容易犯的错误
1. 不知道自己在哪个目录
解决办法:
pwd先确认当前位置。
2. 路径写错
解决办法:多用 Tab 自动补全,少手打长路径。
3. 忘记文件名大小写
很多系统里,文件名大小写可能会影响命令执行。
例如:
README.md
readme.md它们可能被视为不同文件。
4. 误用删除命令
尤其是:
rm -rf执行前一定要确认路径,不要复制陌生命令后直接运行。
5. 复制陌生命令后直接执行
这是新手最危险的习惯之一。任何命令在执行前,都应该至少看懂三个问题:
- 它会不会删除文件?
- 它会不会覆盖文件?
- 它会不会把敏感信息上传到外部?
如果命令里出现 rm -rf、sudo、curl ... | bash、chmod 777、> 这类内容,更要谨慎。
6. 不看错误提示
很多错误提示其实已经告诉你问题在哪里。例如:
No such file or directory通常表示文件或文件夹不存在,可能是路径写错了。
Permission denied通常表示没有权限执行或访问。
command not found通常表示命令不存在,可能是工具没有安装,或者环境变量没有配置好。
EADDRINUSE常见于本地开发服务器,意思是端口已经被占用。比如 3000 端口已经有一个项目在运行。
十三、建议学习顺序
如果你是零基础,我建议按照这个顺序学习:
1. 先学会 pwd、ls、cd,理解自己在哪里; 2. 再学会 mkdir、touch、cp、mv,理解如何创建和移动文件; 3. 然后谨慎学习 rm,知道如何删除文件,但不要乱用; 4. 再学习 cat、less、head、tail,学会查看文件和日志; 5. 接着学习 &&、|、>、>>,理解命令之间如何组合; 6. 最后学习 git clone、npm install、npm run dev、python main.py,把命令行用于真实项目。
只要掌握这些内容,大多数 GitHub 项目 README 里的基础命令你就能看懂一大半。
十四、总结
命令行不是玄学,也不是只有程序员才能使用的高级工具。它只是另一种操作电脑的方式。
你可以把它理解为:
图形界面是用鼠标和按钮操作电脑;
命令行是用文字和指令操作电脑。当你掌握 ls、cd、mkdir、pwd、git clone、npm run dev 这些基础命令后,再去学习 GitHub、Vercel、Python、Node.js、Claude Code、AI Agent 项目,就会顺畅很多。
真正重要的不是一次性背下所有命令,而是在实际操作中逐渐熟悉它们。遇到不懂的命令,先拆开看:它要做什么?选项是什么?作用目标是谁?这样命令行就会从一堆陌生字符,变成你能理解、能控制、能复用的工具。
常见问题
这篇文章适合什么水平的开发者?
可参考正文中的「适用对象」说明;本站编程栏目的文章覆盖从入门到 AI 编程工作流等不同层次,每篇会有不同的预设背景。
文章中的工具或命令在不同系统上会有差异吗?
会。macOS、Linux 和 Windows 的终端环境、路径格式和命令语法存在差异,文章中若未说明具体系统,建议结合官方文档对应调整。
推荐配合哪些 AI 工具学习编程?
Claude Code 和 Codex 是目前能力较强的编程 AI 工具,可以用来解释代码、补全逻辑、调试错误和生成脚本。相关工具介绍可参考本站 CC Switch 工具文章 和 Vibe Coding 面试题集。
学编程最重要的习惯是什么?
动手做比看教程更重要。建议尽早找一个真实项目(哪怕很小)来练手,遇到问题时查文档和代码,而不只是看完理论再说。
参考来源
- GNU Bash Reference Manual
- GNU Bash Manual:Shell Commands
- GNU Coreutils Manual
- GNU Coreutils:mkdir invocation
- Apple Support:Terminal User Guide for Mac
- Microsoft Learn:Windows Terminal Documentation
- Git Documentation:git clone
- Pro Git Book
- npm Docs:scripts
- npm Docs:npm-run-script
- The Art of Command Line
- MDN Web Docs
终端是 AI 编程工具的基础环境。如果你想进一步了解如何在终端中使用 Claude Code 或 Codex,可以参考 CC Switch 工具介绍 和 Vibe Coding 面试题集。
Share