🛠️ 开发环境配置
Linux 是开发者的天堂——大多数开发工具在 Linux 上运行最好。本章覆盖配置高效开发环境的核心技能。
本地开发 vs 远程开发
- 本地开发(WSL / 虚拟机 / 物理机):工具直接装在本地 Linux
- 远程开发(SSH + VS Code Remote):工具装在远程 Linux 服务器,本地 VS Code 通过 SSH 连接
两种场景配置方法完全一样,只是工具装在哪台机器上。
⚙️ 编译器与调试器
GCC / G++(C/C++)
# Ubuntu/Debian
sudo apt install build-essential # 包含 gcc, g++, make, libc-dev
gcc --version
g++ --version
# Fedora/RHEL
sudo dnf groupinstall "Development Tools"
# Arch
sudo pacman -S base-devel
编译 C 程序:
# hello.c
#include <stdio.h>
int main() {
printf("Hello, Linux!\n");
return 0;
}
# 编译
gcc hello.c -o hello
# 带调试信息编译(用于 GDB 调试)
gcc -g hello.c -o hello
# 优化级别:-O0(无优化) / -O1 / -O2(推荐) / -O3 / -Os(体积优化)
gcc -O2 hello.c -o hello
Clang / Clang++
GCC 的替代品,错误信息更友好,静态分析更强。
# Ubuntu
sudo apt install clang
# 使用(和 gcc 参数基本兼容)
clang hello.c -o hello
GDB(调试器)
# 安装
sudo apt install gdb
# 调试程序
gdb ./hello
# GDB 常用命令
(gdb) run # 运行程序
(gdb) break main # 在 main 函数设断点
(gdb) break file.c:42 # 在指定行设断点
(gdb) next # 下一行(不进入函数)
(gdb) step # 下一行(进入函数)
(gdb) print var # 打印变量值
(gdb) backtrace # 查看调用栈
(gdb) quit # 退出
VS Code 调试更香
直接用 VS Code + C/C++ 插件,图形化调试,比 GDB 命令行舒服多了。
配置 .vscode/launch.json 即可,不用记 GDB 命令。
🏗️ 构建工具
Make
最经典的构建工具,通过 Makefile 定义构建规则。
# Makefile 示例
CC = gcc
CFLAGS = -Wall -g
all: app
app: main.o utils.o
$(CC) -o app main.o utils.o
main.o: main.c
$(CC) $(CFLAGS) -c main.c
clean:
rm -f *.o app
make # 构建
make clean # 清理
make -j4 # 4 个并行任务(加速)
CMake
更高级的构建系统生成器,跨平台,生成 Makefile/ninja 文件。
# CMakeLists.txt 示例
cmake_minimum_required(VERSION 3.10)
project(MyApp)
set(CMAKE_C_STANDARD 11)
add_executable(myapp main.c utils.c)
# 构建流程
mkdir build && cd build
cmake .. # 生成 Makefile
make # 构建
🔀 版本控制辅助
Git 配置优化(开发者视角)
# 1. 美化 git log
git config --global alias.lg "log --oneline --graph --decorate --all"
# 2. 自动纠正命令拼写
git config --global help.autocorrect 10
# 3. 默认 push 当前分支
git config --global push.default current
# 4. 彩色输出
git config --global color.ui auto
# 5. 编辑器设为 VS Code
git config --global core.editor "code --wait"
gh(GitHub CLI)
# 安装
sudo apt install gh
# 登录
gh auth login
# 常用操作
gh repo create # 创建仓库
gh pr create # 创建 PR
gh issue list # 列出 issue
gh run watch # 查看 CI 运行
📦 多版本管理
开发者经常需要同时安装多个版本的语言运行时。用版本管理器,不用系统包管理器。
Node.js — fnm(推荐)或 nvm
# 安装 fnm(Fast Node Manager)
curl -fsSL https://fnm.vercel.app/install | bash
# 安装 Node.js 版本
fnm install 20
fnm install 18
fnm use 20
# 查看已安装版本
fnm ls
Python — pyenv
# 安装 pyenv
curl https://pyenv.run | bash
# 安装 Python 版本
pyenv install 3.12.0
pyenv install 3.10.12
pyenv global 3.12.0
# 项目级 Python 版本
cd myproject
echo "3.10.12" > .python-version # pyenv 自动切换
Go — gvm 或直接下载
# 方式 1:gvm
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
# 方式 2:直接下载(推荐)
wget https://go.dev/dl/go1.22.3.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
Rust — rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Java — SDKMAN!
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk list java # 列出可用 Java 版本
sdk install java 21.0.2-oracle
sdk use java 17.0.10-tem
版本管理器选择指南
| 语言 | 推荐工具 | 理由 |
|---|---|---|
| Node.js | fnm | 比 nvm 快,Rust 编写 |
| Python | pyenv | 虚拟环境管理完善 |
| Go | 直接下载 | 官方 tarball 最简单 |
| Rust | rustup | 官方工具,Rust 专属 |
| Java | SDKMAN! | 支持 Maven/Gradle 等多工具 |
| Ruby | rbenv | 类似 pyenv 哲学 |
🛠️ 开发工具推荐清单
必装工具(一次搞定)
# Ubuntu/Debian 一键安装
sudo apt update
sudo apt install -y \
build-essential \ # 编译器工具链
git \ # 版本控制
curl wget \ # HTTP 客户端
jq \ # JSON 处理
tree \ # 目录树显示
htop \ # 进程监控(比 top 好)
ripgrep \ # 快速代码搜索(rg)
fd-find \ # 快速文件查找(fd)
bat \ # cat 的现代化替代品
tmux \ # 终端复用器
vim \ # 编辑器
neovim \ # vim 的现代化版本
ca-certificates \ # CA 证书(HTTPS 必需)
openssh-client # SSH 客户端
现代化 CLI 工具推荐
| 传统工具 | 现代化替代 | 安装方式 |
|---|---|---|
ls | eza / lsd | cargo install eza |
cat | bat | sudo apt install bat |
grep | ripgrep(rg) | sudo apt install ripgrep |
find | fd | sudo apt install fd-find |
du | duf / ncdu | sudo apt install ncdu |
df | duf | cargo install duf |
top | btop / htop | sudo apt install htop |
man | tealdeer(tldr) | cargo install tealdeer |