Skip to content

L03. Linux 基础 (下):掌握黑客的语言

Vibe Coding 宣言:不要让繁琐的重复劳动杀死你的创造力。脚本就是你的克隆体。

0. 为什么这一课至关重要? (Why It Matters)

  • API Key 的保险箱:这一课会教你如何安全地存放 API Key,避免被黑客盗刷(这是新手最容易犯的错)。
  • 拒绝重复:如果你发现自己在重复敲同一行命令,那就该写个脚本让它自动跑了。
  • 权限解锁:当你遇到 Permission denied 时,你知道该用哪把钥匙。

1. 目标 (Goal)

学会用 .env 管理密钥,用 chmod 解锁文件,并写出你的第一个 Shell 脚本

2. 核心概念/装备/指令 (The Core)

2.1 环境变量 (The Ghost in the Shell)

有些东西不能写在代码里(比如密码)。我们要把它们藏在操作系统的“环境变量”里。

  • .env 文件:一个文本文件,里面全是 KEY=VALUE
  • export:把变量告诉当前的终端。

2.2 权限 (The Gatekeeper)

Linux 文件有读 (r)、写 (w)、执行 (x) 三种权限。

  • chmod +x:给文件加上“执行”权限。这是你最常用的一招。

2.3 管道与重定向 (The Plumbing)

  • | (Pipe):把左边的输出,变成右边的输入。比如 ls | grep "md"
  • > (Redirect):把输出存进文件。

3. 实战演练 (Action)

Step 1: 环境变量与 .env

  1. 在项目根目录创建一个 .env 文件。
    bash
    touch .env
  2. 用编辑器打开它(或者用 echo),写入你的“秘密”。
    bash
    echo "MY_SECRET_KEY=123456" >> .env
  3. 在终端里临时设置变量。
    bash
    export MY_NAME="VibeCoder"
    echo $MY_NAME
    # 输出:VibeCoder

Step 2: 你的第一个脚本

我们来写个脚本,自动帮我们创建项目结构。

  1. 创建文件 setup_project.sh
    bash
    touch setup_project.sh
  2. 写入以下内容(用 VS Code/Trae 打开写,或者用 cat):
    bash
    #!/bin/bash
    # 这一行叫 Shebang,告诉系统用 bash 运行我
    
    echo "🚀 Starting project setup..."
    mkdir -p src/utils
    touch src/main.py
    touch src/utils/helper.py
    touch .gitignore
    echo "✅ Project setup complete!"

Step 3: 赋予权限并运行

直接运行会报错 Permission denied

bash
./setup_project.sh  # 报错!

赋予执行权限:

bash
chmod +x setup_project.sh

再次运行:

bash
./setup_project.sh
# 输出:
# 🚀 Starting project setup...
# ✅ Project setup complete!

Step 4: 管道组合拳

查找当前目录下所有 .py 文件,并计算有多少行。

bash
find . -name "*.py" | xargs wc -l
  • find:找文件。
  • |:传递给后面。
  • xargs:把前面的结果当成参数传给 wc
  • wc -l:数行数。

4. 常见问题 (FAQ - Vibe Style)

Q: 为什么运行脚本要加 ./ A: 为了安全。Linux 默认不搜索当前目录的可执行文件。你得显式告诉它“就在当前目录下找”。

Q: .env 文件要提交到 Git 吗? A: 绝对不要! 下一课会讲 .gitignore,一定要把 .env 加进去。否则你的 Key 就会裸奔。

Q: chmod 777 是什么? A: 赋予所有权限(读+写+执行)。除非你走投无路,否则不要用。用 chmod +x 就够了。

5. 验收标准 (Definition of Done)

  1. 创建一个名为 run.sh 的脚本。
  2. 脚本内容是打印当前时间 (date)。
  3. 使用 chmod 赋予权限。
  4. 成功运行 ./run.sh 并看到时间输出。

Next Mission: L04. Git 版本控制 (上):时光机的使用说明

基于 Claude Code 构建