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

一、Linux 软件包管理器 yum

1.1 软件包

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

Linux 下安装软件的方式:

  • 源代码安装

  • rpm 包安装

  • yum 工具(yum 是一条命令)

总结:

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

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

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

  • 这个应用商店在本地一定有相关软件的配置信息(比如软件名和其对应的下载链接)。
  • 所以 yum 工具中一定也有配置文件,指明我们应该去哪里下载资源。

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

查看软件包yum list 命令

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

例如:

$ sudo yum list | grep lrzsz

结果如下:

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

注意:

  • 第 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 命令

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

更新 yum 源

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

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

    [ll@VM-0-12-centos 5]$ 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

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++ 程序时,常用的 VS2019,是一个集成开发环境,包含了很多工具包。

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

2.1 编辑器 - vim

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

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

image-20220604192853281
2.1.1 vim 的基本概念

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

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

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

  • 插入模式(Insert mode)

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

  • 底行模式(last line mode)

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

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


2.1.2 vim 的基本操作

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

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

2.1.3 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」:屏幕往 “后” 移动半页
  • 按「ctrl」+「d」:屏幕往 “前” 移动半页

删除文字:

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

复制文字:

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

替换操作:

  • 「r」:替换光标所在处的字符(局部文本替换)。(常用
  • 「R」:替换光标所到之处的字符,直到按下「ESC」键为止(整体文本替换)。

字母大小写转换:

  • 「shift+~」:先按下 shift 键,再按下波浪号 ~ 不要停,往后遇到的所有小写字母将被转成大写,所有大写字母将被转成小写。

撤销上一次操作:(常用

  • 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次 “u” 可以执行多次恢复。
  • 「ctrl + r」: 撤销的恢复。

更改操作:

  • 「cw」:更改光标所在处的字到字尾处。
  • 「c#w」:例如,「c3w」表示更改3个字。

跳至指定的行:

  • 「ctrl」+「g」列出光标所在行的行号。
  • 「#G」:例如,「15G」表示移动光标至文章的第 15 行行首。

2.1.4 vim 在末行模式中的命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再输入「 : 」冒号即可进入末行模式。

列出行号:

  • 「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

跳到文件中的某一行:

  • 「#」:# 号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15,再回车,就会跳到文章的第 15 行。

查找字符命令:

  • :/word:向光标之下寻找一个名称为 word 的字符串,如果第一次找的关键字不是您想要的,可以一直按「n」键向下继续寻找该关键字。(常用
  • :?word:向光标之上寻找一个字符串名称为 word 的字符串,如果第一次找的关键字不是您想要的,可以一直按「n」键向上继续寻找该关键字。

批量化替换字符命令:

  • :%s/printf/cout/g(把文中所有 printf 替换成 cout,g --global 表示全局的意思)(常用

查看函数手册命令:

  • :!man [选项] [函数名](按 q 退出手册)(常用

保存文件命令:

  • 「w」: 在冒号输入字母「w」就可以将文件保存起来。可以跟一个感叹号「 w! 」强制保存。

退出 vim 命令:

  • 「q」:按「q」就是退出,如果无法退出 vim,可以跟一个感叹号「 q! 」强制退出 vim。
  • 「wq」:一般建议退出时,搭配「w」一起使用,这样在退出的时候还可以保存文件。(常用

多文件多屏操作:

  • 比如ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值