Ⅰ . Linux 软件包管理器 yum
01 安装软件
在 Linux 下安装软件并不像 Windows 下那么方便,最通常的方式是去下载程序的源代码并进行编
译,从而得到可执行程序。
正是因为太麻烦,所以有些人就把一些常用的软件提前编译好并做成软件包,放到服务器上。
你只需要通过包管理器,就可以轻而易举地获取到这个编译好的软件包,直接无脑安装。
02 安装软件的方式
Centos 中安装软件分为三种方式:① 源码安装 ② rpm 包安装 ③ yum 安装
源码安装:
源码安装就相当于我把项目源代码交给用户,让用户自己编译
rpm 包安装:
可以理解为 Linux 下的安装包,但下载好 rpm 包后想安装还需要用到 rpm 命令,比较麻烦,而且 rpm 包安装不会帮你解决依赖关系
yum 安装:
我们刚才讲的安装方式都不简单,如果只有源码和 rpm 包这两种安装方式,就连开发者用起来都头大,那更别说用户了。
于是 Linux 就推出了一个简单的集成化安装方案 —— yum 安装。
yum 安装最大的好处显而易见,不用编译源码,且不用解决软件的依赖关系。
03 试着安装一款软件
有一个叫 sl 的小工具,这个工具是可以在命令行跑 "火车头" 的软件。
在大家的系统中默认情况下是没有这个软件的,现在正好可以来试试用 yum 安装:
# yum install sl
此时我们输入 sl 看看效果如何:
由此可见,用 yum 安装软件非常de简单,下面我们来仔细讲解一下 yum 。
04 yum 指令
我们要安装别人的软件,需要做的准备工作:
① 需要别人先把代码给我编译成可执行程序。
② 需要有人将编好的软件,放在用户能下载的地方
在 Linux 也是一样的!以手机应用市场为例:
你手机上的 APP 是属于客户端还是服务器?
手机上的 APP 实际上是客户端,而不是服务器。云服务器相信大家并不陌生,我们所用的 XShell 其实就是一个客户端,我们登陆的是远端的服务器。
总结:yum 就类似于手机上的应用市场。
既然要安装软件,我们得知道软件的名字是什么,如果我们不知道软件叫什么那么自然也没法装。
这就是为什么手机应用市场有应用推荐这个功能,按类别去给你推荐软件供你下载。
然而 Linux 下我们可以通过 yum list 指令去执行类似于手机应用市场的 "软件推荐" 功能:
yum list
05 卸载软件 yum remove
yum 既然能安装软件,自然也是能卸载软件的。
# yum remove [目标]
06 yum 源
yum 在下载时是怎么知道去哪里搜的呢?
因为 /etc/yum.repos.d 目录下存有配置文件:
不是所有人的 Linux 上面的 yum 源都是国内的链接。
如果你不是国内的,或者发现安装软件特别慢,建议大家更新一下 yum 源。
07 文件上载工具:lrzsz
Irzsz:一款可以轻松地将 Window 的文件上载到 Linux 的神器。
如果你想把 Windows 下的东西传到 Linux 下,有了这个工具就可以直接拖拽
Ⅱ . Vim 编辑器
01 什么是 Vim
它是一个编辑器!只能用来写代码,编译 vim 也做不到,有其他工具帮我们做。
既然只能用来写代码,那我们为什么不用 nano 记事本呢,不都一样吗?
当然不一样,Vim 功能强大,是一个多模式的编辑器。因为过于强大,学习成本固然较高。
你可以输入 vim 确认一下你有没有安装过 vim,若显示 bash: vim: command not found ,
那就说明还没有安装 vim,我们用刚刚学习的 yum 安装一下即可
02 vim 的使用
我们先创建一个 code.c 源文件:
$ touch code.c
随后输入 vim 跟上文件名,就可以用 vim 编辑器打开该文件了:
$ vim code.c
03 默认模式、底行模式和插入模式
进入之后,此时你会发现是输入不了任何东西的:
因为第一次打开 vim 时的命令模式为 "默认模式"
如果我们现在什么都没干,想退出 vim,我们可以按下 shift + 冒号 ,此时:
此时该模式我们称之为 "底行模式",此时如果你想退出 vim,在该模式下按一个 q 即可。
由于此时什么都没有写,我们按 q 退出。如果写了东西并且想保存并退出,我们可以按 wq
我们刚才进去 vim 之后时输入不了任何东西的,这是因为处于默认模式。
当我们按下 i 键(进入了 "插入模式" )后左下角会显示 :
此时我们就可以正常打字了:
如果想退出,我们要输入键盘上的 Esc 按键 ,此时再按冒号就可以回到底行模式:
当然,如果你想从底行模式再回到命令模式,也是使用 Esc 就可以回去。
退出去之后我们来 cat 一下看看我们刚刚写的内容:
总结:任何模式想回到命令模式,无脑 Esc 即可。
Ⅲ . Vim 文本批量化操作
01 复制和粘贴(yy & p)
指令 | 操作 |
yy | 复制光标指定的当前行内容 |
p | 粘贴 yy 复制的内容,默认粘贴到当前行后面(可光标指定) |
在文本操作的时候我们可能会需要对文本进行批量化操作,比如删除、复制粘贴等功能,
这些在插入模式下是比较难做到的,我们一般会在命令模式下进行文本批量化操作。
操作演示:文本的复制和粘贴,如果我们想复制下面的 printf 代码,我们可以:
在光标所在行 yy 进行复制,随后你可以把光标移到你想粘贴的位置按 p 进行粘贴,直接按 p 默认在 yy 复制行的下一行粘贴。你按几次 p 就会粘贴几次。
02 批量化复制和粘贴(nyy & np)
指令 | 操作 |
[n] yy | 复制光标指定的当前行(包括当前行以内的)n 行内容 |
[n] p | 粘贴 n 份 yy 复制的内容,默认粘贴到当前行后面(可光标指定) |
如果我想粘贴 50 次,我难道要按 50次 p 吗?
当然不用,我们可以使用 批量化粘贴 的功能:
操作演示:此时输入如果想粘贴 50 份,我们可以输入 50p :
对应的,还有 批量化复制 的功能,如果我们想让这两行复制:
我们可以光标选中第一个 printf 并输入 2yy,此时就复制了包括它本身以内的 2 行内容。
此时我们在 p 一下,我们就可以把这两行粘贴出来了:
03 剪贴操作(dd & p)
指令 | 操作 |
dd | 剪贴光标指定行内容 |
[n] dd | 剪贴光标指定行(包括当前行)的 n 行内容 |
操作演示:将 printf 剪贴到 return 0 后面
dd 也可以当删除去使用,只要不 p 就等于是删除的效果了。
04 撤销操作和收回撤销(u & Ctrl + R)
指令 | 操作 |
u | 撤销刚刚的操作 |
Ctrl + R | 对撤销进行撤销(收回 u 撤销操作) |
操作演示:按 u 撤销
我想收回刚才的 u 撤销,怎么办? Ctrl + R!
对于你的最近两次的误操作,你可以使用 u 和 Ctrl + R 在两个操作之间来回跳转。
05 光标跳转(gg & Shift + gg & n + Shift + gg)
指令 | 操作 |
shift + g | 光标快速定位到文本末尾 |
gg | 光标快速定位到文本的最开始 |
[n] shift + g | 将光标快速定位到文本的任意 (n) 行 |
为了方便我们讲解,我们先创建一个大文本的场景。
当文本一旦大了,我想让光标快速定位到文本的最尾部,该如何操作?
操作演示:
① shift + g 跳转至文本最后一行
② gg 跳转至文本第一行首位置
③ 如果我想定位到第 123 行呢?123 + shift + g 即可!
如果想让光标跳到当前所在的文本行开头呢?
指令 | 操作 |
shift + $ | 光标快速定位到文本行的末尾(我们称 $ 为 "锚点" ) |
shift + ^ | 光标快速定位到文本行的开始 |
w / b | 以单词为单位移动(warp 与 back) |
操作演示:
06 方向键(HJKL)
我们是可以通过键盘上的方向键去进行光标移动的。
但是我们是不太推荐用上下左右键去进行光标移动的,我们建议用 "HJKL"
指令 | 操作 |
h | 左 |
j | 下 |
k | 上 |
l | 右 |
为什么建议使用 HJKL 而不使用我们一直习惯的 ↑ ↓ ← → 呢?
因为我们会学一些组合命令,比如批量化注释,它只能支持用 HJKL。
至于为什么 vim 它的上下左右是这几个按键呢?
老式键盘是没有上下左右键的,以前就是那 HJKL 充当 上下左右键的
07 一些修改和替换操作(Shift ~ & r & nr)
指令 | 操作 |
shift + ~ | 大小写快速切换 |
r | 替换光标所在位置的字符 |
[n] r | 替换光标所在位置开始的 n 个字符 |
我们现在想让这些字母大小写互换:
按住 shift 不动 + 波浪号 ~ 即可将光标位置字符进行大小写的转换。
在想要替换的光标处,先输入一个 r,然后再输入你要替换的字符,此时就可以做到修改。
我们甚至还可以批量化修改,在 r 前加上数字。
08 replace 模式
输入 shift + r 进入 replace 模式:
进入 replace 模式后,光标所在处直接输入即可替换,你的所有输入的都会直接替换。
09 删除和批量化删除(x & nx)
指令 | 操作 |
x | 删除当前光标位置字符 |
[n] x | 删除当前光标位置开始的后n个字符 |
如果我们要删除,我们可以按 X,如果要批量删除可以输入 nX(底行模式下)
Ⅳ . 配置 Vim
01 默认的 Vim 配置
大家有没有发现好像用起来很不方便
默认的 vim 没有配置,没有提示、没有缩进、没有行
我们先这里提供一个能够直接输入指令一键配置的方法,让大家先能用起来,
至于具体的 vim 配置学习我们会放到后面去讲解。
02 一键配置
直接复制下面的文字,shift+insert 粘贴到命令行:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh &&bash ./install.sh