Programming字数 4679阅读时长12 分钟

终端命令行入门:从 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 项目时,教程里经常出现 lscdmkdirgit clonenpm installnpm 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另一种 ShellmacOS 现在默认更常见的是 Zsh
PowerShellWindows 常见 ShellWindows 上更现代的命令行环境之一
Git BashWindows 上模拟类 Unix 命令的环境安装 Git for Windows 后常见,适合运行很多 GitHub 教程里的命令

简单理解就是:

你在 Terminal 里输入命令,Shell 负责理解命令,然后操作系统执行命令。

所以很多教程里说“打开 Bash 执行命令”,对新手来说可以先理解为:

打开终端,然后输入这些命令。

需要注意的是,不同系统的命令行环境略有差异。Mac 和 Linux 教程里常见的 lscdmkdirrm 等命令,在 Windows 的 PowerShell 里不一定完全相同;但如果你使用 Git Bash、WSL 或类 Unix 环境,这些命令通常更接近 Mac/Linux 教程。

二、Bash 到底是什么?为什么教程总提它?

Bash 全称是 Bourne Again Shell,是一种非常常见的命令语言解释器。很多 Linux 服务器、部署教程、开源项目 README,默认都会使用 Bash 或接近 Bash 的 Shell 语法。

你在教程里看到的这些写法,很多都和 Bash 习惯有关:

cd my-project && npm install
export OPENAI_API_KEY="your_api_key"
python main.py --input data.txt

Bash 的作用不是“写代码那么复杂”,而是帮助你把多个系统操作串起来。例如进入项目目录、安装依赖、设置环境变量、运行脚本、查看日志、部署项目。

对于初学者来说,不需要一开始系统学习 Bash 脚本。你只要先掌握下面几类内容就够了:

  • 如何切换目录;
  • 如何查看文件;
  • 如何创建、复制、移动、删除文件;
  • 如何运行程序;
  • 如何理解参数和选项;
  • 如何看懂 &&|>>> 这类符号;
  • 如何知道一条命令是否危险。

等这些基础熟悉后,再学习变量、循环、条件判断、脚本文件也不迟。

三、命令行的基本结构

一条完整的命令通常由三个部分组成:

command [options] [arguments]

例如:

ls -la ~

可以拆成:

部分示例含义
命令 Commandls要执行什么操作
选项 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. catlessheadtail:查看文件内容

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 LamjinlabWebsite

2. 上下箭头查看历史命令

可以找回上一条命令,按 可以往后翻。

这在反复运行命令时非常有用,例如:

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 -rfsudocurl ... | bashchmod 777> 这类内容,更要谨慎。

6. 不看错误提示

很多错误提示其实已经告诉你问题在哪里。例如:

No such file or directory

通常表示文件或文件夹不存在,可能是路径写错了。

Permission denied

通常表示没有权限执行或访问。

command not found

通常表示命令不存在,可能是工具没有安装,或者环境变量没有配置好。

EADDRINUSE

常见于本地开发服务器,意思是端口已经被占用。比如 3000 端口已经有一个项目在运行。

十三、建议学习顺序

如果你是零基础,我建议按照这个顺序学习:

1. 先学会 pwdlscd,理解自己在哪里; 2. 再学会 mkdirtouchcpmv,理解如何创建和移动文件; 3. 然后谨慎学习 rm,知道如何删除文件,但不要乱用; 4. 再学习 catlessheadtail,学会查看文件和日志; 5. 接着学习 &&|>>>,理解命令之间如何组合; 6. 最后学习 git clonenpm installnpm run devpython main.py,把命令行用于真实项目。

只要掌握这些内容,大多数 GitHub 项目 README 里的基础命令你就能看懂一大半。

十四、总结

命令行不是玄学,也不是只有程序员才能使用的高级工具。它只是另一种操作电脑的方式。

你可以把它理解为:

图形界面是用鼠标和按钮操作电脑;
命令行是用文字和指令操作电脑。

当你掌握 lscdmkdirpwdgit clonenpm run dev 这些基础命令后,再去学习 GitHub、Vercel、Python、Node.js、Claude Code、AI Agent 项目,就会顺畅很多。

真正重要的不是一次性背下所有命令,而是在实际操作中逐渐熟悉它们。遇到不懂的命令,先拆开看:它要做什么?选项是什么?作用目标是谁?这样命令行就会从一堆陌生字符,变成你能理解、能控制、能复用的工具。

常见问题

这篇文章适合什么水平的开发者?

可参考正文中的「适用对象」说明;本站编程栏目的文章覆盖从入门到 AI 编程工作流等不同层次,每篇会有不同的预设背景。

文章中的工具或命令在不同系统上会有差异吗?

会。macOS、Linux 和 Windows 的终端环境、路径格式和命令语法存在差异,文章中若未说明具体系统,建议结合官方文档对应调整。

推荐配合哪些 AI 工具学习编程?

Claude Code 和 Codex 是目前能力较强的编程 AI 工具,可以用来解释代码、补全逻辑、调试错误和生成脚本。相关工具介绍可参考本站 CC Switch 工具文章Vibe Coding 面试题集

学编程最重要的习惯是什么?

动手做比看教程更重要。建议尽早找一个真实项目(哪怕很小)来练手,遇到问题时查文档和代码,而不只是看完理论再说。

参考来源

终端是 AI 编程工具的基础环境。如果你想进一步了解如何在终端中使用 Claude Code 或 Codex,可以参考 CC Switch 工具介绍Vibe Coding 面试题集

Share

分享这篇文章