前言
**欢迎观看Linux系列文章!!**第4篇主要讲述了++Linux软件包管理器++ 、++Vim编译器的使用++ 、++gcc/g++编译器的使用++ 和++管理员组的加入++。
目录
Linux软件包管理器
如何在Linux下安装软件:
①源代码安装。容易出现跨平台问题,或者代码问题,不推荐。
②rpm包安装,但是不包含可执行文件所需的依赖环境,可能导致无法运行。
③使用软件包管理器进行安装(如yum / apt )。

就像是手机的应用商店一样,可以搜索、下载并安装需要的软件。
安装指令:
bash
yum install [-y] xxxxx
卸载指令:
bash
yum remove [-y] xxxxx
-y选项:无需询问确认,直接执行。
安装源
此为Centos的稳定软件源。

此为Centos的扩展软件源。

想要切换软件源,只用更改这里的配置文件即可,这里不多展示。
Vim编译器
是一个专注的编辑器,只负责代码编写,是多模式的编辑器,Linux自带的最经典的编辑器。
简单使用Vim
①先创建一个文件

②使用Vim编辑器打开
指令如下:
bash
vim code.c

一般来说,Vim打开之后默认是命令模式,无法操作(有的系统可能默认的是插入模式,可以直接编辑)。
英文键盘输入 i,进入插入模式

此时,就可以开始编辑该文件了。

Ctrl + c(或Esc)退出插入模式,英文键盘输入 :w(带上冒号),按下回车,将刚刚编辑的内容写入文件中,即保存。

底部显示written,成功写入。若创建的是新文件,编辑后没有保存,那么创建的新文件会直接删除。
同样英文键盘,输入 :qa!(带上冒号),按下回车,退出Vim。
bash
cat code.c
查看文件可以发现刚刚编辑的内容已经全部写入文件中。

可以对编写的代码用gcc编译(gcc工具下文会详细说明)

Vim增强插件
bash
# 安装vim-enhanced(CentOS7默认自带,缺失则执行)
yum install -y vim-enhanced
作用:
开启语法高亮
写代码、配置文件时关键字、字符串、注释会自动变色
支持鼠标操作
可以用鼠标点、滚动、选中复制
支持更多编辑功能
代码自动缩进、对齐
括号匹配高亮 showmatch
多窗口、多标签页编辑
高级搜索、替换、正则功能
支持更多文件类型识别(Python/Java/JS/HTML 等)
支持系统剪贴板
可以和外部复制粘贴(+y / +p)
没装增强版:无法和系统剪贴板互通
支持更多编码、中文正常显示
UTF-8、GBK 等编码处理更完善
避免中文乱码、排版错乱
Vim多模式
支持多种模式,主要用到的是插入模式、命令模式、底行模式、替换模式、视图模式。

打开Vim,默认进入命令模式,此时你输入任何内容都会被当作指令,所以你任意输入的内容他没有反应,他认为你输入了无效的或者不支持的指令。
命令模式下,输入 i,进入插入模式,插入模式就是普通的文本编辑模式,这里不多赘述。
命令模式下,输入 :,进入底行模式,光标会被锁定在底行进行输入。
命令模式下,输入 R,进入替换模式。
命令模式下,输入 Ctrl + v,进入替换模式。
命令模式
命令模式下,你输入的命令在右下角显示,通过命令提高编辑效率

光标定位
Vim模式无法使用鼠标(某些版本,鼠标可以参与编辑),除了使用方向键,还可以用指令快速定位指定行,对于大文本尤其有用。
bash
[行号]gg
如上命令,可将光标快速定位到指定行,若不输入行号,就默认为第一行。
bash
[行号]G
如上命令,可将光标快速定位到指定行,若不输入行号,就默认为最后一行。
bash
$
将光标定位到当前行行尾。
bash
^
将光标定位到当前行行首。
bash
h
j
k
l
以上四键,可以代替方向键。
h:左;j:下;k:上;l:右。
这是为了适配没有方向键的键盘。
ps:鼠标滚轮可以代替j、k使用
bash
w
b
按单词为单位,快速前后移动光标。
w:向后文走;b向前文走。
补充:
每个文件上一次关闭时,光标在哪,下次打开光标就默认在哪。
其次,可以自行设置Vim打开文件后光标的位置。
bash
vim code.c +8

打开文件code.c并将光标放置在第八行开头。
复制粘贴剪切
bash
[复制行数]yy
复制当前行开始的n行内容(不输入行数默认1行)。
bash
[粘贴次数]p
粘贴n次到下一行(不输入行数默认1次)。
cpp
[剪切行数]dd
剪切当前行开始的n行内容(不输入行数默认1行)。
也可以用dd来删除,但是会覆盖剪贴板。
撤销
在不退出Vim的情况下,才可以一直撤销,即使保存了也可以撤销。
bash
u
撤销上一步操作。
bash
Ctrl + r
取消上一次撤销。
删除
bash
x
小写x,往后一个一个字符删除。
bash
X
大写X,往前一个一个字符删除。
当然也可以用之前的dd删除。
替换转换
bash
[替换字数]r[替换字符]
从当前字符开始,把n个字符替换为指定字符。
bash
~
选中字符进行大小写切换。
切换模式
bash
R
进入替换模式,输入时会从依次替换原有字符。
bash
a
i
o
进入插入模式,
a:进入插入模式,并且光标往后走一个字符。
i:进入插入模式。
o:进入插入模式,并往下新建空行。
bash
:
进入底行模式,并等待输入底行命令。
bash
Ctrl + v
进入视图模式。
退出Vim
bash
ZZ
退出,并保存。
bash
:wq
也可进入底行模式,保存并退出。
底行模式
bash
w
q
![command]
w:保存。
q:退出Vim。
! :强制执行保存或者退出(在修改如配置文件等重要文件时,系统会询问或者阻拦);
也可以在不退出Vim的情况下,使用Linux命令进行调试。
三者可任意组合。
bash
set nu
set nonu
set nu:设置行号;
set nonu:取消行号。
bash
/[关键字] + 回车ENTER
定位到文本中从当前光标位置开始的第一个关键字,后续每按一次n键,向下匹配一个关键字。
bash
vs [文件名]
分屏打开两个文件,可进行对比。但是只能操控光标所在的文件。若文件不存在,会在当前路径自动生成新文件。
bash
Ctrl ww
分屏情况下,可切换文件操作,将光标移动到另一个文件中进行操作。
批量化替换
bash
%s/[被替换词]/[替换词]/ [g]


printf批量替换为print

如果不加g,同行重复出现的替换词不进行替换。
视图模式
批量化插入
①Ctrl + v进入视图模式

②通过hjkl,操控光标,选中区域

③shift + i进入插入模式

④输入注释符 //

⑤点击Esc完成批量注释。

批量化删除
①Ctrl + v进入视图模式。

②hjkl方向键选择要删除的注释符 //

③输入d完成批量删除

Vim配置
就像设置一样,完成配置可以省去每次打开Vim时的操作。
配置文件
bash
vim ~/.vimrc
配置当前用户的Vim,不会影响其他用户。
bash
vim /etc/vimrc
配置全局(影响所有用户),就修改/etc/vimrc。
该文件可能不存在,不存在创建即可。
添加配置
bash
//显示行号
set number
//自动缩进
set autoindent
//智能缩进
set smartindent
//制表符=4个空格
set tabstop=4
//缩进宽度=4个空格
set shiftwidth=4
//退格键删除制表符时,删除4格
set softtapstop=4
//把制表符转换为空格
set expandtab
//高亮显示当前行
set cursorline
//启用鼠标支持(所有模式)
set mouse=a
//开启语法高亮
syntax enable
//显示匹配的括号
set showmatch
//搜索时忽略大小写
set ignorecase
//搜索时智能大小写(有大写则区分)
set smartcase
//搜索结果高亮
set hlsearch
//输入搜索内容时实时高亮
set incsearch
//不创建备份文件(xxx.conf~)
set nobackup
//不创建交换文件(.swp)
set noswapfile
//不创建临时文件,该文件保存时自动删除(.xxx.swp)
set nowriteback
//编码设置为UTF-8
set encoding=utf-8
set fileencodings=utf-8,gbk,gb2312
//右侧显示状态栏
set laststatus=2
//命令行高度
set cmdheight=1
//显示光标位置(行、列、所处文件内容百分比处)
set ruler
//模仿notepad、Windows记事本的快捷操作习惯,支持Ctrl+z,Ctrl+s,Ctrl+a等
behave mswin
//不管光标在哪,退格键都能正常删除,和你用的所有现代编辑器行为一致
set backspace=indent,eol,start
//实时显示你在普通模式下输入的未完成命令
set showcmd
//开启「增量搜索」:你在输入搜索关键词的过程中,Vim 会实时高亮匹配到的内容,不用等输完按回车才跳转。
set incsearch
还不止这些,有需要可以上浏览器查询或者使用AI大模型询问,这里不多赘述。

推荐使用这些(其中有部分配置已经是默认配置,为避免遗漏,最好都加上)。
补充指令
bash
i[历史命令首字母]
快捷执行历史指令,不用重新再输入完整指令。
使用场景:
bash
gcc code.c -o code
我们可以用这行命令去编译C语言文件,如果我们对code.c进行多次修改,就不用再多次编译了。
直接输入
bash
!g
快速编译,相当于执行了
bash
gcc code.c -o code
以此类推,还有:! l == l l 等等。
编译器gcc/g++
gcc只能编译C语言,g++可以编译C语言和C++(g++是兼容的,且使用方法同gcc)。
编译选项
bash
gcc [选项] [要编译的文件] [选项] [目标文件]
编译代码分为四个步骤:预处理、编译、汇编、链接。
先把code.c修改为如图

预处理
目的是:去注释、替换宏、条件编译、展开头文件。

-E
对文件进行编译,到预处理步骤停止。
-o
指明形成的目标文件名称
预处理完成后,代码变成728行


预处理把头文件都展开了,条件编译不符合条件的也被省略。
头文件在安装Linux系统时,就安装在了/usr/include目录中,

除了开发工具还得有配套的库,就是如上的头文件。
编译
目的是生成汇编语言。

-S
对文件进行编译,直到生成汇编语言停止。
全变为汇编语言

汇编
目的是生成机器可识别代码

-c
对文件进行编译,直到文件变为二进制文件为止。

生成的.o文件为可重定位目标二进制文件
链接
将文件进行编译(将.o文件和库文件进行链接),直到生成可执行文件或库文件为止。
.o包含了函数的调用,库文件包含了函数体,二者链接才可以完成执行。

无需选项即可链接。此处生成了可执行文件code
-static
不添加该选项时,默认为动态链接;反之则为静态链接。动态链接得有动态库,静态链接得有静态库。
Linux一般只有动态库,静态库需要另外安装。
bash
yum install glibc-static libstdc++-static -y
输入可执行文件的路径,即可运行可执行文件。

最后补充
现在我们学会了Vim编辑器和gcc工具,我们以后对文件的操作会越来越多,那么出现误操作的可能性也会增加。为了避免在使用root用户修改文件时发生不可挽回的错误。我们从现在开始使用普通管理员身份来操作。
成为管理员
用root用户打开/etc/sudoers
bash
vim /etc/sudoers
该配置文件只有root有权利修改,管理员也无法操作。
打开文件约100多行左右的位置

这里将普通用户Tom加入了管理员组。
从此之后使用管理员Tom即可,普通管理员的权限足矣。
给Tom提权之后,Tom还是要通过sudo提权来进行root权限的操作,还要输入密码,权限还是比不上root的。
加入管理员组
下图可见配置文件还把root权限授权给了wheel组

必须以root身份,通过命令将用户加入wheel组。
bash
usermod -aG wheel Tom
实践中更推荐这种做法。首先他不需要去修改配置文件,其次便于多用户管理。操作规范是企业实践时看重的一点。
❤~~本文完结!!感谢观看!!接下来更精彩!!欢迎来我博客做客~~❤