跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Shell / Bash

Linux 新手入门:软件安装、Vim 操作与 GCC 编译基础工具链

综述由AI生成面向 Linux 初学者,系统介绍了软件安装的三种方式(源码、rpm、yum),rz/sz 文件传输指令的使用前提及方法。详细讲解了 Vim 编辑器的三种模式切换、常用快捷键及配置文件设置。最后深入解析了 GCC 编译流程(预处理、编译、汇编、链接),对比了动态库与静态库的区别,以及 Debug 与 Release 版本的差异,帮助读者掌握 Linux 开发环境的基础工具链。

GRACE Grace发布于 2026/3/21更新于 2026/4/2614 浏览
Linux 新手入门:软件安装、Vim 操作与 GCC 编译基础工具链

Linux 新手入门:软件安装、Vim 操作与 GCC 编译基础工具链

引言

刚上手 Linux 时,常会遇到软件安装方式选择困难、文件传输不熟悉、编辑器操作不熟练以及编译链接报错等问题。本文旨在梳理 Linux 基础工具的核心逻辑,涵盖软件安装流程、文件传输指令、代码编辑技巧及编译链接原理,帮助读者建立扎实的开发环境基础。

Linux 安装软件的几种方法

Linux 安装软件主要有三种方式:

  1. 源代码安装
  2. RPM 安装
  3. YUM 安装(类似 Windows 应用商城,推荐使用)

rz 和 sz 指令

  • rz:从本地上传文件到远程 Linux 服务器(支持拖拽方式)
  • sz:从远程 Linux 服务器下载文件到本地计算机

前提条件:Linux 系统需安装 lrzsz 包。

yum 指令

使用 yum 时需保证虚拟机网络畅通。

查看可安装的软件:yum list 通常配合管道筛选需要的包。

  • x86_64 后缀表示 64 位系统的安装包
  • 版本号示例:0.12.20-36
  • el7 表示操作系统发行版版本(CentOS 7)
  • base 表示软件源名称

yum 下载和卸载软件

下载命令:yum install -y lrzsz.x86_64

  • -y 参数表示自动确认,不再询问是否下载。

卸载命令:yum remove -y lrzsz

注意事项:

  1. yum 安装软件通常需逐个进行,但卸载可以同时卸载多个。
  2. 执行 yum 操作需要 root 权限或 sudo 授权。

引申知识:

  • 查看 yum 源配置:ls /etc/yum.repos.d/
  • 扩展 yum 源:yum install -y epel-release
  • yum 源概念:存放各种软件包的仓库。默认配置可能为国外源,访问较慢;虚拟机建议替换为国内源,服务器通常由厂商预配置。

vim 指令

Vim 是一个多模式的文本编辑器。 输入 vim 文件名 后进入全屏幕编辑画面。若文件不存在,Vim 会创建空文件;若未保存退出,文件将丢失。

Vim 模式切换示意图

上图展示了各模式间的切换方法(命令模式又称正常模式)。注意:插入模式和底行模式间不能直接切换。 第四种模式:Shift+R 为替换模式,直接在原有内容上书写,原有内容会被覆盖。

多文件操作方法: 在底行模式输入 vs 文件名 可同时打开另一个文件。使用 Ctrl+w 可在窗口光标间切换,当前光标所在的窗口即为操作目标。

Vim 三个模式下的一些键位的功能

命令模式:

  • HJKL:移动光标
  • Ctrl+v:块选择
  • d:删除
  • u:撤销

底行模式:

  • w:保存文件
  • q:退出文件
  • wq:保存并退出
  • w! / q! / wq!:强制保存或退出

批量注释方法:

  1. 命令模式下按 Ctrl+v,使用 HJKL 选中区域。
  2. 按 Shift+i 切换到插入模式,输入 //,再切回命令模式。 取消批量化注释:
  3. 命令模式下 Ctrl+v 选中区域。
  4. 输入 d 即可删除。

Vim 的配置

系统公共配置文件位于 /etc/vimrc,对所有用户有效。 用户私有配置文件位于主目录下,命名为 .vimrc(如 /root/.vimrc),不存在时可手动创建(touch .vimrc)。 建议每个用户独立配置,避免相互影响,且不建议对 root 账户做过多配置。

常用配置选项(写入 .vimrc):

syntax on
set nu
set shiftwidth=4

GCC 编译器使用

gcc 针对 C 语言,g++ 支持 C++ 和 C。C/C++ 开发环境不仅指编译器,还包括头文件和库文件。

背景知识

一份代码成为可执行程序需经历四个步骤:

  1. 预处理
  2. 编译(生成汇编)
  3. 汇编(生成机器码)
  4. 链接(生成可执行文件或库文件)

预处理阶段主要进行:去注释、头文件展开、条件编译、宏替换。

用法

基本格式:gcc [选项] 要编译的文件 [选项 目标文件] [-g] [-static]

  • 添加 -static 选项后,所有链接变为静态链接。
  • 添加 -std=c98 指定标准版本。
  • 默认发布方式为 Release,添加 -g 生成 Debug 版本。
  • 一步到位示例:gcc text.c -o text
  • 若不指定输出文件名,默认为 a.out。
  • 运行程序:./a.out(需写出相对路径或绝对路径)。

编译过程详解:

  • 预处理到编译结束:生成中间文件。
  • 到汇编结束:生成 .o 文件(可重定位二进制文件/目标文件),不可独立执行,需连接。
  • 有可执行权限和有可执行能力是两回事。
  • 到链接结束:将目标文件和库连接形成可执行程序。

GCC 常用选项:

  • -o:指定输出文件名称。
  • -g:生成带有调试信息的可执行文件。

动态链接和静态链接

.o 文件通过动态链接与动态库相连,若动态库缺失会导致问题(跳转执行后返回)。 编译器使用静态库进行静态链接时,会将库的方法拷贝到目标程序中,后续无需依赖静态库。

Linux 中编译默认采用动态链接。如需静态链接,需添加 -static 选项。 一个可执行程序内部可能混合动态链接和静态链接。

动态库 (也叫共享库) 和静态库

库的概念:将源文件经过翻译打包,仅分发库文件以隐藏源码。 命名规则:libname.so.xxx

  • name 为库名。
  • xxx 为版本号。
  • lib 为固定前缀。
  • so 表示动态库。

Linux 下:

  • .so 是动态库。
  • .a 是静态库。

一般系统默认安装动态库,静态库不会默认安装。 安装静态库示例:yum install -y glibc-static

若无静态库却使用 -static 选项,编译将失败。 若无动态库只有静态库,默认方式(动态链接优先)仍可工作。

动态库 vs 静态库
  • 动态库:共享库,优点在于节省资源(磁盘空间、内存空间、网络空间)。
  • 静态库:优点在于不依赖外部库,程序可独立运行。

debug 版本和 release 版本

  • debug 版本:可追踪调试,包含调试信息,体积较大。
  • release 版本:不可调试,运行速度快,体积较小。

扩展:可执行程序并非无序二进制,遵循 ELF 格式。

目录

  1. Linux 新手入门:软件安装、Vim 操作与 GCC 编译基础工具链
  2. 引言
  3. Linux 安装软件的几种方法
  4. rz 和 sz 指令
  5. yum 指令
  6. yum 下载和卸载软件
  7. vim 指令
  8. Vim 三个模式下的一些键位的功能
  9. Vim 的配置
  10. GCC 编译器使用
  11. 背景知识
  12. 用法
  13. 动态链接和静态链接
  14. 动态库 (也叫共享库) 和静态库
  15. 动态库 vs 静态库
  16. debug 版本和 release 版本
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • VSCode Copilot 认证失败排查与修复实战
  • OpenGlass:大模型赋能的开源智能眼镜方案,支持语音控制与 AR 叠加
  • Python 推导式底层实现:从语法糖到 CPython 字节码分析
  • Linux 进程状态详解:内核视角与代码实例
  • whisper.cpp 完整使用指南:从安装到高级配置
  • voidImageViewer:轻量级图像查看工具,支持 GIF/WEBP 动画
  • 宇树 G1 人形机器人强化学习训练实战指南
  • Python+ROS2 通用智能系统工业级通信框架
  • 医疗 AI Agent 可信构建:不确定性治理与贝叶斯增强
  • IntelliJ IDEA 接入 AI 编程助手:Copilot、DeepSeek 及 GPT-4o Mini
  • 机器人通讯总线选型:CAN/FD、高速 485 与 EtherCAT 深度对比
  • 基于 LangChain 与 Gradio 构建个人知识助理
  • 本地 AI 绘画:麦橘超然 Flux 控制台部署与使用
  • Fast-GitHub GitHub 加速插件使用指南
  • 数据结构实战:链表经典面试题解析
  • Win10 升级后频繁弹出 Copilot 窗口?彻底禁用与关闭指南
  • Python 调用同花顺问财 API 获取金融数据实战指南
  • OpenClaw Web UI 无法访问问题排查与解决
  • 4 位全加器设计与七段数码管显示实现
  • Gemini 辅助影视分镜头脚本自动生成实战指南

相关免费在线工具

  • 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