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

news2024/11/25 10:14:44

目录

yum生态

什么是yum 

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

vim

vim模式

命名模式

光标移动 

插入模式

i键插

a键插

o键插

底行模式

批量化注释

批量化去注释 

创建vim配置文件

例子

高亮功能:

缩进功能: 

符号位自动补齐功能:

函数名自动补齐功能

自动配置

普通用户提权


yum生态
 

什么是yum 

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

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

打开Linux的yum软件列表

yum list

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

yum list | grep lrzsz
[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  

 卸载软件

yum remove 软件或命令

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

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

ls /etc/yum.repos.d/
        yum 仓库 目录

输入命令

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        

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,jh : 左移        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键插

插入模式返回命令模式:点击ESC

底行模式

在命令模式的前提下,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,保存

打开此文件
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

高亮功能:

"高亮当前行"
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:表示在图形界面模式下的背景色为绿色。

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

缩进功能: 

"启用自动缩进功能,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

符号位自动补齐功能:

inoremap ( ()<ESC>i
inoremap < <><ESC>i                                                                                               
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap " ""<ESC>i

函数名自动补齐功能

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账号下有个系统白名单,只有在白名单的普通用户,才能得到提权,否则不能被提权

我们可以尝试进去看看

ll /etc/sudoers
vim /etc/sudoers

为什么看不见呢:

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

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

提权操作

vim /etc/sudoers

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1941754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件缺陷(Bug)、禅道

目录 软件缺陷的判定标准 软件缺陷的核心内容 构成缺陷的基本要素 缺陷报告 缺陷管理 缺陷的跟踪流程 项目管理工具--禅道 软件在使用过程中存在的任何问题&#xff08;如&#xff1a;错误、异常等&#xff09;&#xff0c;都叫软件的缺陷&#xff0c;简称bug。 软件缺…

175道Docker面试题(上)

目录 1、什么是docker&#xff1f; 2、Docker与普通虚拟机的对比&#xff1a; 3、Docker常用命令&#xff1a; 4、Docker镜像是什么&#xff1f; 5、Docker容器是什么&#xff1f; 6、Docker容器有几种状态&#xff1f; 7、Dockerfile中最常见的指令是什么&#xff1f; …

v-for 进行列表的 增删改查

通过对象下标替换属性值 但是通过实践此方法是错误的&#xff0c;Vue监听的是students这个对象&#xff0c;而不是这个对象里面的数组信息&#xff0c;也就是说&#xff0c;改变里面的值&#xff0c;并不能在页面上实现更新的功能 <!DOCTYPE html> <html lang"en…

windows系统conda 使用注意事项

在windows系统中&#xff0c;可以直接在Anaconda 的终端中使用conda功能。 但是&#xff0c;在Anaconda的终端中&#xff0c; 无法使用完整的命令行工具。 如设置环境变量的set命令就不起作用。 这时我们就想要在windows的cmd命令中直接使用conda。 但直接使用会有问题&#…

HarmonyOS NEXT零基础入门到实战-第四部分

自定义组件: 概念: 由框架直接提供的称为 系统组件&#xff0c; 由开发者定义的称为 自定义组件。 源代码&#xff1a; Component struct MyCom { build() { Column() { Text(我是一个自定义组件) } } } Component struct MyHeader { build() { Row(…

Maven的常用命令(面试篇之Maven)

我在写项目时,使用Maven的插件的命令来进行打包等,却发现报错误了,虽然解决了, 但借此机会来总结一下Maven的常用命令: 这些插件都有着自己的命令,虽然,我们可以简化的使用一些idea中的方便的按键: 但 , 一个程序员的功力深浅就在这些细节末尾处: 在Maven中&#xff0c;插件是…

高职国培丨数据分析与数据挖掘课程实施能力提升培训班正式开班

7月15日&#xff0c;由广东机电职业技术学院牵头&#xff0c;广东泰迪智能科技股份有限公司作为合作单位的“高职教师数据分析与数据挖掘课程实施能力提升培训班&#xff08;高职国培&#xff09;”正式开班。来自广东省各地36位高校教师参与本次线下师资国培班。 广东机电职业…

el-menu根据多层树形结构递归遍历展示菜单栏

文章目录 前提条件假设菜单等级只有两个等级结果如下所示 但是如果菜单等级超过两个等级或者多个等级的话App.vueMenuItems.vue结果如下所示 关于遍历时图标前的展示后续完善关于点击路由跳转参考element plus的官网即可 前提条件 package.json如下所示&#xff0c;这是一个Vi…

广州邀请媒体宣传(附媒体名单)

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 广州地区 媒体邀约&#xff1a; 记者现场采访&#xff0c;电视台到场报道&#xff0c;展览展会宣传&#xff0c;广交会企业宣传&#xff0c;工厂探班&#xff0c;媒体专访等。 适合广州…

vue3前端开发-小兔鲜项目-二级页面面包屑导航和跳转

vue3前端开发-小兔鲜项目-二级页面面包屑导航和跳转&#xff01;这一次&#xff0c;做两件事。第一件事是把二级分类页面的跳转&#xff08;也就是路由&#xff09;设计一下。第二件事是把二级页面的面包屑导航设计一下。 第一件事&#xff0c;二级页面的跳转路由设计一下。 如…

【RabbitMQ】Windows下RabbitMQ的安装和部署

Windows下RabbitMQ的安装和部署 一、引言二、环境搭建三、安装ERLANG四、安装RabbitMQ五、安装RabbitMQ-Plugins六、验证 一、引言 RabbitMQ——Rabbit Message Queue的简写&#xff0c;但不能仅仅理解其为消息队列&#xff0c;消息代理更合适。RabbitMQ 是一个由 Erlang 语言…

智慧隧道可视化:安全与效率的智能保障

运用图扑可视化技术&#xff0c;实时监测隧道内的环境和交通状况&#xff0c;提升维保效率和应急响应能力&#xff0c;确保隧道运营的安全和畅通。

Build a Large Language Model (From Scratch)GPT-4o翻译和代码每行中文注释Ch5

目录 Pretraining on Unlabeled DataThis chapter covers5.1 Evaluating generative text models5.1.1 Using GPT to generate text5.1.2 Calculating the text generation loss5.1.3 Calculating the training and validation set losses 5.2 Training an LLM5.3 Decoding str…

免费分享一套微信小程序图书馆座位预约管理系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序图书馆座位预约管理系统(SpringBoot后端Vue管理端)&#xff0c;分享下哈。 项目介绍 随着移动互联网技术的飞速发展和智能设备的普及&#xff0c;图书馆服务模式正在经历深刻的变革。本论文旨在…

【Linux】从零开始认识多线程 --- 线程ID

在这个浮躁的时代 只有自律的人才能脱颖而出 -- 《觉醒年代》 1 前言 上一篇文章中讲解了线程控制的基本接口&#xff1a; 线程创建pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);: pthread_t *thread :输出…

艺术成分很高的完全自定义的UITabBar(很简单)

引言 在iOS应用开发中&#xff0c;UITabBar是一个非常场景且重要的UI组件。系统为我们提供的UITabBar虽然功能强大&#xff0c;但是在某些情况下&#xff0c;它的标准样式并不能满足我们特定的设计需求&#xff0c;它的灵活性也有一些局限。为了打造更具个性化好的用户友好的交…

Ai绘画变现的14种途径 学习Stablediffusion midjourney用途

AIGC&#xff0c;一个在当代社会中不可忽视的词汇&#xff0c;指的是利用人工智能技术生成创作内容。近年来&#xff0c;全球范围内涌现出50个热门的AI工具&#xff0c;其中&#xff0c;以140亿次访问量雄踞榜首的“GBT”&#xff0c;无疑是AI领域的领头羊。在这些工具中&#…

node.js中nodemon : 无法加载和使用问题,这是由于windows安全策略影起的按如下操作即可

1、用管理员权限打开vscode 2、文件终端中打开&#xff0c;输入 Set-ExecutionPolicy -Scope CurrentUser 3、再输入RemoteSigned 4、使用get-ExecutionPolicy查看权限&#xff0c;可以看到变为了RemoteSigned 重启问题解决

一个注解解决重复提交问题

一、前言 ​ 在应用系统中提交是一个极为常见的功能&#xff0c;倘若不加管控&#xff0c;极易由于用户的误操作或网络延迟致使同一请求被发送多次&#xff0c;从而生成重复的数据记录。针对用户的误操作&#xff0c;前端通常会实现按钮的 loading 状态&#xff0c;以阻…

【leetcode】排列序列

给出集合 [1,2,3,...,n]&#xff0c;其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况&#xff0c;并一一标记&#xff0c;当 n 3 时, 所有排列如下&#xff1a; "123""132""213""231""312""321" 给定…