Linux工具(一)

news2024/12/23 23:54:01

      前言: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.coloradmin.cn/o/1022109.html

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

相关文章

爬虫 — Scrapy 框架安装问题

整理几个关于安装 Scrapy 框架时会遇到的问题及解决方法。 1、 pip install typing-extensions4.3.0 -i https://pypi.douban.com/simple 2、 pip install pyOpenSSL22.0 -i https://pypi.douban.com/simple 3、 pip install cryptography36.0.2 -i https://pypi.douban.com/s…

基于GBDT+Tkinter+穷举法按排队时间预测最优路径的智能导航推荐系统——机器学习算法应用(含Python工程源码)+数据集(四)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Pycharm 环境Scikit-learnt 模块实现1. 数据预处理2. 客流预测3. 百度地图API调用4. GUI界面设计5. 路径规划6. 智能推荐 系统测试1. 训练准确率2. 测试效果3. 程序应用 相关其它博客工程源代码下载其它资料下载 …

如何在云服务器上成功安装MongoDB数据库并用Python连接(问题及解决方法)

最近购买了1台腾讯云轻量服务器做测试,想在上面安装MongoDB数据库。但安装过程并不顺利,遇到了几个问题。本文记录一下安装过程及遇到的问题和解决方法。 一、软件下载地址: 1.直接打开MongoDB官网:https://www.mongodb.com/ …

2023 Google 开发者大会:助力传承和弘扬传统文化

文章目录 前言一、关于 Google 开发者大会1.1、什么是 Google 开发者大会?1.2、CSDN 上线 2023 Google 开发者大会专题页 二、敦煌深厚的艺术沉淀2.1、“云想衣裳花想容”?2.2、“大漠孤烟直,长河落日圆” 三、传统文化赋予现代艺术设计灵感四…

1.IAR-8051安装

新版安装教程:IAR EW for 8051 简介与安装 新版软件zhuce:IAR EW for 8051 软件注册 - 知乎 这个新版的我也放到网盘里面了,自己自行选择安装 一、下载IAR-8051 链接:https://pan.baidu.com/s/1mYwSQvSjAiSzltrEbK3yAw?pwd43cd …

IPV4和IPV6,公网IP和私有IP有什么区别?

文章目录 1、什么是IP地址?1.1、背景1.2、交换机1.3、局域网1.4、广域网1.5、ISP 互联网服务提供商 2、IPV42.1、什么是IPV4?2.2、IPV4的组成2.3、NAT 网络地址转换2.4、端口映射 3、公网IP和私有IP4、IPV6 1、什么是IP地址? 1.1、背景 一台…

接口调用三种方式

创建服务端 一个controller,一个启动类,配置端口 controller import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController public class ServerController {Req…

uniapp开发h5 遇到一个刻度尺的需求 实现记录

先上最终实现图 实现这个功能使用的是github上找的一个库 叫slide-ruler 地址 实现思路: 第一步:在终端npm 下载这个依赖 第二步:新建一个刻度尺自定义组件,如果不是自定义组件会不生效,并且这个自定义组件里面放一…

用无代码搭建数据中台,竟做到如此丝滑

文章目录 需求背景系统介绍配置说明1 菜单导航2 系统自带组件导入页面(1)数据集成相关组件(2)数据服务相关组件 3 由系统组件路径添加页面(1)数据资产管理(2)数据标准管理&#xff0…

Hutool工具包:http客户端工具(使用教程)

目录 一、Hutool介绍 二、笔者的话 三、引入依赖 四、大致步骤 五、GET请求 5.1 代码 5.2 结果展示 六、POST请求 6.1 代码一(Form Data类型参数) 6.2 结果展示 6.3 代码二(Form Data类型参数 - 含上传文件) 6.4 结果…

idea设置项目启动的JVM运行内存大小

idea设置项目启动的JVM运行内存大小 场景 在开发当中,idea默认服务启动要占用1G内存。其实每个项目本地开发和调试的时候,根本不需要1G内存,200M左右足以 如果在微服务体系下,那效果更明显,相同的内存可以启动更多的…

Linux学习之Redis集群部署

Redis集群部署 准备集群环境 创建集群 # 准备集群环境--配置192.168.88.51(host51) [rootlocalhost ~]# yum install -y redis [roothost51 ~]# vim /etc/redis.conf bind 192.168.88.51 cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 5000…

Java web基础知识

Servlet Servlet是sun公司开发的动态web技术 sun在API中提供了一个接口叫做 Servlet ,一个简单的Servlet 程序只需要完成两个步骤 编写一个实现了Servlet接口的类 把这个Java部署到web服务器中 一般来说把实现了Servlet接口的java程序叫做,Servlet 初步…

成功的海外网红营销:文化和价值观冲突的应对策略

随着全球数字化和社交媒体的崛起,海外网红营销已经成为企业推广产品和服务的一种重要方式。然而,这种全球性的营销活动也伴随着文化和价值观的多样性,容易导致潜在的冲突和误解。为了取得成功并避免不必要的争议,企业需要深入了解…

从B-21轰炸机看美空军作战战略趋势

源自:北京蓝德信息科技有限公司 图注:The B-21 Raider was unveiled to the public at a ceremony Dec. 2, 2022, in Palmdale, Calif. (U.S. Air Force photo) (一)B-21开发进展 (二)B-21性能研判 声明:公众号转载的文章及图片出于非商业性的教育和科研…

2023 RISC-V 中国峰会 演讲幻灯片和视频回放 均已公开

安全之安全(security)博客目录导读 目录 一、幻灯片地址 二、演讲视频 一、幻灯片地址: GitHub - cnrv/RVSC2023: RISC-V Summit China 2023 二、演讲视频: RISCV国际基金会的个人空间-RISCV国际基金会个人主页-哔哩哔哩视频 参考:CNRV …

python+django社区医院诊所医疗管理系统_6t4o8

技术栈 后端:pythondjango 前端:vueCSSpythonScriptjQueryelementui 开发语言:Python 框架:django/flask Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCh…

计算机专业毕业设计项目推荐05-共享汽车管理系统(SpringBoot+Js+Mysql)

共享汽车管理系统(SpringBootJsMysql) **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计…

解码知识图谱:从核心概念到技术实战

目录 1. 概述什么是知识图谱知识图谱与自然语言处理的关系 2. 发展历程语义网络本体论大数据时代的知识图谱知识图谱与深度学习的融合 3. 研究内容知识图谱的建模与表示知识抽取知识图谱的融合与对齐知识图谱的推理知识图谱的评估与验证 4. 知识图谱表示与存储RDF:一…

基于java SpringBoot和HTML实验室预约管理系统设计

摘要 实验室信息管理系统是利用计算机网络技术、数据存储技术、快速数据处理技术对实验室进行全方位管理的计算机软件系统。实验室信息管理系统从最初仅完成数据存储和有限的网络功能,发展到现在可以处理海量数据,具备完善的管理职能,并且能够…