3、环境准备:安装必要工具(Make、Shell、Python),配置PATH与别名

好,咱们正式开始动手了。这一节其实特别关键——很多人觉得环境准备就是装个软件,没什么好讲的。但我跟你说,环境配得好,后面少踩一半的坑。我自己带团队的时候,新人入职第一件事就是跟我一起过这个流程,省得后面出问题到处找原因。

3.1 为什么这三样是标配?

你想想看,我们要做「自定义命令与目标联动」,本质上就是让系统自动执行一系列操作。那谁来调度?Make。谁来写逻辑?Shell。谁来处理复杂数据?Python。这三样东西组合起来,几乎能覆盖你工作中 90% 的自动化场景。

我见过不少团队,有人用纯 Shell 写上千行的脚本,有人用 Python 硬写 Makefile 的逻辑——其实都不对。正确的做法是:Make 做编排,Shell 做系统调用,Python 做复杂处理。各司其职,清晰又高效。

3.2 安装 Make

Make 这个东西,说白了就是一个任务调度器。你告诉它「先做 A,再做 B,如果 C 文件变了就重新编译」,它就能老老实实帮你干完。

macOS

macOS 自带了 Make,但版本可能比较老。我建议用 Homebrew 更新一下:

brew install make

装完之后检查版本:

make --version

嗯,看到 GNU Make 4.x 就对了。我记得有一次在 macOS 上遇到一个诡异的 bug,折腾了半天才发现是系统自带的旧版 Make 不支持某些语法——从那以后我都是先升级再干活。

Linux(Ubuntu/Debian)

sudo apt update
sudo apt install build-essential

build-essential 这个包会把 Make、GCC 等编译工具一起装上,省心。

Windows

Windows 用户我推荐用 Chocolatey 安装:

choco install make

或者直接装 Git Bash,里面也带了 Make。我个人习惯用 Git Bash,因为它的 Shell 环境跟 Linux 更像,后面写脚本也方便。

小技巧: 装完之后在终端输入 make -v,如果看到版本号,说明安装成功。如果提示「命令未找到」,八成是 PATH 没配好——别急,下面会讲。

3.3 安装 Shell 环境

Shell 是咱们跟系统交互的桥梁。说实话,现在主流的选择就两个:Bash 和 Zsh。

我个人更推荐 Zsh,原因很简单:插件生态好,自动补全强,主题好看。但如果你习惯了 Bash,完全没问题——核心语法几乎一样。

macOS

从 macOS Catalina 开始,默认 Shell 就是 Zsh 了。你可以确认一下:

echo $SHELL

如果输出 /bin/zsh,那就直接用。如果是 Bash,我建议切到 Zsh:

chsh -s /bin/zsh

Linux

sudo apt install zsh
chsh -s /usr/bin/zsh

装完之后重启终端,你会看到 Zsh 的初始配置向导。按 q 跳过,后面再慢慢调。

Windows

Windows 用户我强烈建议装 Git Bash 或者 WSL2。Git Bash 轻量,WSL2 更完整。如果你要做复杂的自动化,WSL2 是更好的选择。

注意: 千万不要用 Windows 自带的 CMD 或 PowerShell 来跑 Makefile——编码问题、路径分隔符问题会让你怀疑人生。我曾经在一个项目里被这个坑了整整一下午,后来全部迁移到 WSL2 才消停。

3.4 安装 Python

Python 的作用是处理那些 Shell 搞不定的复杂逻辑——比如解析 JSON、操作 Excel、调用 API 等等。

macOS / Linux

# 检查是否已安装
python3 --version

# 如果没有,用包管理器安装
brew install python3   # macOS
sudo apt install python3  # Linux

Windows

去 python.org 下载安装包,安装时记得勾选 「Add Python to PATH」。这一步很多人会忘,导致后面在终端里打 python 没反应。

重要: 装完 Python 之后,建议顺手装一下 pip 和 virtualenv。后面写自动化脚本时,虚拟环境能帮你隔离依赖,避免「在我电脑上能跑啊」的尴尬。
python3 -m pip install --upgrade pip
python3 -m pip install virtualenv

3.5 配置 PATH

PATH 是什么?说白了就是系统找命令的「通讯录」。你输入 make,系统就去 PATH 里列出的目录挨个找,找到了就执行。

配置 PATH 其实很简单,打开你的 Shell 配置文件:

  • Bash 用户:~/.bashrc 或 ~/.bash_profile
  • Zsh 用户:~/.zshrc

然后在文件末尾加上:

export PATH="$HOME/bin:/usr/local/bin:$PATH"

这行命令的意思是:优先找用户目录下的 bin,再找 /usr/local/bin,最后找系统默认路径。这样你安装的自定义工具就能覆盖系统自带的版本。

避坑指南: 我曾经把 PATH 写错了,导致所有命令都找不到——连 ls 都报错。那叫一个慌。后来学乖了:改 PATH 之前先备份配置文件,或者用 export PATH=/usr/bin:/bin:$PATH 兜底。

3.6 配置别名(Alias)

别名这东西,用好了能让你效率翻倍。说白了就是给长命令起个短名字。

比如我每天都要进项目目录,然后激活虚拟环境:

alias proj="cd ~/workspace/my-project && source venv/bin/activate"

以后只要在终端输入 proj,一步到位。

再比如,我经常要查看磁盘使用情况:

alias dfh="df -h | grep -v tmpfs"

这样打 dfh 就能看到干净的磁盘信息,不会被一堆临时文件系统刷屏。

配置别名也是在 ~/.zshrc 或 ~/.bashrc 里加:

# 我的常用别名
alias ll="ls -lah"
alias gs="git status"
alias gp="git pull"
alias py="python3"
alias m="make"

加完之后记得 source ~/.zshrc 让它生效。

我的习惯: 我会把所有别名按功能分组,用注释隔开。比如「# Git 相关」「# 项目相关」「# 系统相关」。这样半年后回来改,还能一眼看懂。

3.7 验证环境

好,装完了也配完了,咱们来验证一下。写一个简单的测试:

# 创建一个测试目录
mkdir -p ~/test-env && cd ~/test-env

# 创建一个 Makefile
cat > Makefile << 'EOF'
.PHONY: hello
hello:
	@echo "Make works!"
	@python3 -c "print('Python works!')"
EOF

# 运行
make hello

如果看到两行输出:

Make works!
Python works!

那就说明环境全部就绪。如果报错,别慌——检查一下 PATH 配置,或者看看是不是少了某个工具。

3.8 小结

这一节的内容其实不难,但很重要。我见过太多人跳过环境准备直接写代码,结果后面花了两倍的时间在排查「为什么我的命令找不到」「为什么 Python 版本不对」这类问题上。

记住一句话:环境配好,事半功倍;环境乱配,天天崩溃。

下一节咱们就开始写第一个 Makefile 了——到时候你会觉得,前面这些准备工作,值。