Linux基于CentOS7【yum】【vim】的基础学习,【普通用户提权】

目录

yum生态

什么是yum

yum是如何得知目标服务器的地址和下载链接

vim

vim模式

命名模式

光标移动

插入模式

i键插

a键插

o键插

底行模式

批量化注释

批量化去注释

创建vim配置文件

例子

高亮功能:

缩进功能:

符号位自动补齐功能:

函数名自动补齐功能

自动配置

普通用户提权


yum生态

什么是yum

yum就是Linux软件包管理器,就是相当于我们手机上的应用商店等内容,它是我们预装的指令

Linux中我们也要进行工具/指令/程序的安装,检查和卸载

打开Linux的yum软件列表

bash 复制代码
yum list

想要搜索某一特定软件,这里拿lrzsz举例

bash 复制代码
yum list | grep lrzsz
bash 复制代码
[root@VM-20-2-centos ~]# yum list | grep lrzsz
Repository epel is listed more than once in the configuration
lrzsz.x86_64                               0.12.20-36.el7         @os  

卸载软件

bash 复制代码
yum remove 软件或命令

不同版本对应操作系统的区别是:我们曾经所构建出来的背靠的整个社区和生态的不同,使得我们各种操作系统方向的不同

yum是如何得知目标服务器的地址和下载链接

bash 复制代码
ls /etc/yum.repos.d/
        yum 仓库 目录

输入命令

bash 复制代码
vim /etc/yum.repos.d/CentOS-Base.repo 
# yum仓库

所以CentOS-Base是一个配置文件,当我们的yum要下载安装某物的时候,它会通过CentOS-Base去访问里面对应的列表里面的镜像文件

CentOS-Base可以承载国外的,也可以承载国内的,下载国外的文件会相对慢很多,因此可以考虑换国内的镜像文件

以阿里云的镜像服务为例子

下载网址:centos安装包下载_开源镜像站-阿里云

  1. 先复制拷贝一份CentOS-Base,拷贝的指令则为:
    cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    拷贝指令:cp
    需要备份的文件:/etc/yum.repos.d/CentOS-Base.repo
    将其备份为:/etc/yum.repos.d/CentOS-Base.repo.backup

    备份的原因是:想要恢复时可以恢复

  2. 下载新的yum源文件
    wget -0 /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    wget -0: 下载到指定文件
    下载指定文件的目的,即覆盖文件:/etc/yum.repos.d/CentOS-Base.repo

    需要下载的文件:http://mirrors.aliyun.com/repo/Centos-7.repo

  3. 清除yum缓存,清除掉以前的yum源的缓存
    yum clean all

  4. 更新yum缓存
    yum makecache

安装epel-release

bash 复制代码
yum install -y epel_release

CentOS-Base.repo是基础软件源,不能够随随便便将新的软件放进去,需要将其放在扩展软件源,等到一定的时间去信任这个软件,再把这个软件放到基础软件源里,这是能够维护基础软件源

而我们下载安装的epel.repo就是扩展软件源

vim

vim是多模式编辑器,vim还有很多子命令,可以进行代码的编写操作

vim模式

创建一个test.c文件

命名模式

vim打开的时候的默认模式,其中所有的输入都被当作命令来看待,除非误触了模式切换键

输入vim test.c

光标移动

|----------------|--------------------------------|
| shift +4 =$ | 光标定义在当前行的最右侧处,锚点 |
| shift + 6 = ^ | 光标定义在当前行的最左侧处,锚点 |
| shift + g | 将光标定义到文本的最结尾 |
| gg | 将光标定义到文本的最开始 |
| n+shift+g | 光标快速定义到指定行 |
| h,j,k,j | h : 左移 j :下移 k:上移 l: 右移 |
| yy+p | 复制粘贴(yy相当于CTRL+C,p相当于CTRL + V) |
| n+yy | 复制多行 |
| n+p | 粘贴多行 |
| u | 撤销编辑操作,undo的意思 |
| CTRL+r | 对撤销进行撤销 |
| dd | 删除当前行,同时也支持n+dd,相当于剪切 |
| shift + ~ | 当前行大小写之间的转化 |
| n + r + 字母 | 当前行批量变成某个字母 |
| shift + r | 替换模式 |
| x | 删除光标所在字符 |
| n + x | 连续删除光标(包括光标)所在的n个字符 |
| shift + x | 向左侧开始删除,但不包括光标的这个字符 |
| n + shift + x | 批量向左删除 |
| w | 跨单词向后跳跃 |
| b | 跨单词向前跳跃 |
| shift + 3 | 查找函数名 |

插入模式

i键插

在命令模式的背景下,当我们点击i的时候,就会变成insert,插入模式

a键插
o键插

插入模式返回命令模式:点击ES****C

底行模式

在命令模式的前提下,shift + : 就能进入底行模式

退出的前提是,底行模式

wq :保存退出

! + shell命令,就可以直接进入命令

/ + 想要搜索的内容

set + nu : 加上行号

set + nonu : 去掉行号

底行模式回退到命令模式:ESC即可

底行模式和插入模式不能互相直接转换

批量化注释

步骤:

  1. CTRL + v
  2. 进行区域筛选,hjkl区域
  3. shift + i = I
  4. 输入 //
  5. 按ESC

批量化去注释

步骤:

  1. CTRL + v
  2. 进行区域筛选,hjkl区域
  3. 按 d

创建vim配置文件

首先要在当前用户下的家目录里创建存放vim配置文件的文件

Linux中如果有多用户,每个用户都可以设置他的 .vimrc

系统root也有个vimrc

例子

配置行号:

打开vimrc

给它输入 set nu,保存

bash 复制代码
打开此文件
vim LinuxStudy/test.c

展示此效果
  1 #include<stdio.h>
  2 
  3 int main()
  4 {
  5         printf("hello vim\n");
  6         printf("hello vim\n");
  7         return 0;
  8 }
  9 

发现已经有了行号了

因此,我们可以配制出我们想要vim

高亮功能:

bash 复制代码
"高亮当前行"
set cursorline

"粗体显示选中行,用黑色框,字体用绿色标注"
hi Cursorline cterm=bold ctermbg=black ctermfg=green guibg=green

hi Cursorline cterm=bold ctermbg=black ctermfg=green guibg=green

这行配置定义了高亮当前行的样式。

hi:高亮命令

Cursorline:高亮组名

cterm:表示终端模式下的设置

cterm=bold:表示使用粗体

ctermbg=black:表示背景色为黑色

ctermfg=green:表示前景色为绿色

guibg=green:表示在图形界面模式下的背景色为绿色。

bash 复制代码
"开启语法高亮功能"
"syntax选项使得Vim能够根据文件类型识别并高亮显示代码中的关键字、注释等元素"
syntax on

缩进功能:

bash 复制代码
"启用自动缩进功能,Vim会在新的一行自动插入与上一行相同的缩进"
set autoindent

"设置制表符(Tab)的宽度为4个空格。
意味着当按下Tab键时,Vim会插入4个空格"
set tabstop=4

"设置软制表符的宽度也为4个空格。
软制表止是指在插入模式下,Tab键的行为类似于按了4次空格键"
set softtabstop=4

"设置shiftwidth选项,
它定义了在进行自动缩进或使用>>和<<命令时,Vim将使用4个空格作为缩进的单位"
set shiftwidth=4

"启用C语言的自动缩进。
cindent是针对C语言的智能缩进插件,它会根据C语言的语法自动调整代码的缩进"
set cindent

"启用智能缩进功能。
smartindent会在新的一行根据代码的上下文自动插入适当的缩进"
set smartindent

符号位自动补齐功能:

bash 复制代码
inoremap ( ()<ESC>i
inoremap < <><ESC>i                                                                                               
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap " ""<ESC>i

函数名自动补齐功能

bash 复制代码
set completeopt=preview,menu 
  • 当你在Vim中输入代码并开始输入一个函数名或变量名时,可以使用Ctrl+N(或Ctrl+P)来触发自动补全。
  • 如果有多个匹配项,Vim会显示一个下拉菜单供你选择。
  • 同时,如果设置了preview,还会在一个小窗口中预览选中补全项的详细信息。

自动配置

1,在非root账户下,执行下列指令

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

2,输入root密码

3,完成配置

普通用户提权

root账号下有个系统白名单,只有在白名单的普通用户,才能得到提权,否则不能被提权

我们可以尝试进去看看

bash 复制代码
ll /etc/sudoers
vim /etc/sudoers

为什么看不见呢:

  1. 我们不能随便让用户进行sodo提权
  2. 我们不能让用户随意的去修改sudoers文件

必须经过root账号后才能对其进行访问

提权操作

vim /etc/sudoers

找到接近100多行,按照下面的图片,依葫芦画瓢即可

保存退出之后,回到原账号,使用sudo提权,就能成功了

以上便是本次博文学习内容,如有错误,还望各位大佬指点,谢谢阅读!

相关推荐
欧米欧7 分钟前
解析Linux从umask位运算到粘滞位
linux
ps酷教程15 分钟前
数据权限DataPersmission
java·学习
无敌贵点大王16 分钟前
RTThread学习记录10——C语言实现面向对象的编程
c语言·stm32·学习·链表
江屿风32 分钟前
【Linux系统】【Linux进程终止等待详解与程序替换机制初体验】流食般投喂
linux·运维·笔记·系统架构·centos·unix
螺蛳粉 螺蛳粉40 分钟前
CentOS 7.9 自建 Yum 源服务器搭建指南
linux·服务器·centos
程序员yu1 小时前
数智码力:Python作用域完全梳理,全局变量局部变量不再混乱
开发语言·python·学习
传奇开心果编程2 小时前
【ArkUI 练中学】第5课:路由导航与页面跳转
学习·华为·前端框架
吴声子夜歌2 小时前
Shell编程实例——脚本编程的附加特性
linux·运维·shell
yunwei372 小时前
eBPF 教程:BPF 调度器入门
linux·后端·性能优化
byte轻骑兵2 小时前
【BlueZ 】sdp 模块:服务发现协议的用户态实现基础
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙