【Linux】工具:yum软件安装、yum源配置更新;vim编辑器常用模式、命令集、【超推荐】vim自动化配置C++IDE;gcc / g++编译器命令、编译过程

工具Ⅰ

  • 1. yum -- 软件安装
    • 1.1 yum 源 配置
    • 1.2 从 扩展 yum 源中下载软件
  • 2. vim -- 编辑器
    • 2.1 vim 的模式及转换
    • 2.2 vim 的命令集
    • 2.3 vim 的配置
      • 【推荐】自动化配置
  • 3. gcc / g++ -- 编译器
    • 3.1 程序的翻译
    • 3.2 gcc 的命令


1. yum – 软件安装

  • yum 是Linux下非常常用的一种包管理器,可供下载软件包. 主要应用在Fedora, RedHat, Centos等发行版上。软件包和软件包管理器, 就好比 “App” 和 “应用商店” 之间的关系。
  • 这些软件管家要下载软件,是必须得知道各个软件的下载地址的,一般都是内置下载链接。(比如放在配置文件中)
  • yum 就有一个这样的 配置文件,我们叫他 yum 源,存放在我们的 /etc/yum.repos.d 路径下
    (repos 为 repository 仓库的简写,d 为 dir 目录
  • 关键字 搜索 软件:[sodu] yum list | grep 关键字(最常用)
    或者 yum search 关键字(排版很死亡,用的比较少)

  • 用 root 安装 软件:[sodu] yum [选项] install 软件名(此时是精准匹配的)

  • 用 root 删除 软件:[sodu] yum [选项] remove 软件名

  • 直接完成指令,不进行系统交互提示:-y

通常我们希望在 Linux 下安装的软件,所有人都能使用,所以我们不会把软件下载到自己的用户下。
这时候,需要我们切换成 root 身份,当然直接使用 sodu 提升该行命令的权限是最好的!root 会把软件存在特定的文件夹中。

1.1 yum 源 配置

我们所正在使用的 yum 源,可能依据云服务器的不同而使用不同的源。可以通过一系列指令进行配置更改。yum 源配置文件可以通过网络搜索得到。

这里举例,把 CentOS 默认的 yum 源,修改为 mirrors.163.com

操作步骤如下:

1. 备份老的 yum 源: cd /etc/yum.repos.d 进入目录,备份 yum 源配置文件 CentOS-Base.repo

mv CentOS-Base.repo backup_CentOS-Base.repo
# 不进入目录则输入:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/230410_CentOS-Base.repo

2. 下载新的 yum 源: 保持在上述目录位置,下载 163 的 yum 源配置文件

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 如果显示没有 wget 命令,用下面这个,yum 源更新后可以装一个 wget
curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo

3. 重命名: 将新下载的 yum 源,改成原来系统的默认名

mv CentOS7-Base-163.repo CentOS-Base.repo

4. 更新缓存: 先将 yum 缓存重新清空,再将 yum 源重新加载

yum clean all
yum makecache

配置完毕!

1.2 从 扩展 yum 源中下载软件

我们刚刚所说配置 yum 源,更多的是官方的软件源,如国内的一些镜像源:阿里、163、华为、腾讯,如果你的云服务器是来自某一家,大概率是可以直接使用 yum 源,不需要进行重新配置。

但是如果我们想要安装的软件,在官方的软件源中找不到,有可能在扩展的 yum 源中:epel.repo,此时下载方法入下:

step1:

# 根据我们的 base yum 源,帮我们找到和他匹配的扩展 yum 源
sodu yum install -y epel-release

step2:

sudo yum install -y 软件名

2. vim – 编辑器

vim 是一款多模式的编辑器,常用五种,最常用的实际只有三种

2.1 vim 的模式及转换

普通模式 / 命令模式(Normal mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
插入模式(Insert mode):文字输入
底行模式(Last line mode):文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作
替换模式(Replace mode)
视图模式(Visual mode)

进入命令模式:
输入命令 vim testvim.c 打开 vim 默认进入 命令模式,当前目录下没有同名文件会新建一个
命令模式 -> 插入模式:
按键 i,界面左下角出现 – INSERT – 字样,此时转化成插入模式,光标不移动。
按键 a,进入插入模式,同时光标向后移动一个
按键 o,进入插入模式,同时光标向下移动一排
按键 s,进入插入模式,同时删除光标所在字符
命令模式 -> 底行模式:
按键 shift + : ,左下出现冒号字样,可以进行保存退出等操作
命令模式 -> 替换模式:
shift + r,左下出现 – REPLACE – 字样,此时转化成替换模式
任意模式 -> 命令模式:
按键 [ESC],此时模式提醒消失,返回了命令模式

2.2 vim 的命令集

注意:命令中出现的 n 都是数字

底行模式下

️退出保存

q:不保存只退出

q!:强制退

w只保存(可以撤销之前的命令)

wq :写入并退出(再次打开不可撤销之前的命令)

wq!:强制保存并退出

!命令行命令:返回 执行命令行 的命令,但是不退出 vim

️文本文件编辑

set nu / set noun:设置 行号、去掉行号

/xxx:字符串 查找

%s/当前字符串/替换字符串/g:查找并 替换 字符串

vs 文件名:将输入文件 分屏 至左侧,如当前目录下没有找到该文件,会自动创建一个

ctrl + ww切换光标 到另一个分屏界面

命令模式下(大部分指令):

️复制粘贴

u撤销 命令

ctrl + r:对撤销进行撤销

yy / nyy复制 当前光标所在行、复指当前行在内及之下的指定若干行

dd / ndd剪切 当前光标所在行、剪切当前行在内及之下的指定若干行。(如果只 dd 不粘贴,就是删除)

p / np粘贴 一行、粘贴内容相同的 n 行,到当前光标所在行之下

️光标定位

gg:将光标定位到 文档开始

shift + g:将光标定位到 文档结尾

n shift + g:将光标定位到文档 指定行

shift + 4:将光标定位到文本 行的结尾

shift + 6:将光标定位到文本 行的开始

n b / n w:按单词为单位,进行前后移动,b 向前,w 向后

h / j / k / l:光标移动,h 左、j 下、k 上、l 右

️字符编辑

shift + ~:快速 大小写切换

r / nr替换 一个字符、替换若干个相同字符

shift + r:切换为替换模式

x / nx:行内删除光标位置,删除光标后面 n 个字符

n + shift + x:向前删除

2.3 vim 的配置

一个用户一个 vim 配置。

自己配置:网上有很多命令用来配置,大家可以按需设置,流程如下。但其实不太推荐自己去配置,因为涉及很多插件冲突和路径问题。(不想看这个可以跳到下一小节 自动化配置)

  1. 进入用户目录下,创建配置文件 .vimrc
touch .vimrc
  1. 打开配置文件
vim .vimrc

样例:

# vim 编辑器的插入模式下,输入如下
"行号
set nu

"干啥的
syntax enable

"当前行高亮
set cursorline

"用空格来替换 Tab
set expandtab

"设置所有的 Tab 和缩进为 4 个空格
set tabstop=4

"按退格键时可以一次删掉 4 个空格
set softtabstop=4
set smarttab

"自动缩进
set autoindent

"开启新行时智能自动缩进
set smartindent

"设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4

"设置编码格式
set encoding=utf-8

"设置终端格式
set termencoding=utf-8

"括号自动补齐
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap < <><ESC>i

【推荐】自动化配置

本文提供一个自动化配置,取自将 vim 打造成 C++ IDE,目前只支持 centos 7.x,步骤如下:

  1. 在需要配置的账号下,输入 cd ~

  2. 再输入下面指令(建议复制),进行脚本安装

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
  1. 安装完成后,按照提示,输入指令,配置生效:
source ~./.bashrc

3. gcc / g++ – 编译器

gcc 和 g++ 的选项是重叠的,gcc 是专门针对 C 语言的编译器、g++ 是专门针对 C++ 的编译器。这里以编译 C 语言的 gcc 为例进行讲解。

3.1 程序的翻译

本小节会讲述,程序翻译的过程,及翻译过程的留存。

1. 预处理:头文件展开、条件编译、宏替换、去注释…
(预处理完毕,此时还是 C 语言)

  • -E:进行程序翻译,预处理完成,就停下来
# 直接输入会打印到屏幕上,不方便查看,我们 -o 到一个 .i 文件里
gcc -E mytest.c -o mytest.i

2. 编译:编译成 C 语言的 汇编语言

  • -S:进行程序翻译,编译完成,就停下来(会生成一个 .s 汇编文件
# 可以从 .c 开始翻译,这里默认在一个测试下,接着做的
# 可以 -o 自定义名
# 会生成一个 .s 文件
gcc -S mytest.i

3. 汇编:汇编语言 -> 可重定位的目标二进制文件(是不可以被执行的,bin.obj),只把我们自己的代码进行翻译形成二进制目标文件

  • -c:进行程序翻译,汇编完成,就停下来(会生成一个 .o 二进制文件
gcc -c mytest.o

4. 链接:将我们自己形成的 .obj 文件和库文件某种合并,形成可执行程序

  • ldd:查询可执行程序对其他 动态库 的依赖
  • sudo yum install glibc-static -y libstdc++-static:安装 c 语言和 C++ 的静态库

3.2 gcc 的命令

gcc 文件名.c:将 .c 文件编译成可执行文件 a.out

gcc 文件名 -o 执行文件名:将指定文件编译成自定义名称的可执行文件(-o 也可以放在前面,但是其后需要紧跟执行文件名称)

-E -S -c:转成 预处理、编译、汇编 文件,具体使用见 3.1,

记不住命令顺序的一定记得,看看你的键盘左上角 ^▽^,[ESc]

生成的文件顺序:.i .s .o,我们可以助记作镜像文件的后缀名 .iso

如果本文对你有些帮助,请给个赞或收藏,你的支持是对作者大大莫大的鼓励!!(✿◡‿◡) 欢迎评论留言~~

你可能感兴趣的:(Linux,linux,vim,编辑器)