当前位置: 首页 > news >正文

【Linux操作系统】基础开发工具(yum、vim、gcc/g++)

在这里插入图片描述


文章目录

  • Linux软件包管理器 - yum
    • Linux下的三种安装方式
    • 什么是软件包
    • 认识Yum与RPM
    • yum常用指令
      • 更新软件
      • 安装与卸载
      • 查找与搜索
      • 清理缓存与重建元数据
    • yum源更新
      • 1. 备份现有的 yum 源配置
      • 2. 下载新的 repo 文件
      • 3. 清理并重建缓存
  • Linux编辑器 - vim
    • 启动vim
    • Vim 的三种主要模式
    • 常用操作速查表
    • 配置Vim(~/.vimrc)
  • Linux编译器 - gcc/g++
    • 基本编译流程
    • 一步到位编译命令
    • 调试与优化选项
    • 静态库与动态库相关命令
    • 总结表格(附各阶段示例)
  • Linux系列学习目录


Linux软件包管理器 - yum

Linux下的三种安装方式

Linux系统提供多种软件安装方式,主要包括以下三种:

  1. 源代码编译安装:下载程序源代码后自行编译生成可执行文件
  2. RPM包安装:使用rpm命令直接安装软件包(需自行处理依赖关系)
  3. Yum安装:通过yum工具自动安装软件及其依赖(推荐方式)

什么是软件包

  • 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.
  • yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上

认识Yum与RPM

Yum 如何处理 RPM 包:
当使用 yum install package_name 时,Yum 会:

  • 从配置好的仓库(如 CentOS 官方源、EPEL 等)中查找.rpm包;
  • 自动解析该软件包所依赖的其他 RPM 包;
  • 下载所有需要的 .rpm 文件到本地缓存目录 /var/cache/yum/
  • 使用 rpm -irpm -U 命令进行安装或升级。
操作指令工具
查看已安装的 RPM 包rpm -qarpm
安装 RPM 包rpm -i package.rpmrpm
使用 Yum 安装包yum install packageyum

yum常用指令

注意: 在服务器中下载软件包 ,使用 yum 的话,必须保证网络连接。

更新软件

指令描述
yum check-update检查可更新的软件包
yum update更新所有可升级的软件包
yum update package_name更新指定的软件包

安装与卸载

指令描述
yum install package_name安装指定软件包
yum remove package_name / yum erase package_name删除/卸载软件包

查找与搜索

指令描述
yum list all列出所有可用的软件包
yum list installed列出已安装的软件包
yum search keyword根据关键词搜索软件包
yum info package_name显示某个软件包的详细信息

清理缓存与重建元数据

指令描述
yum clean all清除所有缓存
yum makecache生成新的元数据缓存

yum源更新

一般Linux操作系统,默认配置的yum源是国外的,因此你的yum源访问比较慢,可能需要更新yum源 ----- 替换yum源文件!!!

在这里插入图片描述
可上网搜索国内相关yum源,复制粘贴替换原本文件即可。

1. 备份现有的 yum 源配置

在进行任何更改之前,建议先备份现有的源配置文件。

sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak

2. 下载新的 repo 文件

根据你使用的 Linux 发行版选择合适的镜像源。例如,如果你正在使用 CentOS,并希望切换到阿里云的镜像源,可以执行以下命令

# 移除原有的repo文件
sudo rm -f /etc/yum.repos.d/CentOS-Base.repo# 根据你的CentOS版本下载对应的repo文件
# 对于CentOS 7
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 对于CentOS 8(注意:CentOS 8 已经停止维护,推荐使用 CentOS Stream)
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

3. 清理并重建缓存

替换源之后,需要清理旧的缓存并生成新的缓存信息。

sudo yum clean all
sudo yum makecache

Linux编辑器 - vim

VIM 是 Linux 系统中最强大、最常用的文本编辑器之一,它是 vi 编辑器的增强版本(Vi IMproved)。与普通的文本编辑器不同,vim 是一种模式化编辑器,你需要在不同的模式之间切换来进行编辑和保存操作。

启动vim

vim filename.txt

如果文件不存在,Vim 会新建一个空文件。

Vim 的三种主要模式

模式进入方式功能
普通模式(Normal Mode)默认启动时进入可以进行复制、粘贴、删除等操作
插入模式(Insert Mode) i, a, o 等键进入输入文字,像普通编辑器一样
命令行模式(Command-line Mode)在普通模式下按:执行保存、退出、查找等命令

常用操作速查表

🔹 进入插入模式

按键作用
i在当前光标前插入
I在当前行首插入
a在当前光标后插入
A在当前行末插入
o在当前行下新增一行并插入
O在当前行上新增一行并插入

🔹 保存和退出(命令行模式)

Esc 回到 Normal Mode,再输入 : 进入命令行模式:

命令说明
:w保存(write)
:q退出(quit)
:wq保存并退出
:q!强制退出不保存
:wq!强制保存退出(用于只读文件)
:x类似于 :wq,但只有在有修改时才保存
:e!放弃修改,重新加载原文件

🔹 文本编辑操作(Normal Mode)

操作命令
删除当前字符x
删除整行dd
删除多个字符/行数字 + d(如 5d 删除5个字符)
复制当前行yy
粘贴p(粘贴到光标后)或 P(粘贴到光标前)
撤销u
重做Ctrl + r
移动光标h(左)、j(下)、k(上)、l(右)
跳转到行首0(数字零)
跳转到行尾$
跳转到某一行数字 + G(如 10G 到第10行)
跳转到文件末尾G
跳转到文件开头gg

配置Vim(~/.vimrc)

你可以创建 .vimrc 文件来自定义 Vim 行为:

vim  /etc/vimrc

示例配置内容如下:

set ai                    " 自动缩进,与上一行保持一致的自动空格
set ic                    " 在查询模型与匹配模式下忽略大小写
set number                " 左侧显示行号
set showmatch             " 显示括号配对,并高亮显示相匹配的括号
set showmode              " 文本输入模型下,加亮显示模式指示器
set showcmd               " 在状态栏显示所执行的指令,未完成的指令片段
set warn                  " 长行显示自动折行
set cindent               " 以C/C++模式缩进
set ruler                 " 打开状态栏标尺
set scrolloff=6           " 设置光标离窗口上下6行时窗口自动滚动
set tabstop=4             " 设置Tab长度为4
set wrap                  " 自动换行显示
syntax enable             " 启用语法高亮
syntax on                 " 开启自动语法高亮

Linux编译器 - gcc/g++

gcc(GNU Compiler Collection)是 GNU 提供的一套编译器工具集。g++ 是 GCC 中专门用于编译 C++ 的前端。

以下是 gcc/g++ 常用的命令及其用途说明:

基本编译流程

步骤命令格式说明
预处理gcc -E source.c -o source.ig++ -E source.cpp -o source.i仅进行预处理,生成 .i 文件(宏替换、头文件展开等)
编译gcc -S source.i -o source.sg++ -S source.i -o source.s将预处理后的代码编译为汇编代码,生成 .s 文件
汇编gcc -c source.s -o source.og++ -c source.s -o source.o将汇编代码转换为目标机器码,生成 .o 目标文件
链接gcc source.o -o programg++ source.o -o program将目标文件与库链接,生成最终可执行文件

一步到位编译命令

功能命令格式说明
编译 C 程序gcc source.c -o program使用 GCC 编译 C 源文件,输出可执行程序 program
编译 C++ 程序g++ source.cpp -o program使用 G++ 编译 C++ 源文件,输出可执行程序 program
编译并启用标准(C11)gcc -std=c11 source.c -o program指定使用 C11 标准
编译并启用标准(C++17)g++ -std=c++17 source.cpp -o program指定使用 C++17 标准

调试与优化选项

选项含义
-g生成调试信息,便于 gdb 调试
-O0, -O1, -O2, -O3设置不同的优化级别(数字越大优化程度越高)
-Wall开启所有警告信息
-Wextra显示额外警告
-pedantic对不符合标准的语法报错

静态库与动态库相关命令

功能命令格式说明
创建静态库(.aar rcs libmylib.a file1.o file2.o使用 ar 工具将多个 .o 文件打包成静态库
创建动态库(.sog++ -shared -fPIC -o libmylib.so file1.o file2.o生成动态链接库(共享库),需使用 -fPIC 生成位置无关代码
编译时链接静态库g++ main.cpp -L. -lmylib -o program链接当前目录下的静态库 libmylib.a
编译时链接动态库g++ main.cpp -L. -lmylib -o program链接当前目录下的动态库 libmylib.so
运行时指定动态库路径export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH设置环境变量,使系统能找到自定义的 .so

总结表格(附各阶段示例)

阶段输入文件输出文件工具示例命令
预处理hello.chello.i预处理器gcc -E hello.c -o hello.i
编译hello.ihello.s编译器gcc -S hello.i -o hello.s
汇编hello.shello.o汇编器gcc -c hello.s -o hello.o
链接hello.ohello链接器gcc hello.o -o hello

Linux系列学习目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加,添加超链接

相关文章:

  • sendDefaultImpl call timeout(rocketmq)
  • 【Python】屏幕像素颜色值的获取
  • SpringBoot-17-MyBatis动态SQL标签之常用标签
  • Unity的日志管理类
  • 【CF】Day78——⭐Codeforces Round 876 (Div. 2) D (LIS | 思维 | DP)
  • 15-Oracle 23ai Vector Search Similarity Search-向量相似性和混合搜索-实操
  • go工具库:hertz api框架 hertz client的使用
  • 【数据结构】详解算法复杂度:时间复杂度和空间复杂度
  • 使用python实现奔跑的线条效果
  • TTL简述
  • 基于算法竞赛的c++编程(20)函数的递归
  • OpenLayers:封装Tooltip
  • stm32—ADC和DAC
  • Linux操作系统故障应急场景及对应排查方法
  • 湖北理元理律师事务所:债务优化中的民生保障实践
  • FreeRTOS任务之深入篇
  • 关键字--sizeof
  • Python抽象基类实战:构建广告轮播框架ADAM的核心逻辑
  • robot_lab train的整体逻辑
  • SDC命令详解:使用set_propagated_clock命令进行约束
  • 自助建站优化排名/百度推广seo自学
  • 旅行社b2b网站建设方案/全国人大常委会副委员长
  • 广州 营销型网站建设/关键词检测工具
  • 上海城隍庙在哪个区/系统优化软件哪个好
  • 西樵网站建设公司/电脑培训机构
  • 肥城市住房和城乡建设厅网站/微信营销推广软件