跳到主要内容
Linux 环境基础开发工具详解 | 极客日志
C
Linux 环境基础开发工具详解 Linux 环境下常用的基础开发工具,包括 yum 包管理器、vim 编辑器、gcc/g++ 编译器、gdb 调试器、Makefile 构建工具以及 git 版本控制系统。内容涵盖工具安装、基本操作命令、配置方法以及实际代码示例(如 C 语言进度条),帮助开发者快速搭建 Linux 开发环境并掌握核心技能。
月光旅人 发布于 2026/3/23 更新于 2026/4/26 3.2K 浏览引言
Linux 环境下的开发工具非常丰富,是程序员和开发人员进行高效开发的必备基础。本文将深入介绍 Linux 环境下的基础开发工具,包括软件包管理器、文本编辑器、编译器、调试工具、自动化构建工具以及版本管理工具等。通过本文的学习,读者将掌握在 Linux 系统中如何配置开发环境、编写代码、编译、调试以及进行版本控制等关键技能。
一、Linux 软件包管理器 yum
1.1 什么是软件包?
在 Linux 中,软件包是经过预编译、打包的应用程序或工具,它类似于 Windows 系统中的安装程序。软件包可以通过包管理器进行管理,简化软件的安装、更新和卸载过程。常见的软件包后缀包括 .rpm、.deb 等。
1.2 yum 工具简介
yum(Yellow dog Updater, Modified)是 Linux 下非常常用的包管理器,主要应用于 Fedora、RedHat、CentOS 等发行版。它相当于 Linux 系统的"应用商店",用户可以通过 yum 工具轻松地获取和安装各种预编译好的软件包。
yum 的工作原理基于 rpm 包管理系统,但提供了更高级的依赖管理和自动化功能。它可以自动解决软件包的依赖关系,确保安装的软件能够正常工作,而无需手动处理依赖项。
1.3 软件包的安装与卸载
列出已安装的软件包 :使用 yum list installed 可以列出系统中已安装的软件包。
查找软件包 :使用 yum search 可以查找符合条件的软件包,例如查找与 vim 相关的软件包:
yum search vim
卸载软件包 :
sudo yum remove 软件包名
更新软件包 :更新系统中所有软件包到最新版本:
sudo yum update
也可以单独更新某个软件包:
sudo yum update 软件包名
安装软件包 :
sudo yum install 软件包名
例如,安装 gcc 编译器:
sudo yum install gcc
yum 会自动找到相关的依赖包并完成安装。
二、Linux 编辑器 - vim 使用
2.1 vim 的基本概念
vim 是 vi 编辑器的增强版,不仅兼容 vi 的所有命令,还增加了语法高亮、插件支持等特性。vim 是一个多模式编辑器,主要有以下三种模式:
命令模式(Normal mode) :用于控制光标移动、删除、复制文本等。插入模式(Insert mode) :用于编辑文本,按 i 进入插入模式,按 ESC 退出。底行模式(Last line mode) :用于保存、退出、查找等操作,按 : 进入底行模式。
除了这三种主要模式,vim 还有可视化模式(Visual mode),用于文本块的选择与操作。
2.2 vim 的基本操作
删除行 :按 dd 删除光标所在的整行。复制行 :按 yy 复制光标所在行。粘贴行 :按 p 粘贴复制的内容。替换字符 :按 r 替换光标所在的字符。
删除字符 :按 x 删除光标所在的字符。复制与粘贴 :按 yy 复制当前行,按 p 粘贴。撤销操作 :按 u 撤销上一次操作。重做操作 :按 Ctrl + r 重做已撤销的操作。查找字符串 :按 /字符串 进行查找,按 n 查找下一个匹配项。
保存文件::w 退出 vim::q 保存并退出::wq 不保存强制退出::q!
进入后默认处于命令模式,需要按 i 或 a 进入插入模式进行文本编辑。
2.3 vim 的配置 vim 的配置文件通常位于 /etc/vimrc(系统全局配置)和用户目录下的 ~/.vimrc(用户私有配置)。常用的配置选项包括:
语法高亮 :syntax on显示行号 :set nu设置缩进 :set shiftwidth=4启用自动缩进 :set autoindent设置搜索时忽略大小写 :set ignorecase
vim 支持通过插件扩展功能,如文件浏览器插件、语法高亮插件等,可以极大地提高开发效率。常用的插件包括 NERDTree(文件树浏览器)、TagList(代码结构浏览)等。
三、Linux 编译器 - gcc/g++ 使用
3.1 gcc 编译器简介 gcc 是 GNU Compiler Collection 的缩写,是 Linux 系统中常用的 C/C++ 编译器。编译器将源代码转换为计算机可以执行的二进制代码,整个编译过程包括预处理、编译、汇编和链接四个步骤。
gcc 具有强大的功能,可以通过各种编译选项实现不同的优化和功能,如生成调试信息、启用优化等。
3.2 编译过程详解 链接(生成可执行文件) :将目标文件链接为可执行文件:
汇编(生成机器码) :将汇编代码转为目标文件,使用 -c 选项:
gcc -c hello.s -o hello.o
编译(生成汇编代码) :将预处理后的代码转换为汇编代码,使用 -S 选项:
gcc -S hello.i -o hello.s
预处理(宏替换) :将宏定义展开,处理 #include 文件等。使用 -E 选项查看预处理结果:
gcc -E hello.c -o hello.i
在实际使用中,我们通常将这些步骤合并为一个命令来直接生成可执行文件:
3.3 静态库与动态库
静态库 :在编译时将库文件的代码嵌入到可执行文件中,生成的文件较大,但独立性强。动态库 :在运行时链接,生成的可执行文件较小,需要依赖系统中的动态库。
3.3.1 静态库的使用 gcc -c libexample.c -o libexample.o ar rcs libexample.a libexample.o
gcc main.c -L. -lexample -o main
3.3.2 动态库的使用 gcc -fPIC -c libexample.c -o libexample.o gcc -shared -o libexample.so libexample.o
gcc main.c -L. -lexample -o main
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
四、Linux 调试器 - gdb 使用
4.1 gdb 调试器简介 gdb 是 GNU 调试器,用于调试 C/C++ 程序,可以单步执行代码、设置断点、查看变量值等。为了使用 gdb 进行调试,编译时需要加上 -g 选项,生成包含调试信息的可执行文件。
使用 gdb 可以有效地排查代码中的问题,尤其是对于大型项目,通过设置断点和逐行调试,能够发现代码中的逻辑错误和异常。
4.2 常用调试命令
运行程序 :run 或 r,开始执行程序。
查看变量值 :print 变量名 或 p 变量名。
继续运行 :continue 或 c,继续执行程序直到下一个断点。
查看调用栈 :backtrace 或 bt。
退出 gdb :quit。
next 或 n:单步执行,不进入函数内部。step 或 s:单步执行,进入函数内部。
在某行设置断点:break 行号 或 b 行号 在某个函数设置断点:break 函数名 或 b 函数名
4.3 调试实例 gcc -g hello.c -o hello
gdb hello (gdb) break main (gdb) run (gdb) next (gdb) print some_variable (gdb) backtrace (gdb) quit
通过这些命令,开发者可以有效地排查代码中的问题,尤其是在程序崩溃时,通过查看调用栈可以快速定位问题所在。
五、Linux 项目自动化构建工具 - Makefile
5.1 Makefile 的作用 Makefile 是 Linux 项目中常用的自动化构建工具。它定义了编译规则,可以指定文件的编译顺序、依赖关系等。make 工具根据 Makefile 中的规则自动完成编译工作,大大提高了项目的构建效率。
在大型项目中,源码文件往往分布在多个目录下,手动编译这些文件既繁琐又容易出错。通过编写 Makefile,可以自动化完成整个项目的编译、链接等工作。
5.2 Makefile 基本语法 Makefile 由一系列规则组成,每条规则包括目标文件、依赖文件和生成命令。
hello: hello.o
gcc hello.o -o hello
hello.o: hello.c
gcc -c hello.c -o hello.o
在这个示例中,hello 依赖于 hello.o,hello.o 依赖于 hello.c,make 工具会根据依赖关系自动生成最终的可执行文件。
5.3 Makefile 高级用法 自动变量 :Makefile 提供了一些自动变量,例如:
$@:表示目标文件。$<:表示第一个依赖文件。$^:表示所有的依赖文件。
hello: hello.o $(CC) -o $@ $^
CC = gcc
CFLAGS = -g -Wall
hello: hello.o $(CC) $(CFLAGS) hello.o -o hello
通过定义变量,可以简化 Makefile 的编写,并且方便后续的维护和修改。
5.4 清理项目 在 Makefile 中,可以使用 .PHONY 定义伪目标来清理项目:
.PHONY : clean
clean: rm -f hello.o hello
通过执行 make clean,可以删除中间文件,保持项目目录整洁。
六、Linux 第一个小程序 - 进度条
6.1 进度条代码示例 在 Linux 系统中,可以使用 C 语言编写一个简单的进度条程序来演示编程的基本技巧:
#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 );
bar[i++] = '#' ;
usleep(10000 );
}
printf ("\n" );
return 0 ;
}
在这个程序中,进度条通过字符 # 来表示进度,usleep() 用于控制每次更新之间的延迟, 用于将光标移动到行首,达到刷新效果。
6.2 进度条程序的实现原理 进度条程序的核心是利用了控制台的 (回车符)来将光标移动到行首,并用 fflush(stdout) 强制刷新输出缓冲区。这样每次循环都能够覆盖之前的输出,实现类似动态刷新的效果。
通过使用 usleep(10000),可以控制进度条的速度,使其更新更为平滑。该程序的实现非常简单,却展示了控制台应用的一些基本技巧。
七、使用 git 进行版本控制
7.1 安装 git 在 Linux 系统中,可以通过以下命令安装 git:
git 是一个分布式版本控制系统,可以帮助开发者管理源代码、跟踪更改、协作开发。安装完成后,可以使用 git --version 检查安装是否成功。
7.2 Git 基本操作
查看仓库状态 :使用 git status 查看当前仓库的状态,包括哪些文件有更改、哪些文件在暂存区等。
查看提交历史 :使用 git log 查看提交历史。
也可以使用 git add . 将所有更改添加到暂存区。
初始化仓库 :在项目目录下初始化一个新的 Git 仓库:
这将创建一个名为 .git 的隐藏目录,用于存储版本控制信息。
7.3 在 GitHub 上创建项目
注册账号并创建仓库 :在 GitHub 上注册账号并创建一个新的仓库。
同步本地代码到远程仓库 :在本地进行修改后,使用以下命令将更改同步到 GitHub:
7.4 分支管理 分支管理是 Git 的重要特性,可以方便地进行多人协作开发,每个开发者可以在自己的分支上工作,最后再将更改合并到主分支上。
八、总结 本文详细介绍了 Linux 环境下进行开发的基础工具和方法,包括 yum 软件包管理器、vim 编辑器、gcc 编译器、gdb 调试器、Makefile 自动化构建工具以及 git 版本控制工具。通过学习这些内容,读者可以在 Linux 系统中独立搭建开发环境,编写、编译和调试代码,并进行版本管理。
这些工具是每个 Linux 开发者的必备基础,熟练掌握它们将极大地提高开发效率和代码质量。希望本文对大家有所帮助,激发大家对 Linux 开发的兴趣。
相关免费在线工具 Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown转HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
HTML转Markdown 将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
JSON 压缩 通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
JSON美化和格式化 将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online