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提权,就能成功了

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

相关推荐
PP东4 分钟前
ES学习class类用法(十一)
javascript·学习
林农1 小时前
C05S14-MySQL高级语句
linux·mysql·云计算
Wanliang Li1 小时前
Linux电源管理——CPU Hotplug 流程
linux·嵌入式硬件·嵌入式·armv8·电源管理·cpuhotplug
fnd_LN2 小时前
Linux文件目录 --- mkdir命令,创建目录,多级目录,设置目录权限
linux·运维·服务器
达帮主2 小时前
7.C语言 宏(Macro) 宏定义,宏函数
linux·c语言·算法
行思理2 小时前
Linux 下SVN新手操作手册
linux·运维·svn
初学者丶一起加油2 小时前
C语言基础:指针(数组指针与指针数组)
linux·c语言·开发语言·数据结构·c++·算法·visual studio
百流2 小时前
scala基础学习_运算符
开发语言·学习·scala