目录
一. Linux下的软件
1.1 软件安装的三种方法
- 源代码安装 -- 安装困难,不适用于普通用户
- rpm安装 -- rmp相对于Linux下的安装包,需要用户自身去寻找安装源、安装版本,解决安装依赖问题,安装难度依旧较大。
- yum安装 -- 解决了安装源、安装版本和安装依赖的问题。
yum,类似于手机上的应用商店。
1.2 采用yum安装软件
以lrzsz软件(完成Windows和Liunx之间的文件传输)为例,演示如何采用yum安装和卸载软件。
- rz -- 从Winowds向Linux传输文件。
- sz 文件名 -- 将Linux下的文件传输到Windows。
![](https://img-blog.csdnimg.cn/48f0597a092b4b0ea7a9f1d01fc39e6c.png)
三条命令查找并安装软件:
- yum list -- 打印所有可安装软件列表。
- yum list | grep 软件名(部分) -- 查找要安装的软件。
- yum -y install 软件名 -- 安装软件,这里-y选项是不询问是否安装,直接强制安装。
注意:如果使用yum安装已经存在的软件,那么系统会输出Nothing to do。
![](https://img-blog.csdnimg.cn/b08f2f2157e247509516cda006eed075.png)
- 软件删除:yum -y remove 软件名
1.3 yum源的问题
我们在使用yum下载软件时,是通过系统内配置的yum源,去查找软件的下载地址,通过网络从远端服务器拉取下载资源,然后下载相应的软件。
- yum源:/etc/yum.repos.d/
通过指令 ls -l /etc/yum.repos.d/,可以查看/etc/yum.repos.d/目录下的内容如图1.2所示,其中:
- CentOS-Base.repo -- 官方yum源。
- CentOS-Epel.repo -- 扩展yum源。
![](https://img-blog.csdnimg.cn/300460263d3d4aaab025903eb2ba1291.png)
扩展yum源有时候需要用户自行安装:
- yum -y install epel-release
![](https://img-blog.csdnimg.cn/cb0cd212ea5f4d48bb8c1d8fc9eadd6e.png)
由于Linux为国外开发的操作系统,因此内置的yum源一般为国外的链接,在国内使用下载速度会比较慢,可以进行替换,将国外yum源替换为国内的镜像。
- vim /etc/yum.repos.d/CentOS-Base.repo -- 具体yum源的查看(国内镜像/国外)
![](https://img-blog.csdnimg.cn/806af97006584ce6a3492ed9af8cc6dc.png)
二. vim开发工具的使用
vim既可以进行文本编译,也可以写代码,甚至可以编译和运行代码,是一款多模式的编辑器。
2.1 vim的三种基本模式
- 命令模式(默认) -- 光标位置的切换、赋值粘贴字符/行、删除和替换字符/行,可以从命令模式进入插入模式和底行模式。
- 插入模式:进行文本编辑,只有在插入模式下才能使用键盘进行文本输入。
- 底行模式:文本的保存和退出、编译代码、运行代码、查找文件内容等。
三种基本模式间切换的快捷键:
- 命令模式 -> 插入模式:i、I、a、A、O、o
- 插入模式 -> 命令模式:ESC
- 命令模式 -> 底行模式:Shift + :
- 底行模式 -> 命令模式:ESC
注意:无法实现底行模式和插入模式的直接切换,必须以命令模式为中介进行切换。
![](https://img-blog.csdnimg.cn/a52fb1cfa4f049008d2c7839bdb9cbbe.png)
2.2 命令模式下vim的常用指令
2.2.1 定位相关指令
指令 | 功能 |
---|---|
gg | 光标定位到首行 |
Shift + g | 光标定位到最后一行 |
n + Shift + g | 光标定位到第n行 |
Shift + $ | 定位到光标所在行的行末 |
Shift + ^ | 定位到光标所在行的行首 |
2.2.2 光标移动相关指令
指令 | 功能 |
---|---|
h | 光标左移一个字符 |
j | 光标下移一行 |
k | 光标上移一行 |
l | 光标右移一个字符 |
w | 以单词为单位右移或跨行移动 |
b | 以单词为单位左移或跨行移动 |
2.2.3 插入相关指令
在命令模式下输入下标中的指令,实现从命令模式到插入模式的切换。
指令 | 功能 |
---|---|
i | 在光标之前插入 |
I | 在光标所在行行首插入 |
a | 在光标位置之后插入 |
A | 在光标所在行的末尾插入 |
o | 在光标下方新建一行插入 |
O | 在光标上方新建一行插入 |
2.2.4 复制粘贴相关指令
指令 | 功能 |
---|---|
yy | 复制光标所在行 |
(n)yy | 复制从光标所在行开始向下的n行内容 |
p | 粘贴复制内容 |
(n)p | 粘贴n行复制内容 |
(n)dd | 剪切(删除)n行内容 |
2.2.5 替换和更改相关指令
指令 | 功能 |
---|---|
(n)r + 字符 | 更改从光标位置开始的连续n个字符 |
Shift + r | 进入到替换模式 |
(n)x | 删除光标之后的连续n个字符 |
2.2.6 其他指令
指令 | 功能 |
---|---|
Shift + ~ | 快速大小写转换 |
u | 撤回刚才的操作 |
Ctrl + r | 撤回u撤回的操作 |
2.3 底行模式下vim的常用指令
命令模式 -> 底行模式:shift + :
- 保存和退出相关指令:
指令 | 功能 |
---|---|
q | 退出 |
w | 保存 |
wq | 保存并退出 |
q! | 强制退出 |
w! | 强制保存 |
wq! | 强制保存并退出 |
- 搜索和设置相关指令
指令 | 功能 |
---|---|
set nu | 显示行号 |
set nonu | 取消行号显示 |
/ 内容 | 内容搜索 |
![](https://img-blog.csdnimg.cn/01b1f8c95b7149f1b5909e023578d938.png)
2.3 vim的多文件操作
- 在底行模式下,输入指令:vs 文件名 -- 实现多文件操作
![](https://img-blog.csdnimg.cn/44cfd018c62c41b78544b0795f3cc023.png)
- Ctrl + ww -- 窗口间的切换
- 光标在哪个窗口,就对哪个窗口操作
2.4 vim编译和运行程序
- ! gcc code.c -- 编译C语言源文件代码
- ! gcc code.c -std=c99 -- 以c99标准编译C语言源文件代码
- ! g++ code.cpp -- 编译C++源代码
- ! g++ code.cpp -std=c++11 -- 以C++11的标准编译C++源代码
- ! ./a.out(可执行程序文件名) -- 运行代码
![](https://img-blog.csdnimg.cn/0b2efb9c1281436585a7e3fb4dacc118.png)
三. 通过sudo指令提权
在Linux操作系统中,许多指令在默认情况下只有root用户能够使用,如yum安装软件。但是,在实际项目开发中,普通用户也可能需要使用这些指令,那么,就需要通过sodu,对某条特定的指令进行提权。sudo使用方法为:
- sudo 提权的指令 --> 输入普通用户密码
如图3.1所示,在普通用于zhangHHH下,希望通过sudo指令,以root用户的身份创建文件test.txt,sudo touch test.txt,输入普通用户密码之后,系统提示zhangHHH不在信任用户名单中,禁止使用sudo提权。这是Linux为了避免普通用户滥用管理员权限而设定的保护机制。
![](https://img-blog.csdnimg.cn/9e29d613156d407daadf6de709814613.png)
如果普通用户zhangHHH想要使用sudo,那就需要root用户将其添加到信任白名单中,信任白名单的路径为:/etc/sudoers, 使用vim /etc/sudoers 打开信任白名单,如图3.2所示,找到100行左右的信任用户位置,将普通用户加入信任名单即可,添加受信任的普通用户即可。
![](https://img-blog.csdnimg.cn/49f3d739fee1459eb34cab6abf51e6a3.png)
将zhangHHH用户加入信任白名单后,再次使用sudo touch test.txt指令,以root用户的身份创建新文件,指令成功运行,通过ll指令,看到test.txt文件的拥有者和所属组都是root用户,证明该文件以root用户的身份创建。
![](https://img-blog.csdnimg.cn/bd615e6e69fc4f17860aa88a5cdd1486.png)