前言
- 了解Linux的软件生态,学会yum安装软件
- 掌握vim编辑器的使用
- 添加普通用户到系统的信任白名单
一、Linux 软件包管理器 yum
1. Linux安装软件
- 源代码安装:在Linux中源代码安装软件是一种比较麻烦的方式,他需要你自己配置编译环境、编译源代码得到可执行程序。
- rpm安装:rmp是Linux软件包(编译好的可执行程序,相当于Windows上的安装程序)。虽然rmp软件包不需要我们自己编译了,但是rpm只是一个单独的软件包,需要我们解决依赖关系。
- yum安装:软件包管理器(相当于手机中的应用商店),它帮我们解决了安装源、安装版本、安装依赖等问题,我们可以直接进行安装!
2. Linux的软件生态
- 源代码安装太麻烦了,于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装
- 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系
- yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器。主要应用在Fedora, RedHat, Centos等发行版上
- Linux的软件生态草图:
问题1:yum怎么知道去哪下载软件?
yum知道去哪下载软件是通过配置文件中定义的软件源来实现的。
- 软件源(yum源)配置文件:yum的软件源配置文件位于/etc/yum.repos.d/目录下,每个.repo文件代表一个软件源。这些文件包含了软件源的URL、是否启用、以及软件包的镜像等信息。
- 官方yum源和第三方源:Linux发行版通常会自带一些官方源,例如CentOS系统带有的base。如果需要下载额外的软件包,就需要导入第三方源,例如Linux中有一个小程序sl,我们需要先导入epel(即安装扩展源:yum install -y epel-release),才能安装yum install -y sl。
- 更换yum源:一般Linux操作系统,默认配置的yum源是国外的,会造成你的yum源访问会比较慢,就需要你更换yum源(即替换yum源文件)。注:如果你使用的云服务器,一般厂商已经帮你替换了,但如果你是使用的虚拟机,就需要你自己替换(自行百度“国内yum源配置 CentOS 7”)。替换时需注意:做任何配置,一定不要删除,而是将其备份!
问题2:谁来给yum提供软件?
由OS的设计者和推动者提供软件。
使用者和提供者之间形成一个互相促进的闭环,如下图:
3. yum的使用
3.1 使用yum的注意事项
关于yum的所有操作必须保证主机(虚拟机)网络畅通!
可以通过ping指令验证
其实也不需要担心,现在只要你登录上了你的云服务器,你就一定连上网络的。
3.2 yum的使用
平时我们怎么使用手机的应用商店下载应用的呢?
- 根据需求,我知道要下载的软件名字
- 根据软件名字,在应用商店搜索该软件
- 搜索到软件,点击下载
- 当我们不用该软件了,也可以在应用商店卸载
我们的yum也是类似的逻辑!
(1)lrzsz软件
这个软件用于Windows机器和远端的Linux机器通过XShell传输文件。
Windows上传文件到Linux:
- 指令rz上传
- 或者直接从Windows以拖拽的方式将文件上传过去
Linux上传文件到Windows:
- 指令sz xxx 上传
(2)查看软件包
通过yum list命令可以罗列出当前Linux环境中支持的所有软件包。
由于包的数量非常多,这里我们需要使用grep命令筛选出我们关注的包。
yum list | grep xxx
示例:
注意事项:
- 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构
- x86_64" 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择包时要和系统匹配
- “el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6
- 最后一列, os 表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念
(3)安装软件
通过yum,我们可以通过很简单的一条命令完成软件的安装
yum install xxx
yum会自动找到都有哪些软件包需要下载,并且它会默认询问你是否确认安装,这时候敲“y”确认安装。
如果你不想它询问你,你可以携带-y选项。如下:
yum install -y xxx
出现“complete”字样,说明安装完成
示例:
注意事项:
- 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成
- yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错
- 如果 yum 报错, 请自行百度
(4)卸载软件
下载时它会询问你是否确认下载,卸载也一样,它会默认询问你是否确认卸载,你可以携带-y选项,让它不要问你!
yum remove -y xxx
出现“complete”字样,说明卸载完成
示例:
二、Linux 编辑器 vim
- 以前我们使用的VS2019是一款集成开发的软件,即不仅可以编写代码,还可以编译、执行、调试等。
- vim是Linux中的一款多模式编辑器 只可以用来文本编写,但是我们更多的是编写代码。
- 注意:vim只可以用来编写代码,不可以编译、执行、调试代码。
- 补充:vi也是Linux中的一款多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新特性在里面,所以这里我们学习vim即可。
1. vim的基本概念
这里我们学习vim的三种模式(其实有好多种模式,目前掌握这3中即可),分别是命令模式(command mode)、插入模式(insert mode)和底行模式(last line mode)
(1)命令模式(默认模式)
使用vim打开文件编辑:
vim 文件 #用vim编辑器打开该文件
示例:使用vim编辑器打开test.c
进入之后,我们发现不能输入,没有反应。
这是因为我们使用vim一开始进入的是他的命令模式(默认模式)!
命令模式:
- 用户所有的输入都会被当做命令,一般不会作为文本输入
- 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
(2)插入模式
- 在命令模式下,输入i即可进入插入模式。
- 只有在insert mode下,才可以做文字输入,按【ESC】键可回到命令模式。
- 该模式是我们后面使用的最频繁的编辑模式。
(3)底行模式
- 在命令模式下,shift+;即可进入底行模式。
- 在该模式下,我们可进行文件保存和退出,也可以进行文本替换,查找字符串,列出行号等操作。
- 如果要查看vim的所有模式,打开vim,在底行模式直接输入help vim-modes。
2. vim的基本操作
-
进入vim,输入vim后跟文件名称后按回车,就进入vim全屏幕编辑画面
- vim 文件
- 注意:你一开始进入vim之后,是处于【命令模式】,你要切换到【插入模式】才能够输入文字
-
【命令模式】切换至【插入模式】
- 输入i(按「i」切换进入插入模式后,是从光标当前位置开始输入文件)
- 输入a(按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字)
- 输入o(按「o」进入插入模式后,是插入新的一行,从行首开始输入文字)
- 进入【插入模式】之后,我们可以看到左下角会提示【INSERT】
-
【插入模式】切换至【命令模式】
- 按键盘左上角的【ESC】键回到【命令模式】
- tip:任何模式想回到【命令模式】,无脑按【ESC】键即可
-
【命令模式】切换至【底行模式】
- 【shift+;】,其实就是输入【:】
- 进入【底行模式】之后,我们可以看到左下角有【:】,我们可以在:之后输入q!退出vim
-
在【底行模式】下,退出vim及保存文件
- w(保存当前文件)
- wq(保存并退出vim)
- q!(不保存强制退出vim)
-
三个模式的转换图:
3. vim命令模式常用命令集
(1)移动光标(光标定位):
指令 | 说明 |
---|---|
gg | 移动光标到文本的开始 |
G(shift+g) | 移动光标到文本的末尾 |
nG(n+shift+g) | 移动光标到文本的任意(n)行 |
shift+$ | 移动光标到当前行的行尾 |
shift+^ | 移动光标到当前行的行首 |
(n)w | 光标按照单词进行移动,nw光标向后移动n个单词 |
(n)b | 光标按照单词进行移动,nb光标向前移动n个单词 |
h,j,k,l | 虽然vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母h,j,k,l,分别控制光标左、下、上、右移动一格 tip:h最左边,l最右边,j向下跳(jump),k上(King王冠,至高无上的) |
ctrl+b | 屏幕向后移动一页 |
ctrl+f | 屏幕向前移动一页 |
ctrl+u | 屏幕向后移动半页 |
ctrl+d | 屏幕向前移动半页 |
(2)复制粘贴
指令 | 说明 |
---|---|
yy | 复制光标所在行到缓冲区 |
p | 将缓冲区内的字符粘贴到光标所在行的下一行 |
nyy | 复制光标所在的连续n行(包括光标所在行)到缓冲区 |
np | 将缓冲区内的字符粘贴n次到光标所在行的下一行 |
注意: 所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
(3)撤销
指令 | 说明 |
---|---|
u | 撤销:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。 |
ctrl+r | 撤销之前的撤销(即收回u撤销) |
(4)删除(剪切)
指令 | 说明 |
---|---|
dd | 删除光标所在行 |
ndd | 从光标开始删除n行 |
x | 每按一次,删除光标所在位置的一个字符 |
nx | nx删除光标所在位置后面(包含自己在内)的n个字符 |
X | 大写的X,每按一次,删除光标所在位置的前面一个字符 |
nX | nX删除光标所在位置的前面n个字符 |
(5)替换
指令 | 说明 |
---|---|
shift+~ | 光标所在处字符进行大小写转换 |
r | 替换光标所在处的字符 |
nr | 对光标所在的连续n个字符进行批量替换(包括光标所在位置) |
R(shift+r) | vim的第四种模式:替换模式(REPLACE),替换光标所到之处的字符,按【ESC】键退出 |
4. vim底行模式常用命令集
在使用底行模式之前,请先确定你已经处于命令模式,再按【:】冒号即可进入底行模式。
(1)保存文件
指令 | 说明 |
---|---|
w | 在冒号输入字母【w】就可以将文件保存 |
(2)退出vim
指令 | 说明 |
---|---|
q | 按【q】退出vim,如果无法退出,可在【q】后跟一个【!】强制退出vim |
wq | 一般建议退出vim时,搭配【w】一起使用,表示保存文件并退出 |
(3)执行外部命令
指令 | 说明 |
---|---|
! 外部命令 | 执行外部命令,如 :! ls 列出当前目录的文件 |
tip:也有强制的含义,当我们w保存文件不能保存时,可w!强制保存。
- w!:强制保存文件
- q!:强制退出vim
- wq!:强制保存文件并退出vim
(4)列出行号
指令 | 说明 |
---|---|
set nu | 在文件中的每一行前面列出行号 |
set nonu | 撤销行号 |
(5)跳到文件中的某一行
指令 | 说明 |
---|---|
【#】 | 【#】号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文本的第15行 |
(6)查找字符
指令 | 说明 |
---|---|
【/关键字】 | 【/关键字】: 先按【/】键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按【n】会往后寻找到您要的关键字为止 |
【?关键字】 | 【?关键字】:先按【?】键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按【n】会往前寻找到您要的关键字为止 |
(7)多文件编辑
指令 | 说明 |
---|---|
vs 文件 | vs打开多个文件编辑窗口 |
示例:vs temp.c回车
打开多个多个文件编辑窗口:
ctrl ww:窗口光标切换!
光标在哪一个窗口里面,就对哪一个窗口进行操作!
tip : vim打开一个文件,并不会默认帮我们创建,只有wq才会创建。
5. 简单vim配置
(1)配置文件的位置
- root用户,在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效
- 普通用户和root,在每个用户的主目录下(即家目录),都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之
- 一个用户一个vim配置,不会互相影响。不建议给root做配置,用普通用户即可
(2)CentOS 7一键配置vim
vim的配置就是在配置文件中写入配置项。
想要了解相关的配置项,我们百度“vim 配置选项说明”
这里我们一键配置vim:直接复制下面链接,shift+insert粘贴到bash。
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh &&bash ./install.sh
安装软件,需要输入root密码,输入root密码之后等待安装完毕即可。
安装成功之后,我们需要手动执行以下指令。
source ~/.bashrc
执行之后,vim配置才生效!
安装完成之后,有一个install.sh脚本,不建议删掉,可将其隐藏。
mv install.sh .install.sh
安装的vim配置,代码缩进默认是两个空格,我们可以自己将其修改为四个空格。
#进入自己的家目录
cd ~
#打开.vimrc
vim .vimrc
打开之后,【:】进入底行模式,搜索/2搜索,将所有2修改为4即可。
6. vim的参考资料
vim我们了解到常用的即可,想深入学习vim,可点击下方链接:
vim从入门到牛逼
7. 添加普通用户到系统的信任白名单
- 在权限那里我们知道普通用户可以通过sudo对一条命令进行暂时提权。
- 但是我们adduser新建的普通用户,是没有办法执行sudo的,因为系统不信任你。
- 只有我们的root用户,将你添加到系统的信任白名单里面(/etc/sudoers),你才可以使用sudo。
- 必须在root下打开/etc/sudoers文件(tip:虽然普通用户sudo也可以打开文件,但是不建议这么做!)
- 100G光标定位到100行,可以看到系统只默认root在白名单中。我们先粘贴复制该行,再修改root为我们需要添加到白名单的普通用户,最后保存并退出即可。
- 因为/etc/sudoers文件只有读权限,所以我们在wq后面需要加【!】,强制保存并退出。
- 验证: