Linux工具(一)

      前言:Linux是一个开源的操作系统,它拥有庞大而活跃的开发社区,为用户提供了丰富多样的工具和应用程序。这些工具不仅适用于系统管理员和开发人员,也适用于普通用户,可以帮助他们完成各种任务,从简单的文件管理到复杂的系统配置。从本文开始,我们将系列学习五个Linux的入门开发工具,本期我们先来介绍两个工具:yum和vim工具。

目录

1.Linux 软件包管理器 yum

尝试安装和卸载 sl 

拓展yum源的安装

2.Linux开发工具

Linux编辑器-vim使用

vim的基本概念

vim的基本操作

vim正常模式命令集(在命令模式下)

vim底行模式命令集

代码注释

vim的多文件同时编辑

vim的配置


1.Linux 软件包管理器 yum

Linux一般如何安装一款软件

一般的,Linux下安装一款软件有两种方式,分别是源代码安装和rpm包安装,

源代码安装:Linux下大多数工具基本上都是开源的,这些代码一般都需要我们采用自动化脚本进行编译,在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序,自己编译安装,出了错还需要自己处理,如果源代码存在移植性问题一般不好解决。

rpm包安装:本质上就是把可执行文件拷贝到指定的文件目录中去,但是我们不可能一直都知道我们需要将程序安装到哪个目录下合适。

yum一键安装:上面的两种方式比较麻烦太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。

软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.

        我们在移动设备上安装的app,在还没有被安装之前,是在服务器里面存放着的,我们用应用商店下载安装的本质,实质上是应用商店作为客户端,软件的服务器将某些软件上架到手机厂商的服务器,应用商店通过访问手机厂商的服务器下载软件,也是因为有了手机厂商这一中间渠道,也就净化了安装软件的服务,手机厂商要想保证自己手机的服务品质,就必须对这些想要上架到手机厂商的服务器的安装包进行甄选,所以,从应用商店下载的东西,一般的品质都是比较好的。

yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上. 这里我购买的服务器是Centos版本。

尝试安装和卸载 sl 

      我们来简单尝试一下去安装和卸载常见的命令,一般的,我们的安装工作都在root用户下进行,root用户下安装的工具,其余的普通用户也都可以使用。下面我们以命令 sl 为例来说明,首先,我们需要找到我们对应的软件列表,类似于查询,

可以找到我们想安装的命令的名称叫做sl,.后面的是命令后缀

输入sl,一辆正在行驶的小火车就出来喽~~

类似于这种好玩的命令,我们可以在网上搜到很多,感兴趣可以安装过来和同学装一下。

       那么如何卸载这个命令,我们就可以直接使用 yum remove 命令来实现,对应的选择y即可卸载,当然,如果不需要询问是否要删除的话,我们可以直接采用 yum remove -y [工具名] 来实现,其他的一些询问需求也同样适应。

拓展yum源的安装

       yum源其实就是连接Linux服务器和软件提供者服务器的链接,yum中需要存在一定的文件来保存软件的下载地址,需要从对应的地址下载过来到自己的Linux的服务器上,但是大多数软件的服务器都在国外,国外访问不太稳定,所以,我们一般可以将我们的yum源下载并切换到国内的镜像的yum源,这样我们访问就能更稳定,一般不影响使用的话可以不换,这里就不再赘述。

      对与一些很新的软件或者一些其他的工具,本地的基础yum源可能不会及时的更新,所以,就需要我们安装对应的yum源的扩展版本,同时,我们可以通过以下命令来查看对应的yum源的列表

ls /etc/yum.repos.d/

这个epel.repo 就是我们对应的yum源的拓展软件源,这里我已经安装了,这里给出安装命令,安装之后可以再次查看对应的列表看看是否有了epel.repos

yum install -y epel-release

        关于安装哪些软件这个要看个人的需求,我们只需要掌握安装方法即可,就像刚买来的手机,不可能一下子就把所有的app全部安装完成,我们只是在平时使用的过程中产生了需求才会让我们取安装一些应用。 

2.Linux开发工具

Linux编辑器-vim使用

vim的基本概念

        vim其实就是一款多模式的文本编辑器,类似于我们windows中的一些代码编辑软件,比如vscode等,vim的多模式模式我们需要掌握的模式一般只需要三种即可,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁 的编辑模式。

末行模式(last line mode)

      文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+ : 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 :help vim-modes

三者之间的切换需要注意,其中略有一些细节需要注意:

vim的基本操作

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

当然,如果vim 一个不存在的文件,也就相当于直接创建了文件, 

键盘输入i,进入插入模式,此时我们就能编辑我们想要的代码了。

退出vim及保存文件,在[正常模式]下,按一下shift+ : 键进入底行模式,例如:

: w (保存当前文件)

: wq (输入「wq」,存盘并退出vim)

: q! (输入q!,不存盘强制退出vim)

:set nu/nonu  设置代码  显示/不显示   行号

vim正常模式命令集(在命令模式下)

gg :移动光标到开头处

(n+)shift + g :定位光标到任意一行,n可以省略,省略就是定位到最后一行

shift + 4(非数字盘的那个4,上面带有 $ 符号):将光标定位到特定一行的结尾

shift + 6(^) : 将光标定位到特定一行的开头

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是在命令模式下用小写英文字母 h、j、k、 l,分别控制光标左、下、上、右移一格(早期键盘没有方向键,Linux延续了老式键盘的键位)

w: 以单词为单位向前移动到单词的开头,如果不是单词则还是一个字符一个字符移动

b:以单词为单位向后移动到单词的最后一位的下一位

e:以单词为单位移动到单词的最后一位

(n) yy:将光标所在的行进行整行内容复制

(n) p:粘贴内容到当前行,n表示内容一次性粘贴n行

u: 撤销上一个操作

ctrl +r :撤销上一个撤销操作

(n) dd :剪切功能,将当前光标处的一行(往下n行),删除并复制到剪切板中,p即可赋值

shift + `(esc正下方的那个键) : 按住即可将光标所在行从头至尾的字符进行小写转大写,大写转小写。

(n) r :将从当前光标所在位置向后的n个位置的字符都覆盖式替换为接下来我们自己手动输入的字符

shift +r  (相当于切换成大写模式输入 R):切换为replace模式,直接根据键盘接下来输入的字符从当前光标开始覆盖式替换字符

(n) x :向光标后删除一个(n个)字符

vim底行模式命令集

set nu /nonu:显示/不显示 行号

shift + 3 (带#的3)  : 检索当前光标所在区域的全部位置的单词,之后我们一直按 n 可以快速遍历这些位置的对应的同名单词,方便查找

/  :  先按 / 键,再输入想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按  n 会往后寻找到您要的关键字为止

shift + ? : 先按键shift + ? ,再输入想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 n 会往前寻找到您要的关键字为止。

?和 / 查找单词有什么不一样呢?

  1. 使用“/” 进行正向查找:按下“/”键,然后输入要查找的单词,按下回车键。vim会从当前光标位置开始往后查找匹配的单词。按下“n”键可定位到下一个匹配项,按下“n”键可定位到前一个匹配项。

  2. 使用“?”进行反向查找:按下“?”键,然后输入要查找的单词,按下回车键。vim会从当前光标位置开始往前查找匹配的单词。按下“n”键可定位到上一个匹配项,按下“n”键可定位到后一个匹配项。

shift +w :将文件保存起来

shift +q (!) :退出,如果无法离开vim,可以在后跟一个 ! 强制离开vim。

shift +wq : 退出并保存文件

代码注释

批量化注释

      在命令模式下,将光标定位到我们想要注释的行上,按ctrl + v 进入视图模式,接着按我们的 j和k两个键(按上下的方向键也行)选到我们想要注释的末行,接着按 shift + i 进入插入模式,输入我们的注释符号 “// ”,然后按esc,我们就可以将我们选中的行进行批量注释了。

批量化删除注释

      同样的,我们还是 在命令模式下,将光标定位到我们想要注释的行上,按ctrl + v 进入视图模式,接着按我们的 j和k两个键(按上下的方向键也行)选到我们想要注释的末行,这里需要注意,删除注释必须注释符号的两列 ‘/’ 符号都选中,才能一次性删除注释,用我们的h和l 键配合向左右选中即可, 然后再按一下d即可批量化删除注释。

下面,我们就可以更新一下vim的模式图了:

vim的多文件同时编辑

     我们在一些编译器中编写代码的时候,能够同时编写多个文件,比如头文件和源文件等,同样的,我们在vim中也可以实现这个功能,我们可以在vim编辑一个软件的同时,进入底行模式,输入命令 vs [新文件名],这样我们就可以同时分屏创建两个文件,同时进行编写。

多任务如何切换?

     文件虽然有多个,但是光标只有一个,一切以光标为准,我们在编辑一个文件时,想要跳转到另一个文件,一种最简单的方式,就是按 ctrl +ww ,从当前文件切换到另一个文件。

vim的配置

基础配置

     vim在启动的时候,会自动扫描用户家目录下的 .vimrc文件,让该文件内部的内容生效,vim配置的原理,核心就是向 .vimrc文件中添加更多的个性化的配置选项,vim也可能会需要各种插件,以满足除了一些基础功能之外的其他的个性化功能。

自动化部署配置(C++)

     这里,我们尽量在普通用户下,目前只支持 Centos7 x86_64版本,我们在命令行中输入以下命令:

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

接着拿到我们的root用户的密码,输入密码以继续安装。

如果中途出现信任列表的问题,我们需要在root用户下,打开文件

vim  /etc/sudoers

找到第100行左右(不同的文件可能会有差异),看到类似下方的模块:

 

      进入插入模式找到对应的信任列表添加自己的用户名再返回安装即可,注意别忘了添加用户之后先进入底行模式保存再退出。

安装完成,按提示命令输入即可配置成功。

效果图:

这个配置,在写代码的时候自动缩进是两个字符,如果需要改的话,我们可以直接cd到home目录,在目录下面找到一个叫 .vim的文件,

然后 vim .vimrc ,接着直接搜索2,将2改成4,然后保存退出即可。

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

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

相关文章

题目 1057: 二级C语言-分段函数

有一个函数如下,写一程序,输入x,输出y值。 保留两位小数 样例输入 1 样例输出 1.00 这道题的思路很简单,我直接用if判断输入的X对应的函数Y的区间,代入对应的函数,求出结果。记得变量用浮点型&#xff…

亚马逊云科技面向游戏运营活动的AI生图解决方案

随着Stable Diffusion等AI生图方案逐步普及,越来越多的场景被开发和落地。其中面向游戏C端玩家的AI生图营销活动场景正在被逐步验证:在某个游戏社区中,玩家一键从手机上传一张照片,AI会将自动识别该照片中的元素并替换成游戏中相应…

今年嵌入式行情怎么样?

今年嵌入式行情怎么样? 嵌入式技术今年可以说是IT领域中最炙手可热的之一。随着中年危机和内卷问题的出现,越来越多的互联网从业者将目光投向了嵌入式领域。国内的嵌入式市场一直受终端需求变化的影响而波动,但随着国内产业自主化的发展趋势…

Python匿名函数

简单来说,匿名函数就是懒。 结构 函数名 lambda 参数 : 函数体 fun lambda x,y : x*y*y fun(3,5)优点 可以让写代码更“懒”一点

[S2] Challenge 25 心脏病预测

问题 您是一家医疗保健公司的数据科学家,试图创建患者是否患有心脏病的预测因子。目前,您正在试验 11 种不同的特征(潜在心脏病指标)和 XGBoost 分类模型,您注意到它的性能可能会根据其调整方式而发生很大变化。在此挑…

Docker的基本操作

Docker的基本操作 操作常见指令 # 推送镜像到服务 docker push # 从服务拉去镜像 docker pull # 构建镜像 docker build # 保存镜像为一个压缩包 docker save # 加载镜像 docker load镜像加载、删除等 拉取nginx docker pull nginx查看镜像 docker images # 只查看id doc…

thinkphp:查询本周中每天中日期的数据,查询今年中每个月的数据,查询近五年每年的总数据

一、查询本周中每天中日期的数据 结果: 以今天2023-09-14为例,这一周为2023-09-11~2023-09-07 代码 后端thinkphp: //查询本周每天的的总金额数 //获取本周的起始日期和结束日期 $weekStart date(Y-m-d, strtotime(this week Monday)); $weekEnd …

【QT--使用百度地图API显示地图并绘制路线】

QT--使用百度地图API显示地图并绘制路线 前言准备工作申请百度地图密钥(AK)安装开发环境 开发过程新建项目ui界面GPSManager类主窗口Map 效果展示 前言 先吐槽一下下,本身qt学的就不咋滴,谁想到第一件事就是让写一个上位机工具,根据CAN总线传…

x86架构基础汇编知识

​ 通用寄存器 EAX 32位 函数返回值 AX 低16位 AH 高八位 AL 低八位 EBX 32位 ECX 32位 循环次数,this指针 EDX 32位 EBP 32位 栈底寄存器 ESP 32位 栈顶寄存器 ESI 源索引寄存器 EDI 目标索引寄存器 EIP 无法直接通过汇编操作 例子 mov al,0xff …

python 第一次作业

1.使用turtle换一个五环 2.设计这样一个程序:输入一个数字 判断它是不是一个质数 使用turtle换一个五环: >>> import turtle #导入模块 >>> turtle.width(10) #设置圆圈宽度 >>> turtle.color("blue&qu…

Tomcat7+ Weak Password Backend Getshell Vulnerability

漏洞描述 Tomcat 支持通过后端部署 war 文件,所以我们可以直接将 webshell 放入 Web 目录下。为了访问后端,需要权限。 Tomcat7 的权限如下: 经理(后台管理) 管理器-GUI(HTML 页面的权限)管理…

WMS系统库存条码管理

1. 定义 库存条码管理是WMS系统中的一项关键功能,通过对仓库内货物进行条码标识和管理,实现对库存的精确追踪和控制。库存条码可以是一维条码(如条形码)或二维条码(如QR码),用于唯一标识和识别…

华为数通方向HCIP-DataCom H12-821题库(单选题:361-380)

第361题 如图所示是一台路由器的BGP输出信息。那么以下关于这段信息的描述,错误的是哪一项? <Huawei>display bgp error Error Type: Peer Error Peer Address:10.1.1.2 VRFName:Public Error Info: Router-ID conflictA、该路由器邻居地址是10.1.1.2 B、Error Type显…

SpringBoot2.0(mybatis-plus常见的增删改查和分页)

目录 一&#xff0c;mybatis-plus常见注解二&#xff0c;创建一个工具类和启动类三&#xff0c;创建实体类四&#xff0c;创建mapper接口五&#xff0c;创建service接口和impl类六&#xff0c;创建配置类七&#xff0c;创建controller八&#xff0c;使用测试工具测试增删改查和…

Reids Cluster集群部署

服务器端口说明 vim /etc/hosts 1.下载、解压、编译Redis $ mkdir -p /opt/redis && cd /opt/redis $ wget http://download.redis.io/releases/redis-6.0.6.tar.gz $ tar xzf redis-6.0.6.tar.gz 请先检查gcc的版本是否低于5&#xff0c;如果是请先升级&#xff0c…

听GPT 讲Istio源代码--pilot(7)

File: istio/pilot/pkg/model/log.go 在Istio项目中&#xff0c;istio/pilot/pkg/model/log.go文件的作用是定义了Istio Pilot的日志记录功能。 该文件中定义了一个名为log的全局日志记录器&#xff0c;并且还定义了一些与日志记录相关的变量&#xff0c;如verbose、verboseCou…

幸福里基于 Flink Paimon 的流式数仓实践

摘要&#xff1a;本文整理自字节跳动基础架构工程师李国君&#xff0c;在 Streaming Lakehouse Meetup 的分享。幸福里业务是一种典型的交易、事务类型的业务场景&#xff0c;这种业务场景在实时数仓建模中遇到了诸多挑战。本次分享主要介绍幸福里业务基于 Flink & Paimon …

Linux日志管理-logrotate(crontab定时任务、Ceph日志转储)

文章目录 一、logrotate概述二、logrotate基本用法三、logrotate运行机制logrotate参数 四、logrotate是怎么做到滚动日志时不影响程序正常的日志输出呢&#xff1f;Linux文件操作机制方案一方案二 五、logrotate实战--Ceph日志转储参考 一、logrotate概述 logrotate是一个用于…

数据结构--哈希表,哈希函数(或者散列表、散列函数)

目录 哈希表的定义 处理冲突的方法--拉链法 散列查找 常见的散列函数&#xff08;构造哈希函数&#xff09; 除留余数法 直接定址法 数字分析法 平方取中法 处理冲突的方法--开放定址法 &#xff08;1&#xff09;线性探测法&#xff1a; &#xff08;2&#xff09…

mall商城项目:只启动mall-admin情况下Windows环境的部署

文章目录 前提ideaMysql创建数据库mall,导入项目document/sql文件夹下的mall.sql文件,初始化数据RedisPostMan登录接口测试运行前提 mall项目gitee 如果项目只启动mall-admin,仅需安装MySQL、Redis即可 idea IDEA的安装与使用请参考搜索插件仓库,安装插件Lombok;将项目下…