初阶linux2( Linux 环境基础开发工具使用指南)

张开发
2026/4/21 1:33:23 15 分钟阅读

分享文章

初阶linux2( Linux 环境基础开发工具使用指南)
目录俏皮版 一、软件管家 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|greplrzsz作用列出所有名称包含 lrzsz 的可用软件包并显示版本、架构等信息。点菜安装bashsudoyuminstall软件包名例子安装 lrzszbashsudoyuminstalllrzsz作用自动下载并安装该软件。sudo 是因为需要写入系统目录。撤菜卸载sudoyum remove 软件包名例子卸载 lrzszsudoyum remove lrzsz作用彻底删除软件及其配置文件。文件搬运工 rzsz安装 lrzsz 后在 XShell 等终端中可以直接拖拽文件上传rz 命令或下载到 Windowssz 文件名。 提示所有 yum 操作必须联网可以用 ping www.baidu.com 测试网络。✍️ 二、编辑器 vim —— 键盘上的指尖芭蕾Vim 是 Linux 自带的“神级编辑器”没有鼠标全靠键盘命令。初学可能觉得难但熟练后效率飞升。基本操作进、写、退1.打开/新建文件vim test.c2.按i进入插入模式输入代码3.按Esc回到正常模式4.输入 :wq保存并退出正常模式常用指令末行模式常用指令简单配置vim在家目录创建 .vimrc 文件写入syntax on 语法高亮 set nu 显示行号setshiftwidth4 缩进4空格重启vim后效果立马显现 三、编译器 gcc/g —— 翻译官的故事C/C 代码是人能读的“外语”gcc 负责把它翻译成机器能执行的 0/1 指令。整个过程分为四步完整例子以 hello.c 为例# 1. 预处理gcc-Ehello.c-ohello.i# 2. 编译gcc-Shello.i-ohello.s# 3. 汇编gcc-chello.s-ohello.o# 4. 链接gcc hello.o-ohello ./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-gmyprog.c-omyproggdb 常用命令含例子启动调试gdb myprog调试小实战假设程序第 20 行有 bug我们想看看变量 sum 的变化gdb myprog(gdb)b20# 在第20行打断点(gdb)r# 运行(gdb)psum# 打印当前 sum(gdb)n# 执行下一行(gdb)psum# 再打印对比变化️ 五、自动化构建 make/Makefile —— 懒人必备神器当项目有十几个 .c 文件时手动输入 gcc 命令会让人崩溃。Makefile 就像一个菜谱告诉 make 命令如何一步步编译。Makefile 的核心三要素**1.目标**想生成的文件如 hello**2.依赖**生成目标需要的原材料如 hello.o**3.命令**如何从依赖生成目标如 gcc hello.o -o hello一个完整的例子假设我们有一个 hello.c#includestdio.hintmain(){printf(Hello Makefile!\n);return0;}创建 Makefile 文件注意 Tab 缩进不能用空格hello: hello.o gcc hello.o-ohello hello.o: hello.s gcc-chello.s-ohello.o hello.s: hello.i gcc-Shello.i-ohello.s hello.i: hello.c gcc-Ehello.c-ohello.i .PHONY: clean clean:rm-fhello.i hello.s hello.o hello执行make# 自动编译生成 hello./hello# 运行makeclean# 删除所有临时文件make 的工作原理1.找当前目录下的 Makefile 或 makefile2.执行第一个目标这里是 hello3.如果目标文件不存在或其依赖比它更新就执行对应命令4.依赖又可以触发下层目标形成一个链式反应注意 .PHONY 声明 clean 是伪目标总是执行其命令避免和同名文件冲突。 六、第一个小程序进度条 —— 动态视觉初体验写一个动态刷新的进度条能帮你深刻理解 \r回车、\n换行 以及行缓冲区的概念。前置知识\r 与 \n 的爱恨情仇\n换行Newline将光标移到下一行相同位置在 Linux 中也会隐含回到行首但标准 C 中需要区分\r回车Carriage Return将光标移到当前行行首在老式打字机上\r\n 才是真正的“换到新行行首”。Linux 下通常只用 \n但进度条需要原地刷新所以要用 \r。#includestdio.h#includeunistd.hintmain(){printf(Hello);// 没有 \nsleep(3);// 等待3秒return0;}现象先等待3秒然后才一起打印 Hello。原因printf 默认是行缓冲遇到 \n 或程序结束才刷新。加上 fflush(stdout) 可以立即输出。进度条完整代码与解释#includestdio.h#includeunistd.h#includestring.hintmain(){inti0;charbar[102];memset(bar,0,sizeof(bar));// 清空数组constchar*label|/-\\;// 旋转光标的四种形态注意转义反斜杠while(i100){printf([%-100s][%d%%][%c]\r,bar,i,label[i%4]);fflush(stdout);// 立即刷新不用等 \nbar[i]#;// 填充一个 #usleep(100000);// 休眠 0.1 秒模拟进度}printf(\n);// 最后换行return0;}编译运行gcc progress.c-oprogress ./progress现象会看到一个动态刷新的进度条并且一个小光标在转圈 七、版本控制 git —— 代码的云端储存柜Git 是代码的时光机可以随时回到任意历史版本还能把代码托管到 GitHub 上。sudoyuminstallgitgitconfig--globaluser.name你的名字gitconfig--globaluser.email你的邮箱三板斧实战1. 克隆项目到本地先在 GitHub 上新建仓库复制 HTTPS 或 SSH 地址。gitclone https://github.com/你的用户名/仓库名.gitcd仓库名第一板斧git add—— 告诉 git 要跟踪哪些文件echo# My ProjectREADME.md# 新建一个文件gitaddREADME.md# 添加单个文件gitadd.# 添加当前目录所有改动3.第二板斧git commit—— 在本地拍个快照gitcommit-m添加 README 文件-m 后面是本次修改的说明强烈建议写清楚改了什么。第三板斧git push —— 同步到 GitHub 云端gitpush origin main如果是第一次推送可能需要输入 GitHub 用户名和密码或 token。其他常用命令gitstatus# 查看当前状态gitlog# 查看提交历史gitpull# 从云端拉取最新代码多动手敲命令遇到错误别慌——每个报错都是成长的机会。如果在某一步卡住了不妨回头再看看例子或者用 man 命令 查阅官方手册。加油 同志们

更多文章