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

目录

一,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.mzph.cn/news/198941.shtml

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

相关文章

弱口令防护和网站防盗链有什么用

弱口令防护主要针对用户账户的安全。弱口令是指容易被猜测或破解的密码,如常见的密码、简单的数字序列或字典中的单词等。弱口令防护的目的是防止恶意用户或攻击者通过猜测或暴力破解密码的方式获取合法用户的账户权限。通过实施强密码策略、密码复杂度要求和账户锁…

【EI会议征稿中|航空航天领域】第二届航空航天与控制工程国际学术会议(ICoACE 2023)

第二届航空航天与控制工程国际学术会议(ICoACE 2023) 2023 2nd International Conference on Aerospace and Control Engineering 2023年第二届航空航天与控制工程国际学术会议(ICoACE 2023)将于2023年12月15-17日在江苏南京召开…

Selenium+Unittest+HTMLTestRunner框架更改为Selenium+Pytest+Allure(一)

背景:之前的框架,Selenium是3.x版本,现在更新到4.15版本后,一些写法如find_element_by_xxx 不再支持,改为find_element(By.xxx)的方式,同时由于Unittest不如Pytest在执行方面灵活(比如只执行冒烟…

数据库安全运维系统厂家在深圳的有哪些?咨询电话多少?

IT小伙伴都知道,数据库安全运维至关重要,因为随着信息技术的不断发展,数据库已经成为企业存储、管理和处理数据的关键平台,数据库承载着企业不少数据资产。因此使用数据库安全运维系统是必要的。那你知道数据库安全运维系统厂家在…

计算机网络:可靠数据传输(rdt)、流水协议、窗口滑动协议

文章目录 前言一、Rdt1.Rdt1.02.Rdt2.03.Rdt2.14.Rdt2.25.Rdt3.0 二、流水线协议1.滑动窗口(slide window)协议发送窗口接收窗口正常情况下的2个窗口互动异常情况下GBN的2个窗口互动异常情况下SR的2窗口互动GBN协议和SR协议的异同 2.小结 总结 前言 Rdt…

宝塔上安装mysql遇到的问题

宝塔上安装mysql遇到的问题 文章目录 宝塔上安装mysql遇到的问题一、下载mysql二、启动报错三、设置密码四、解决报错bash未找到命令mysql五、继续修改root密码五、宝塔中设置端口六、使用连接工具连接数据库 一、下载mysql 宝塔软件商店里下载mysql,然后点击启动。…

ELasticsearch:什么是语义搜索?

语义搜索定义 语义搜索是一种解释单词和短语含义的搜索引擎技术。 语义搜索的结果将返回与查询含义匹配的内容,而不是与查询中的单词字面匹配的内容。 语义搜索是一组搜索引擎功能,其中包括根据搜索者的意图及其搜索上下文理解单词。 此类搜索旨在通过…

python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】

文章目录 一.背景二.需求三.实现源码3.1 项目结构3.2 源码3.3 核心调节照片大小 四.代码解释五.实现效果六.心得总结 一.背景 在当今数字化时代,照片处理和文档编辑是许多领域中不可或缺的任务。从个人创作到企业文档,人们经常需要快速而有效地处理大量…

Linux IO多路转接之epoll

文章目录 一、epoll初识 二、epoll的相关系统调用 1.epoll_create 2.epoll_ctl 3.epoll_wait 三、epoll工作原理 四、epoll的工作方式 本文主要介绍了epoll内部工作机制,如何达到高性能的多路转接。技术有限,如有错误请指正。参考文献:…

【Redis】Redis 的学习教程(十三)Redis 各场景

由于Redis 支持比较丰富的数据结构&#xff0c;因此他能实现的功能并不仅限于缓存&#xff0c;而是可以运用到各种业务场景中&#xff0c;开发出既简洁、又高效的系统 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

第三节:提供者、消费者、Eureka

一、 提供者 消费者&#xff08;就是个说法、定义&#xff0c;以防别人叭叭时听不懂&#xff09; 服务提供者&#xff1a;业务中被其他微服务调用的服务。&#xff08;提供接口给其他服务调用&#xff09;服务消费者&#xff1a;业务中调用其他微服务的服务。&#xff08;调用…

QThread之moveToThread用法

简介 使用moveToThread函数的流程如下&#xff1a; 1、创建一个类继承自QObject类或其子类&#xff0c;并在其中定义所要执行的多个任务&#xff0c;执行多个任务就要定义相应的信号。 2、任务通过moveToThread指定所要执行的线程。 3、线程通过start启动 4、通过信号与槽机制…

【AI绘画】万字长文——(超详细)ControlNet的详细介绍使用Stable Diffusion的艺术二维码完全生成攻略

目录 前言一、名词解释1-1、Stable Diffusion介绍1-2、ControlNet介绍1-2-1、ControlNet介绍&工作原理1-2-2、ControlNet控制方法介绍 1-3、案例分析1-3-1、室内装修设计1-3-2、品牌创意海报 1-4、stable-diffusion-webui 的参数解释 二、生成方法2-1、图像到图像2-1-1、二…

Python使用netmiko配置华为交换机

一、netmiko介绍 1.更适合网络设备的自动化运维模块。 二、场景 1、批量查询 2、批量配置变更、备份 三、项目地址 GitHub - ktbyers/netmiko: Multi-vendor library to simplify Paramiko SSH connections to network devices 三、使用步骤 1.安装netmiko pip install ne…

D6208单片双向马达驱动电路国产芯片,工作电源电压范围宽(4.5V~15.0V),内设保护二极管采用SOP8封装

D6208 是一块单片双向马达驱动电路&#xff0c;它使用TTL电平的逻辑信号就能控制卡式录音机和其它电子设备中的双向马达。该电路由一个逻辑部分和一个功率输出部分组成。逻辑部分控制马达正、反转向及制动&#xff0c;功率输出部分根据逻辑控制能提供100mA&#xff08;典型值&a…

腾讯地图系列(二):微信小程序添加插件(三种方法)以及插件AppId获取

目录 第一章 前言 第二章 添加插件 2.1 微信小程序添加插件方法一&#xff08;微信公众平台添加插件&#xff09; 2.2 微信小程序添加插件方法二&#xff08;通过项目配置添加插件&#xff09; 2.3 微信小程序添加插件方法三&#xff08;微信公众平台服务市场添加插件&…

spring mvc理解

spring mvc M&#xff1a;model 模型 V&#xff1a;view 视图 C&#xff1a;controller 控制器 S: service 服务处理 D: Dao 数据持久化 视图 我理解就是web页面&#xff0c;帮助用户调用后端接口。 前后端分离之后&#xff0c;view似乎就和后端没什么关系了。 模型 格式…

zabbix6.4监控交换机发现ICMP报错Ping item must have target or host interface specified

报错信息&#xff1a; 查看监控项&#xff1a; 修改键值&#xff1a; 保存再次检查&#xff0c;发现又报错/usr/sbin/fping: [2] No such file or directory 原因是&#xff0c;zabbix-server上没有安装fping工具 解决方法&#xff1a;yum install fping -y 之后数据采集正常…

【unity3D】Transform组件(如何访问和获取Transform组件)

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的Transform组件 Transform组件 基础知识介绍三个成员变量常用属性扩展 Transform的相关查找方法静态方法 基础知识 介绍 在Unit…

mapbox实现框选要素

成果图 参考博客 https://blog.csdn.net/ScapeD/article/details/89158755 原理与源码 利用mapbox的queryRenderedFeatures方法可以获取范围内的要素&#xff0c;但是这个只能是点和矩形和范围内的全屏要素&#xff0c;并不支持多边形&#xff0c;所以实现这个的思路就是画完框…