【Linux系统编程】开发工具yum和vim

news2024/11/28 22:51:35

目录

一,yum工具的使用

1,yum的介绍

2,yum的使用

二,vim工具的开发

1,vim的介绍

2,模式的使用

3,vim配置文件

4,sudo配置文件


一,yum工具的使用

1,yum的介绍

        yum是CentOS系统版本下的一个软件包管理器,它可以进行工具/指令/程序的安装,检查卸载等,相当于手机上的应用商店,对各种软件进行管理。其实,它也是一个指令,在目录/usr/bin/下。这里要说明的是不同系统版本对应的指令可能不同,比如Ubuntu下对应的指令是apt-get。

[110_user@zhujunhao ~]$ which yum

/usr/bin/yum

2,yum的使用

        yum的使用非常灵活且广阔,这里我们先了解常用的语法:

        1,查看所有软件包指令。用指令 yum list 可列出系统下的所有可安装软件包的详细信息,包括提供软件包的描述、依赖关系和可选的软件包组列表等。

[110_user@zhujunhao ~]$ yum list  //下面将会列出所有的软件及其的详细信息
...

...

        2,查找指令的软件。运用管道 “ | ” 和grep指令可查找系统下指定名称的软件,例如:yum list | grep lrzsz,查找名称为lrzsz的所有软件。

[110_user@zhujunhao ~]$ yum list | grep lrzsz
lrzsz.x86_64                             0.12.20-36.el7                @base  

        上面列出软件的详细信息中,lrzsz叫做软件名,后缀 .*86_64表示该软件只能在 .*86_64系统下才可运行,后面的 0.12.20-36 表示该软件的版本信息,后缀 .el7 表示是系统CentOS 7,@base 表示的是软件的提供方。

        3,下载软件。指令yum install [软件名] 可将其工具下载下来,其中的install表示下载并安装的意思。通常,我们会添加 -y 选项。在安装工具的过程中会出现一些提示信息,-y选项表示自动确定。这里要注意的是普通用户没有下载权限,我们必须用root用户才可以正常进行。

[root@zhujunhao 110_user]# yum install -y lrzsz

//下面是版本的一系列信息
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package lrzsz.x86_64 0:0.12.20-36.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================================================================================
 Package                                         Arch                                             Version                                                    Repository                                      Size
==================================================================================================================================================================================================================
Installing:
 lrzsz                                           x86_64                                           0.12.20-36.el7                                             base                                            78 k

Transaction Summary
==================================================================================================================================================================================================================
Install  1 Package

Total download size: 78 k
Installed size: 181 k
Downloading packages:
lrzsz-0.12.20-36.el7.x86_64.rpm                                                                                                                                                            |  78 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : lrzsz-0.12.20-36.el7.x86_64                                                                                                                                                                    1/1 
  Verifying  : lrzsz-0.12.20-36.el7.x86_64                                                                                                                                                                    1/1 

Installed:
  lrzsz.x86_64 0:0.12.20-36.el7                                                                                                                                                                                   

Complete! //表示安装成功

         4,删除软件。yum remove [软件名] 表示删除软件的操作,与下载软件一样,可加上 -y 选项自动表示删除确定。权限也必须是root权限,普通用户没有此权限。

[root@zhujunhao 110_user]# yum remove -y lrzsz

// 以下是删除软件的一系列信息
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package lrzsz.x86_64 0:0.12.20-36.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================================================================================
 Package                                         Arch                                             Version                                                   Repository                                       Size
==================================================================================================================================================================================================================
Removing:
 lrzsz                                           x86_64                                           0.12.20-36.el7                                            @base                                           181 k

Transaction Summary
==================================================================================================================================================================================================================
Remove  1 Package

Installed size: 181 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : lrzsz-0.12.20-36.el7.x86_64                                                                                                                                                                    1/1 
  Verifying  : lrzsz-0.12.20-36.el7.x86_64                                                                                                                                                                    1/1 

Removed:
  lrzsz.x86_64 0:0.12.20-36.el7                                                                                                                                                                                   

Complete!   //表示删除成功

        接下来问题来了,yum的下载安装中是如何将软件安装到本地的呢?这就要从yum库中的yum源寻找答案。

        /etc/yum.repos.d 此目录是yum的库目录,后缀repos表示库,d表示此仓库是一个目录。yum库目录可理解为此目录下放置了yum功能具体实现的文件,其中 CentOS-Base.repo 文件表示yum源,yum源中存放了所有软件的下载地址的链接,当使用yum下载工具时,系统将会从yum源中去搜索网址对应的软件,然后将其下载下来。

        yum和yum源的使用其实还有更深的研究,如yum源的管理,将服务器的软件包信息缓存到本地清除缓存中老旧的头文件和软件包,更新所有的rpm软件包等等一系列操作,yum源的修改配置等,这里先不做更深的研究,后文会对这方面的资源管理系统进行深入讲解。


二,vim工具的开发

1,vim的介绍

        vim是一款多模式的编译器,用来实现各种高级语言的实现。它里面还有很多的子命令,用来进行代码的编写操作。语法:vim [文件] 即可进入。

vim code.c //对文件code.c进行编辑,没有此文件将自动创建

        当使用高级语言对文档进行编辑完成时,使用 gcc 可对C语言的文件进行编译生成可执行文件,然后直接输入此文件即可执行该文件的内容。(这里要注意的是其它语言需用不同的工具进行编辑,gcc只能对C语言进行编辑)

gcc code.c //对code.c文件进行编辑,假设生成a.out可执行程序

./a.out //执行该可执行文件

        在vim中,有多种多样的模式,这些模式分别执行不同的对应功能,常用的模式分别为:命令模式、插入模式、底行模式、替换模式。这些模式分别完成不同的工作,若想查看所有模式,只需在底行模式中输入 help vim-modes 即可查看所有vim模式和功能。

:help vim-modes //将会显示所有vim模式

2,模式的使用

        命令模式:命令模式是vim打开时默认的模式,在此模式中所有的输入都被当做命令来看待,在此指令中也有可能误碰了模式切换的命令。

        插入模式:在命令模式中,按 “ i ” 键可在当前的光标下进入插入模式,按 “ a ” 键可将光标向前移动一个单位进入插入模式,按下 “ o ” 键可直接在当前的行列进行换行并进入插入模式,总的来说按下 “ a、i、o ” 即可进入插入模式,要想回到命令模式,按下键盘中左上角的 “ Esc ” 即可。在插入模式中,我们可对文件进行编辑工作。

        底行模式:在命令模式中,按下 “ Shift + ; ” 键(即:“ : ” 键)即可进入底行模式。

        替换模式:在命令模式中,输入 “ Shift + r ”键(即:“ R ”键)可进入替换模式。在替换模式中,我们在光标位置下输入的数据将会替换原本的内容。

命令模式:

        命令模式通常是用规定的指令来对编辑的内容进行控制,下面是一些命令模式中的指令。

        在命令模式中还有 “ ZZ ” 可直接保存退出文档,但这种指令有未知风险,不建议使用,所以在这里我们就不加上去了,了解即可。

插入模式:

        在插入模式中,唯一要注意的是异常退出vim文档的情况。

        当我们正在进行编辑工作时,该文档一但异常退出,如关机机器,外在因素直接退出等,系统会产生一个异常文件,再次用 vim 进入此文件时会显示此异常文件。此异常文件是保留原有数据的文件,这时,只需按下 “ R ” 键即可恢复上一次新增的内容。要想删除此异常文件按下 “ D ” 键即可删除此异常文件,这里要注意的是,若我们直接删除此文件,上一次未保存的数据将不会恢复。此文件下面有具体选项按键说明,只需根据说明操作即可。

异常文件

底行模式:

        底行模式跟命令模式不一样,底行模式是对整个文档进行指令控制。

        1,在底行模式中,输入 “ w ” 表示写入,也有保存的意思,“ q ”表示退出,通常输入 “ wq ”表示保存并退出。在有些复杂的情况下系统会限制你的操作,这时只需在最后输入 “ ! ” 即可表示强制操作。

:wq! // 强制保存并退出

:w! // 强制保存

:q! // 强制退出   

        2,在底行模式中,输入 “ ![指令] ” 将会执行shell的指令,即不用再退出vim模式使用指令操作,直接可在底行模式中操作。

:!man scanf //执行man scanf指令,当退出指令时按任意键即可回到vim模式中

        3,当在底行模式中使用指令 vs [文件] 后系统会直接分屏,右边是我们原本文件界面,左边是此【文件】下的界面,可使用此指令来进行多界面文件的编辑,按下 “ Ctrl + ww(或WW) ” 键可使光标跳转到另一个窗口,而此文件界面在保存并退出后将创造此文件。

:vs code.c //系统分屏,左面是code.c文件,右面是原本的文件

        4,在底行模式中有个不常用的小技巧。

               (1)当输入 set nu 可显示当前文档内容的行号,输入 set nonu 将会取消行号。当退             出再进时,行号自动将取消了。

               (2)当退出vim时,像输入 vim code.c + n 进入后光标自动在第n行。

[zhu@zhujunhao ~]$ vim code.c +5 //进入后光标直接在第5行显示

批量化注释:

        批量化注释的操作分为以下5步:

1. Ctrl + v    进行格式化控制的区域    

2. hjkl         上下左右选择要注释的区域   

3. shift + i(即:I)   直接跳转,开始进行注释

4. “ // ”       进行注释 

5. Esc        将控制的区域内进行注释

        批量化取消注释有以下3步:

1. Ctrl + v    进行格式化控制的区域    

2. hjkl         上下左右选择要注释的区域   

3,d           进行取消注释,若按下 “ D ” 将会直接删除所选区域的每行数据

3,vim配置文件

        vim专属配置文件的名称为vimrc,注意,原本系统下没有此文件,需要自己创建,在创建此文件时,需要将此文件设为隐藏文件,即:.vimrc,否则无效。

        在此文件中,输入一些专属指令可对vim编辑的文本进行一系列专属配置。下面我们简单介绍几种配置:

首先要说明的是liunx中,“ " ” 代表注释 

1,set nu          " 设置自动显示行号。

2,set cursorline   " 显示突出当前行,用当前光标下水平线的形式突出

3,set autoindent    " 设置自动缩进(与上一行的缩进相同)

      set cindent

4,set softtabstop=4   " 在设置自动缩进的时候设置为自动缩进4

      set shiftwidth=4

5,set tabstop=4      " “ Tab ” 键缩进空格为4 

6,set smartindent     " 提供自动缩进

7,syntax on             " 代码高亮 

VimForCpp: 快速将vim打造成c++ IDE (gitee.com)        这些配置东西不需要去研究,只是为了方便我们去操作,下面链接提供了专属的vim配置,功能较为齐全:VimForCpp: 快速将vim打造成c++ IDE (gitee.com)  

        安装链接里面的配置需要指令 curl,有了 curl 指令后,可直接将链接里安装方法中的指令输入即可。这里需提醒一下,强烈 "不推荐" 直接在 root 用户下安装执行

[zhu@zhujunhao ~]$ curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

        此种安装只支持 CentOS 7 机器,其它机器不支持。

        里面配置缩进的指令我们默认为缩进为2格,对于初学者而言我们可输入 vim ~/.vimrc 指令进入专属配置文件里面,从第50行到52行的缩进2改成缩进4即可。

[zhu@zhujunhao ~]$ vim ~/.vimrc +50

4,sudo配置文件

        之前说过,sudo 指令必须要将用户配置到指定的root配置文件中才可将其视为 root 指令,此root配置文件为 /etc/sudoers 。这里注意一下,此文件的所有权限为 root 权限,要想对此操作必须要使用 root 权限。vim /etc/sudoers 进入文件后,找到第99行的 “准许在任何地方运行指令” 的操作,按照下面 root 用户操作的模式进行操作,这里要把 root 换成指定用户的名称即可。

[root@zhujunhao zhu]# vim /etc/sudoers +99

99 ## Allow root to run any commands anywhere 
100 root    ALL=(ALL)       ALL
101 zhu     ALL=(ALL)       ALL       将zhu用户添加到此配置文件中

示范样例:

​​​​​​​​​​​​​​

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

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

相关文章

数据可视化工具选择:功能、易用性与安全性

作为一名数据可视化大屏设计师,我深知选择一款合适的数据可视化工具对于提高工作效率和呈现效果的重要性。下面,我将从真正对我们数据可视化大屏设计师有用的角度为大家介绍选择数据可视化工具的一些必要条件和要求。 1. 功能强大与灵活定制 首先&…

UVM中封装成agent

在验证平台中加入monitor时,看到driver和monitor之间的联系:两者之间的代码高度相似。其本质是因为二者 处理的是同一种协议,在同样一套既定的规则下做着不同的事情。由于二者的这种相似性,UVM中通常将二者封装在一起,…

Python编程技巧:多层for循环的高级应用

更多资料获取 📚 个人网站:ipengtao.com Python的for循环结构是编程中最基础也是最常用的控制结构之一。通过for循环,可以轻松遍历数据集合和执行重复的操作。然而,当我们面对多层for循环时,性能和可读性可能会成为挑…

RPG项目01_UI面板Game

基于“RPG项目01_技能释放”,将UI包导入Unity场景中, 将图片放置 拖拽 取消勾选(隐藏攻击切片) 对技能添加蒙版 调节父子物体大小一致 将子类蒙版复制 执行5次 运行即可看到技能使用完的冷却条 在Scripts下创建UI文件夹 写代码&am…

【力扣 面试题02.07链表相交】一种思路极其清晰的解法

力扣一单简单题,看完大佬的题解真是佩服得五体投地! 虽是一道简单题,当我吭哧吭哧写了几十行后,看到大佬仅仅几行直接秒掉,只能说算法的本质还是数学,数学逻辑思维真是太重要了,有时候真得慢慢去…

Zookeeper--环境安装实验

配置java环境: 1-解压 /opt/module/softwart下的java包到/opt/module下: tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/ 2-配置java环境变量: (root用户)去/etc/profile.d/目录下编辑my_env.sh vi /etc/profile.d/my_env.sh export JAVA_HOME=/opt/module/jd…

【电子取证篇】汽车取证数据提取与汽车取证实例浅析(附标准下载)

【电子取证篇】汽车取证数据提取与汽车取证实例浅析(附标准下载) 关键词:汽车取证,车速鉴定、声像资料鉴定、汽车EDR提取分析 汽车EDR一般记录车辆碰撞前后的数秒(5s左右)相关数据,包括车辆速…

Linux系统---图书管理中的同步问题

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、问题描述 (1)图书馆阅览室最多能够容纳N(N5)名学生,若有更多学生想…

10.机器人系统仿真(urdf集成gazebo、rviz)

目录 1 机器人系统仿真的必要性与本篇学习目的 1.1 机器人系统仿真的必要性 1.2 一些概念 URDF是 Unified Robot Description Format 的首字母缩写,直译为统一(标准化)机器人描述格式,可以以一种 XML 的方式描述机器人的部分结构,比如底盘…

吉他初学者学习网站搭建系列(5)——如何做一个在线节拍器

文章目录 背景实现TransportLoop代码 在线尝试 背景 我们看吉他谱时,经常看到拍号,例如6/8。它的含义是一拍是一个八分音符,一小节有六拍。四分音符的时长是一秒,即60拍/分钟。基于这样的背景知识,我们就可以根据一些…

一文看懂 Linux 内核,清晰明了

Linux内核预备工作 理解Linux内核最好预备的知识点:懂C语言 懂一点操作系统的知识 熟悉少量相关算法 懂计算机体系结构 Linux内核的特点: 结合了 unix 操作系统的一些基础概念。 Linux内核的任务: 1. 从技术层面讲,内核是硬…

华为快应用中自定义Slider效果

文章目录 一、前言二、实现代码三、参考链接 一、前言 在华为快应用中官方提供了<slider>控件&#xff0c;但是这个控件的限制比较多&#xff0c;比如滑块无法自定义&#xff0c;所以这里进行下自定义&#xff0c;自己修改样式。 二、实现代码 整体效果如下: 源码如下…

全网最新最全的Appium自动化:Appium常用操作之等待操作

等待机制&#xff1a; 为了保证脚本的稳定性&#xff0c;有时候需要引入等待时间&#xff0c;等待页面加载元素后再进行操作&#xff0c;主要有三种等待时间设置方式。 方式一&#xff1a; sleep()&#xff1a;固定等待时间设置&#xff0c;python的time包里提供了休眠方法sle…

Windows测试端口连通性(Telnet勾选)

“win““r”之后&#xff0c;telnet地址端口号 在最新版本的Windows中&#xff0c;默认情况下并没有安装Telnet客户端。如果遇到"telnet不是内部或外部命令…"的错误&#xff0c;请手动安装Telnet客户端。你可以在控制面板的"程序和功能"选项卡中找到&quo…

基于Git的代码工程管理——学习记录一

一、Git简概[1] Git是一个分布式版本控制系统&#xff0c;它跟踪任何一组计算机文件的更改&#xff0c;通常用于在软件开发过程中协调协作开发源代码的程序员之间的工作。其为实现快速、数据完整性以及分布式非线性工作流程&#xff08;在不同计算机上运行数千个并行分支&#…

搬运工让你分分钟了解Web接口测试

01、什么是接口 百度说&#xff1a;接口泛指实体把自己提供给外界的一种抽象化物&#xff08;可以为另一实体&#xff09;&#xff0c;用以由内部操作分离出外部沟通方法&#xff0c;使其能被内部修改而不影响外界其他实体与其交互的方式 上面这句有点抽象&#xff0c;网上的…

跨语种「AI同传」颠覆语音翻译!Meta谷歌连发重大突破

Meta谷歌接连放出重磅成果&#xff01;Meta开源无缝交流语音翻译模型&#xff0c;谷歌放出无监督语音翻译重大突破Translation 3。 就在Meta AI成立10周年之际&#xff0c;研究团队重磅开源了在语音翻译领域的突破性进展——「无缝交流」&#xff08;Seamless Communication&a…

python中的输入输出

文章目录 输入函数input()例子1.如何输入获得两个字符串?&#xff08;若输入abc def或abc,def)2.如何输入获得两个整数?&#xff08;若输入34,567)3.如何输入后获得一个元素均为数值型的列表?&#xff08;若输入12,3.4,567或[12,3.4,567]&#xff09; 输出输出函数print()pr…

第十六届山东省职业院校技能大赛 中职组网络建设与运维赛项样题

第十六届山东省职业院校技能大赛 中职组网络建设与运维赛项样题 赛题说明 一、竞赛项目简介 “网络建设与运维”竞赛共分为以下三个模块&#xff1a; > 网络理论测试&#xff1a; > 网络建设与调试&#xff1b; > 服务搭建与运维。 模块 比赛时长 分值 模块一 网络…

【恋上数据结构】二叉堆学习笔记

二叉堆 需求分析 Top K 问题 什么是 Top K 问题&#xff1f; 从海量数据中找出前 K 个数据。 比如&#xff1a;从 100 万个整数中找出最大的 100 个整数Top K 问题的解法之一&#xff1a;可以用数据结构 “堆” 来解决。 堆 堆是一种【完全二叉树】&#xff0c;可以分为【…