📚 目录(俏皮版)
🍳 一、软件管家 yum —— 做饭先备料
查看菜谱(软件包)
点菜安装
撤菜卸载
文件搬运工 rzsz
✍️ 二、编辑器 vim —— 键盘上的指尖芭蕾
三种核心模式
基本操作:进、写、退
正常模式常用指令(附例子)
末行模式常用指令
简单配置你的 vim
🔧 三、编译器 gcc/g++ —— 翻译官的故事
编译四部曲
函数库的悄悄话:静态 vs 动态
常用 gcc 选项
🐛 四、调试器 gdb —— 捉虫小能手
开始调试前的重要一步
gdb 常用命令(含例子)
🏗️ 五、自动化构建 make/Makefile —— 懒人必备神器
Makefile 的核心三要素
一个完整的例子
make 的工作原理
📊 六、第一个小程序:进度条 —— 动态视觉初体验
前置知识:\r 与 \n 的爱恨情仇
行缓冲区实验
进度条完整代码与解释
🌐 七、版本控制 git —— 代码的云端储存柜
安装与配置
三板斧实战(含免密配置)
🍳 一、软件管家 yum —— 做饭先备料
在 Linux 下装软件,传统方法是下载源码手动编译 —— 就像从种麦子开始做面包,太麻烦。yum 就是“应用商店”,帮你自动下载、安装、卸载软件包。
查看菜谱(软件包)
yum list | grep 关键词
例子:查找用于 Windows 和 Linux 之间传文件的 lrzsz 包
yum list | grep lrzsz
作用:列出所有名称包含 lrzsz 的可用软件包,并显示版本、架构等信息。
点菜安装
bash
sudo yum install 软件包名
例子:安装 lrzsz
bash
sudo yum install lrzsz
作用:自动下载并安装该软件。sudo 是因为需要写入系统目录。
撤菜卸载
sudo yum remove 软件包名
例子:卸载 lrzsz
sudo yum remove lrzsz
作用:彻底删除软件及其配置文件。
文件搬运工 rzsz
安装 lrzsz 后,在 XShell 等终端中可以直接拖拽文件上传(rz 命令)或下载到 Windows(sz 文件名)。
💡 提示:所有 yum 操作必须联网!可以用 ping www.baidu.com 测试网络。
✍️ 二、编辑器 vim —— 键盘上的指尖芭蕾
Vim 是 Linux 自带的“神级编辑器”,没有鼠标,全靠键盘命令。初学可能觉得难,但熟练后效率飞升。

基本操作:进、写、退
1.打开/新建文件:vim test.c
2.按 i 进入插入模式,输入代码
3.按 Esc 回到正常模式
4.输入 :wq 保存并退出
正常模式常用指令

末行模式常用指令

简单配置vim
在家目录创建 .vimrc 文件,写入:
syntax on " 语法高亮
set nu " 显示行号
set shiftwidth=4 " 缩进4空格
重启vim后效果立马显现
🔧 三、编译器 gcc/g++ —— 翻译官的故事
C/C++ 代码是人能读的“外语”,gcc 负责把它翻译成机器能执行的 0/1 指令。整个过程分为四步:

完整例子(以 hello.c 为例):
# 1. 预处理
gcc -E hello.c -o hello.i
# 2. 编译
gcc -S hello.i -o hello.s
# 3. 汇编
gcc -c hello.s -o hello.o
# 4. 链接
gcc hello.o -o hello
./hello # 运行
一步到位:gcc hello.c -o hello 直接生成可执行文件。
函数库的悄悄话:静态 vs 动态
-
动态库(.so):编译时只记录“指针”,运行时再加载。省空间,默认使用。
查看动态链接:file hello 会显示 dynamically linked。 -
静态库(.a):把库代码直接复制进可执行文件。体积大,但可独立运行。
使用静态链接:gcc -static hello.c -o hello_static

🐛 四、调试器 gdb —— 捉虫小能手
程序出错了?gdb 让你一步步观察程序的“内心活动”,找到 bug 藏身之处。
开始调试前的重要一步
gcc 默认生成的是 release 版(无法调试)。必须加上 -g 选项:
gcc -g myprog.c -o myprog
gdb 常用命令(含例子)
启动调试:gdb myprog

调试小实战:假设程序第 20 行有 bug,我们想看看变量 sum 的变化
gdb myprog
(gdb) b 20 # 在第20行打断点
(gdb) r # 运行
(gdb) p sum # 打印当前 sum
(gdb) n # 执行下一行
(gdb) p sum # 再打印,对比变化
🏗️ 五、自动化构建 make/Makefile —— 懒人必备神器
当项目有十几个 .c 文件时,手动输入 gcc 命令会让人崩溃。Makefile 就像一个菜谱,告诉 make 命令如何一步步编译。
Makefile 的核心三要素
**1.目标:**想生成的文件(如 hello)
**2.依赖:**生成目标需要的原材料(如 hello.o)
**3.命令:**如何从依赖生成目标(如 gcc hello.o -o hello)
一个完整的例子
假设我们有一个 hello.c:
#include <stdio.h>
int main()
{
printf("Hello Makefile!\n");
return 0;
}
创建 Makefile 文件(注意 Tab 缩进,不能用空格):
hello: hello.o
gcc hello.o -o hello
hello.o: hello.s
gcc -c hello.s -o hello.o
hello.s: hello.i
gcc -S hello.i -o hello.s
hello.i: hello.c
gcc -E hello.c -o hello.i
.PHONY: clean
clean:
rm -f hello.i hello.s hello.o hello
执行
make # 自动编译生成 hello
./hello # 运行
make clean # 删除所有临时文件
make 的工作原理
1.找当前目录下的 Makefile 或 makefile
2.执行第一个目标(这里是 hello)
3.如果目标文件不存在,或其依赖比它更新,就执行对应命令
4.依赖又可以触发下层目标,形成一个链式反应
注意:💡 .PHONY 声明 clean 是伪目标,总是执行其命令(避免和同名文件冲突)。
📊 六、第一个小程序:进度条 —— 动态视觉初体验
写一个动态刷新的进度条,能帮你深刻理解 \r(回车)、\n(换行) 以及行缓冲区的概念。
前置知识:\r 与 \n 的爱恨情仇
\n:换行(Newline),将光标移到下一行相同位置(在 Linux 中也会隐含回到行首,但标准 C 中需要区分)
\r:回车(Carriage Return),将光标移到当前行行首
在老式打字机上,\r\n 才是真正的“换到新行行首”。Linux 下通常只用 \n,但进度条需要原地刷新,所以要用 \r。
#include <stdio.h>
#include <unistd.h>
int main() {
printf("Hello"); // 没有 \n
sleep(3); // 等待3秒
return 0;
}
现象:先等待3秒,然后才一起打印 Hello。
原因:printf 默认是行缓冲,遇到 \n 或程序结束才刷新。加上 fflush(stdout) 可以立即输出。
进度条完整代码与解释
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main() {
int i = 0;
char bar[102];
memset(bar, 0, sizeof(bar)); // 清空数组
const char* label = "|/-\\"; // 旋转光标的四种形态(注意转义反斜杠)
while (i <= 100) {
printf("[%-100s][%d%%][%c]\r", bar, i, label[i % 4]);
fflush(stdout); // 立即刷新,不用等 \n
bar[i++] = '#'; // 填充一个 #
usleep(100000); // 休眠 0.1 秒,模拟进度
}
printf("\n"); // 最后换行
return 0;
}
编译运行
gcc progress.c -o progress
./progress
现象:会看到一个动态刷新的进度条,并且一个小光标在转圈
🌐 七、版本控制 git —— 代码的云端储存柜
Git 是代码的时光机,可以随时回到任意历史版本,还能把代码托管到 GitHub 上。
sudo yum install git
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
三板斧实战
1. 克隆项目到本地
先在 GitHub 上新建仓库,复制 HTTPS 或 SSH 地址。
git clone https://github.com/你的用户名/仓库名.git
cd 仓库名
- 第一板斧:git add —— 告诉 git 要跟踪哪些文件
echo "# My Project" >> README.md # 新建一个文件
git add README.md # 添加单个文件
git add . # 添加当前目录所有改动
3.第二板斧:git commit —— 在本地拍个快照
git commit -m "添加 README 文件"
-m 后面是本次修改的说明(强烈建议写清楚改了什么)。
- 第三板斧:git push —— 同步到 GitHub 云端
git push origin main
如果是第一次推送,可能需要输入 GitHub 用户名和密码(或 token)。
其他常用命令
git status # 查看当前状态
git log # 查看提交历史
git pull # 从云端拉取最新代码
多动手敲命令,遇到错误别慌——每个报错都是成长的机会。如果在某一步卡住了,不妨回头再看看例子,或者用 man 命令 查阅官方手册。加油 同志们!
1140



被折叠的 条评论
为什么被折叠?



