Day 06 / 共 68 天 · 阶段 1 编程地基

命令行 & Git 基础

昨天(Day 05)你学完 Python 语法,还练了建虚拟环境。今天离开代码本身,学两个每个开发者天天用的基本功:用命令行直接指挥电脑(不靠鼠标点)、用 Git 给代码存档、把项目推上 GitHub 当作品陈列柜。学完你就能跑通任何开源项目的 README;明天(Day 07)开始调你人生第一个 API。

📍 你在阶段 1(编程地基 D3-9)的位置
D04 Python② D05 Python③ D06 命令行&Git D07 调 API D08 异步
💡 用一套类比兜住今天(今天全程沿用「你是一位剧组导演」的世界观) 命令行 = 你不再用遥控器一格格点,而是直接对助理喊话下指令("去 3 号仓库、把这堆道具搬过来"),一句顶十下点击;文件夹/文件 = 片场的仓库和道具箱;Git = 每拍完一条就拍一张"现场快照"存档,随时能回到任意一条;commit = 按下存档键并写一句"这条改了啥";GitHub = 把所有素材上传到云端片库,别人(和面试官)能来参观。今天你从"用鼠标的观众"升级成"喊话的导演"。
L01

命令行是什么:用文字直接指挥电脑

🤔 痛点你打开 AI 项目 README,第一行就是 cd my-projectpython main.py——一堆黑框框里的命令。不会用命令行,等于连门都进不去。
💡 本质命令行(终端 Terminal)就是一个用打字代替点鼠标的窗口。你敲一行文字命令、回车,电脑就照做。它像导演直接对助理喊话:不用一层层翻菜单,一句话直达目的。
👶 在哪打开这个黑框框?macOS:按 ⌘+空格 搜「终端 Terminal」;Windows:开始菜单搜「PowerShell」或用 VS Code 里的「终端」面板。打开后你会看到一个光标在闪,等你打字——这就是你今天的主战场。
📝 举个例子:同一件事,两种做法 想新建一个文件夹叫 demo
🖱️ 鼠标党:右键 → 新建文件夹 → 重命名为 demo(3 步)。
⌨️ 命令行:敲 mkdir demo 回车(1 句)。
单看一次差别不大,但当步骤有几十步、还要重复很多遍时,命令行的"一句话搞定"就是碾压级效率——这也是为什么专业开发几乎全程用它。
L02

目录穿梭:cd / ls / pwd

🤔 痛点命令行里没有可视的文件夹图标,你怎么知道自己"人在哪个文件夹"、里面有啥、又怎么走到别的文件夹去?
💡 本质三个词就够导演在片场自由走动:pwd=我现在站在哪个仓库、ls=看看这个仓库里有啥道具、cd=走进/走出某个仓库。
pwd            # print working directory:我当前在哪个文件夹(打印路径)
ls             # list:列出当前文件夹里有哪些文件和子文件夹
ls -l          # 加 -l:一行一个,附带大小、修改时间等详情

cd demo        # change directory:走进名叫 demo 的子文件夹
cd ..          # .. 表示"上一级":退回到上层文件夹
cd ~           # ~ 表示"我的用户主目录":一键回家
cd /           # 一步跳到磁盘最顶层(根目录)
文件夹是一层套一层的"仓库",cd 就是走进走出 ~ 主目录(家) projects 文件夹 demo 文件夹 cd projects ↓ cd demo ↓ cd .. ↑ 往上退
图注:路径就像"家 → projects → demo"一层层往里走,cd .. 往外退一层,随时 pwd 确认自己在哪。
👶 迷路了怎么办?任何时候不确定自己在哪,就敲 pwd 看路径、敲 ls 看四周有啥。命令行不会"记住"你想去哪,全靠你自己看清脚下——这两个词是你在片场不迷路的指南针。
L03

文件操作:mkdir / touch / cp / mv / rm

🤔 痛点会走动还不够,导演还得能新建仓库、造道具、搬运和丢弃。这些用命令行怎么做?
💡 本质五个动词管住"造/改/删":mkdir 建文件夹、touch 建空文件、cp 复制、mv 移动或改名、rm 删除。就是导演对道具的搬运指令。
mkdir notes            # make directory:新建一个叫 notes 的文件夹
touch todo.txt         # 新建一个空文件 todo.txt(没有就创建)
cp todo.txt bak.txt    # copy:把 todo.txt 复制一份叫 bak.txt
mv todo.txt notes/     # move:把 todo.txt 移进 notes 文件夹
mv bak.txt done.txt    # 同一个 mv,起新名字 = 重命名
rm done.txt            # remove:删除文件(⚠️ 命令行删除不进回收站!)
rm -r notes            # -r 表示连文件夹带里面内容一起删

👶 小白:rm 删了不进回收站,我手一抖删错了咋办?

👨‍🏫 老师:这是命令行最该敬畏的一条——rm永久删除,没有回收站兜底。三条护身符:① 删之前先 ls 看清自己在哪、要删啥;② 千万别乱敲 rm -rf / 这种(会删整个系统);③ 重要东西先用 Git 存档(下一讲就学)。有了 Git,误删也能一键找回——这正是我们今天下半场要练的救命技能。

L04

Git 是什么:给代码拍"现场快照"

🤔 痛点写代码时你一定干过:改着改着改崩了,想回到"昨天还能跑的版本",却只剩一堆 项目_最终版项目_最终版2项目_真的最终版 的文件夹……乱到崩溃。
💡 本质Git 是一个"代码时光机":每到一个满意的节点,就拍一张快照(commit)存起来。之后无论怎么改,都能一键回到任意一张快照。像导演每拍好一条就存档,随时能回放、回退。
Git = 一串带说明的存档点,随时可回退 v1 v2 v3 现在 初始 加登录 修 bug 加新功能
图注:每个圆点是一次 commit(存档),附一句说明。改崩了?一句命令回到 v2,世界清净。
👶 先装 GitmacOS 敲 git --version,若没装会提示你安装(跟着提示点即可);Windows 去 git-scm.com 下载安装。装好后设一次身份(只需一次):git config --global user.name "你的名字"git config --global user.email "你的邮箱",它会记进每张快照的"署名"。
L05

存档三步:init → add → commit

🤔 痛点知道 Git 是时光机了,可具体怎么"拍一张快照"?总不能它自动乱拍吧。
💡 本质存一张快照就三步:git init 让这个文件夹开始被 Git 管、git add 把想入镜的文件放上"待拍台"、git commit 咔嚓拍下并写一句说明。像导演:先开机、把要拍的道具摆好、喊 action 存档。
cd my-project          # 先进到你的项目文件夹
git init               # 让 Git 开始管理这个文件夹(只需一次,出现 .git 隐藏文件夹)

git status             # 随时看:哪些文件改了、哪些已上待拍台(超常用!)

git add todo.txt       # 把单个文件放上"待拍台"(暂存区)
git add .              # 或用 . 表示"当前所有改动都放上台"

git commit -m "完成待办列表初版"   # 咔嚓存档,-m 后面用引号写这次改了啥
📝 举个例子:一句好的 commit 说明长啥样 commit 说明是写给"未来的你"看的,要一眼看懂这张快照干了啥:
✅ 好:git commit -m "修复登录时密码为空会崩溃的问题"
❌ 差:git commit -m "改了改了" / git commit -m "asdf"
半年后回来找"哪次改动引入了 bug"时,清晰的说明能省你几小时——这是好习惯,面试看你的 GitHub 也会注意到。

👶 小白:为啥要多一步 add?直接 commit 全部不行吗?

👨‍🏫 老师:add 这个"待拍台"(暂存区)给你挑选权——这次我只想把"登录功能"存成一张干净快照,那些还没写完的实验代码先不入镜。你可以只 add 想要的文件再 commit。刚上手嫌麻烦?直接 git add . 全放上台也完全没问题,等熟了再体会挑选的好处。

L06

GitHub & push:把片库上传到云端

🤔 痛点快照都存在自己电脑上,电脑丢了怎么办?想给面试官看作品、想和同事协作,又怎么办?
💡 本质GitHub 是放在云端的"代码仓库网站"。git push = 把本地的快照上传到云端片库;别人 git clone = 把整个片库拷回自己电脑。它既是备份,更是你转行路上的作品陈列柜
# 第一步:去 github.com 注册账号,点 New 建一个空仓库(比如叫 my-project)
# GitHub 会给你一个仓库地址,形如 https://github.com/你的名/my-project.git

# 第二步:把本地文件夹和这个云端仓库"连线"(origin 是这个远程地址的小名)
git remote add origin https://github.com/你的名/my-project.git

# 第三步:把本地快照推上云端。第一次加 -u 记住去向,之后只需 git push
git push -u origin main        # main 是主分支名(有些老仓库叫 master)
👶 别把密钥推上去!项目里常有 API key、密码等秘密,千万别 push 到 GitHub(公开仓库全世界可见)。做法:在项目里建一个 .gitignore 文件,写上要忽略的文件名(如 .env.venv),Git 就会假装看不见它们,永远不入镜。这条安全习惯,从第一个仓库就养成。
📝 举个例子:你以后下载别人项目的第一句 看到心仪的开源 AI 项目,把它整个搬回本地就一句:
git clone https://github.com/某某/某项目.git
然后 cd 某项目 → 建 venv → pip install -r requirements.txt(接上 Day 05)。命令行 + Git + venv 这三件套,就是你打开任何开源项目的万能钥匙。
L07

今日小结 + 动手 10 分钟

🧠 今天你应该能回答

  • 命令行是干嘛的?pwd/ls/cd 各是什么意思?
  • mkdir/touch/cp/mv/rm 分别做什么?为什么 rm 要小心?
  • Git 解决了什么痛点?"快照 commit"是什么意思?
  • 存一张快照的三步命令是啥?(init → add → commit)
  • GitHub 是什么?git push 干嘛?为什么要 .gitignore

✋ 动手 10 分钟:把一个项目推上 GitHub

全程只用命令行,走一遍从建仓库到上云的完整流程:

mkdir hello-git && cd hello-git      # 建文件夹并进入
echo "# 我的第一个仓库" > README.md    # 造一个说明文件(> 表示把文字写进文件)
echo ".venv" > .gitignore             # 忽略虚拟环境文件夹,别上传

git init                              # 让 Git 接管
git status                            # 看看现在的状态(会看到未跟踪的文件)
git add .                             # 全部放上待拍台
git commit -m "初始化:加 README 和 .gitignore"   # 拍第一张快照
git log --oneline                     # 看快照历史(每行一条)

然后去 github.com 建一个空仓库,把地址填进下面两句,完成上云:

git remote add origin https://github.com/你的名/hello-git.git
git push -u origin main               # 刷新 GitHub 页面,你的代码就在云端了!
明日预告 · Day 07:地基收尾,进入最激动人心的一步——调你人生第一个 API。你会搞懂 HTTP 的 GET/POST、状态码、JSON 是什么,用 Python 的 requests 库向一个真实网络接口发请求、拿回数据,并学会安全地读取 API key。这正是后天调用大模型的前置技能——马上就要碰到"真·AI"了。
← Day 05 · Python 极速入门③ Day 07 · 调第一个 API →