【Linux】Linux 基础开发工具(yum、vim、gcc/g++、gdb、make/makefile、git)

📒博客主页:Morning_Yang丶
🎉欢迎关注🔎点赞👍收藏⭐️留言
📌本文所属专栏: 【Linux】
🙏作者水平有限,如果发现错误,敬请指正!感谢感谢!

一、Linux 软件包管理器 yum

1.1 软件包

  • 在Linux下安装软件, 一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。
  • 但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。
  • 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系。
  • yum (Yellow dog Updater, Modified) 是 Linux 下非常常用的一种包管理器(工具)。主要应用在 Fedora, RedHat, Centos 等发行版上。

Linux 下安装软件的方式:

  • 源代码安装
  • rpm 包安装
  • yum 工具(yum 是一条命令)

总结:

  • yum 是什么?
    • 我们在 Linux 中下载资源的一种工具,类似于手机上的应用商店。
  • yum 可以为我们提供什么服务呢?
    • 查找、安装、卸载资源。
    • 解决依赖关系。

我们在手机应用商店上面搜索下载软件,本质是在该公司的后端服务器上搜索下载软件。

思考:那么应用商店如何知道该去哪个服务器上下载软件呢?

  • 这个应用商店在本地一定有相关软件的配置信息(比如软件名和其对应的下载链接)。

  • 所以 yum 工具中一定也有配置文件,指明我们应该去哪里下载资源。

  • sudo yum install -y epel-release 拓展源

    有些服务是非标准的,放在其他库,所以需要拓展源

1.2 搜索 & 安装 & 卸载软件包

查看软件包yum list 命令

通过此命令可以罗列出当前一共有哪些软件包。由于包的数目非常之多,一般配合管道(grep 命令)筛选出我们关注的包。

例如:

$ sudo yum list | grep lrzsz

这个指令的含义是:通过管道把yum检索的结果传递给grep,过滤其中包含lrzsz的软件包。

结果如下:

# 软件包的名称和版本
lrzsz.x86_64                             0.12.20-36.el7                @os 

lrzsz是一个用于文件的上传和下载的工具

  • rz(zmodem file receive)接收到Linux端
  • sz(zmodem file send)发送到windows机器

注意:

  • 第 1 列:软件包名称,主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构。

    “x86_64” 后缀表示64位系统的安装包,“i686” 后缀表示32位系统安装包,选择包时要和系统匹配。

  • 第 2 列:“el7” 表示操作系统发行版的版本,“el7” 表示的是 centos7/redhat7。

  • 第 3 列:表示的是 “软件源” 的名称,即该软件包的发布方,类似于 “微信官网”,“华为应用商店” 这样的概念。

安装软件yum install 命令

$ sudo yum install -y sl # 一个好玩的东西,可以在屏幕上跑一个小火车,大家可以去试一试

yum 会自动找到都有哪些软件包需要下载,-y 表示直接安装,中途不需要确认。

注意:

  1. 安装软件时由于需要向系统目录中写入内容,一般需要 sudo 命令或者切到 root 账户下才能完成。
  2. yum 安装软件只能一个装完了再装另一个。在 yum 安装一个软件的过程中,如果再尝试用 yum 安装另外一个软件,yum 会报错。

卸载软件yum remove 命令,不是unistall

$ sudo yum remove -y sl # 卸载sl软件以及它的依赖包

yum search 搜索包含指定关键字的软件包

更新 yum 源

  • yum 的配置文件 /etc/yum.conf,这个一般不要去改动。

  • 在 yum 配置路径下,会有 yum 源:

    [yzy@VM-4-4-centos day5]$ ls /etc/yum.repos.d/ # 查看yum源
    CentOS-Base.repo  CentOS-Epel.repo  epel.repo  epel-testing.repo
    
    # CentOS-Base.repo: yum源,要求软件可靠稳定才能放进yum源中,这里的软件版本迭代比较慢
    # CentOS-Epel.repo: 扩展源,比如某个软件新开发的版本,就可以放到epel源中
    

    在 CentOS-Base.repo 文件中可以进行软件源(即软件的下载链接)的配置,当你使用 yum install 安装软件时,就会去对应的服务器上下载软件。

    执行 vim /etc/yum.repos.d/CentOS-Base.repo

    image-20220604191653793

以下命令正确的是

A.yum makecache命令的功能是将服务器的软件包信息缓存到本地

B.yum search命令可以在所有软件包中搜索包含有指定关键字的软件包

C.yum clean all 命令可以清除缓存中老旧的头文件和软件包

D.yum upgrade命令可以更新所有的rpm软件包

答案解析

yum工具在每次安装指定软件包的时候,都会检测源服务器上的软件包信息,为了便捷不用每次都去搜索软件包信息,因此使用 yum makecache将软件包信息缓存到本地,使用 yum clean all 清理老旧的缓存信息。因此A和C是正确的

yum search 用于在搜索包含有指定关键字的软件包,B也是正确的

D选项:

yum -y update:升级所有包同时,也升级软件和系统内核;

yum -y upgrade:只升级所有包,不升级软件和系统内核,软件和内核保持原样。 所以D选项不完整严谨

正确答案是:A,B,C


1.3 拓展:rz/sz 工具

功能:这个工具用于本地 windows 机器和远端的 Linux 服务器通过 XShell 传输文件。

安装 rzsz 工具:

$ sudo yum install -y lszrz  # lszrz是要安装的软件名称

安装完毕之后可以通过拖拽的方式将文件上传过去。

用法

  1. rz 命令,上传 windows 中的文件到远端 Linux 服务器中:

    $ rz # 运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器,上传到服务器的路径为当前执行rz命令的目录。
    
  2. sz 命令,将选定的文件发送到本地 windows 机器:

    $ sz filename # filename是文件名
    

二、Linux 开发工具

我们在 windows 中编写 C/C++ 程序时,常用的 VS,是一个集成开发环境,包含了很多工具包。

而 Linux 下开发,大部分情况下都是使用的一个一个独立的工具。比如编写代码用 vim,编译代码用 gcc,调试代码用 gdb。

2.1 编辑器 - vim

为什么使用 vim 呢?因为它是所有 Linux 环境下自带的。

vi / vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 mac os、windows。

image-20220604192853281


① vim 的基本概念

vim 的常见三种模式(其实有好多模式,掌握常见这 3 种即可)的功能如下:

  • 正常 / 普通 / 命令模式(Normal mode)

    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 模式或者 last line mode 模式下。

  • 插入模式(Insert mode)

    只有在 Insert mode 模式下,才可以做文字输入编辑。

  • 底行模式(last line mode)

    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。

    如果要查看你的所有模式:打开 vim,底行模式直接输入 :help vim-modes

拓展

安装vimforcpp插件

在使用vim前,可以安装一个vimforcpp插件,方便写C/C++代码。初学时不了安装和配置可以直接复制下面这段指令到命令行中:

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

常见错误

在这里插入图片描述
如果上一次编辑时异常退出了,就会产生这样的警告,这是因为异常退出导致.swp文件没有删除,当进入vim时遇到这样的警告,按"d"将.swp文件删除即可。


② vim 的基本操作

刚进入 vim 编辑器时,是处于「正常模式」下的,你要切换到「插入模式」才能够输入文字。

  • 「正常模式」切换至「插入模式」,有 3 种方式:
    • 按「i」进入插入模式后,从当前光标所在位置开始输入文字。
    • 按「a」进入插入模式后,从当前光标所在位置的下一个位置开始输入文字。
    • 按「o」进入插入模式后,插入新的一行,从行首开始输入文字。
  • 「插入模式」切换至「正常模式」
    • 按「ESC」键。
  • 「正常模式」切换至「末行模式」
    • 按下「shift + :」,其实就是输入「 : 」冒号。
  • 退出 vim 操作,在「正常模式」中输入「 : 」冒号进入「末行模式」,然后输入:
    • w(保存当前文件)
    • wq(保存当前文件并退出 vim)
    • q!(不保存强制退出 vim)

image-20220604222506909


③ vim 在命令模式中的命令集 (🌟)

移、删、复、替、撤、更、跳,这是正常模式常用的七个类型的指令。

移动光标

  • vim 可以直接用键盘上的方向键来控制光标上下左右移动,但正规的 vim 是用小写英文字母「h」、「j」、「k」、「l」来分别控制光标向左、下、上、右移一格。
  • 按[gg]:移动到文本的开始
  • 按「shift+g / G」:移动到文章的最后
  • 按「 $ 」:移动到光标所在行的 “行尾”
  • 按「^」:移动到光标所在行的 “行首”
  • 按「w」:光标跳到下个字的开头(以单词为单位)
  • 按「e」:光标跳到下个字的字尾(以单词为单位)
  • 按「b」:光标回到上个字的开头(以单词为单位)
  • 按「#l」:光标移到该行的第 # 个位置,如:5l、56l
  • 按「#G」:光标移动到第 # 行
  • 按「#j / k」光标向下 / 上移动 # 行
  • 按「ctrl」+「b」:光标往上移动一页
  • 按「ctrl」+「f」:光标往下移动一页
  • 按「ctrl」+「u」:up 光标往上移动半页
  • 按「ctrl」+「d」:down 光标往下移动半页

删除文字

  • 「x」:每按一次,删除光标所在位置的一个字符(常用
  • 「#x」:例如,「6x」删除光标后面6个字符(包括光标所在位置)
  • 「shift+x / X」:大写的 X,每按一次,删除光标所在位置的 “前面” 一个字符(不包括光标所在位置)
  • 「#X」:例如,「20X」表示删除光标所在位置的 “前面” 20个字符
  • 「dd」:删除光标所在行(常用
  • 「#dd」:从光标所在行开始删除 # 行

👉 这里的删除本质上都是剪切,可以通过p进行粘贴。

复制文字

  • 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  • 「#yw」:复制 # 个字到缓冲区。
  • 「yy」:复制光标所在行到缓冲区。(常用
  • 「#yy」:例如,「6yy」表示拷贝从光标所在的行(包含自己在内) “往下数” 6 行文字。
  • 「p」:将缓冲区内的字符粘贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。(常用
  • 「#p」:将缓冲区内的字符粘贴 # 份到光标所在位置。
  • yy + p:复制粘贴
  • dd + p:剪切粘贴

替换操作

  • 「r」:替换光标所在处的字符(局部文本替换)。(常用
  • 「R」:替换光
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morning_Yang丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值