Linux学习:基础开发工具的使用(1)

目录

  • 1. Linux软件包管理器:yum工具
    • 1.1 yum是什么(软件商城)
    • 1.2 yum的使用
    • 1.3 yum的背景生态
  • 2. 项目开发与集成开发环境
  • 3. vim编辑器
    • 3.1 vim编辑器的常见模式与模式切换
    • 3.3 vim编辑器的使用
      • 3.3.1 命令模式下的常见命令:
      • 3.3.2 vim编辑器的相关配置问题

1. Linux软件包管理器:yum工具

1.1 yum是什么(软件商城)

  1. 在前面的学习中,我们使用yum install -y ...这条指令安装过一些操作系统没有自带的指令(可执行程序),可是,这条指令的安装操作究竟是怎么实现的呢,除此之外,它还能安装其他的资源吗?
  2. 接下来就让我们进行对这条简单指令背后知识的学习。
  1. Linux操作系统下安装软件的三种方式:
    <1> 下载软件的源代码,再对其进行编译,最后得到可执行程序(交叉编译)
    <2> 下载网络上已经整合好的对应版本的rpm包,然后进行安装
    <3> 通过操作系统自带的预装指令yum/apt,直接进行一条龙式的软件安装(搜索,下载,安装)
    注:两者方式操作起来较为复杂,且可能会下载安装到没有安全保障的资源,所以在初学时,我们不推荐这两种安装方式。
  1. CentOS下的yum预装指令是如何实现软件安装的:
    <1> 此条指令的意义为请求操作系统中一个名为yum的软件安装工具进行我们所指定软件的安装。
    <2> 这款名为yum的工具软件其实类似于windows操作系统,手机中自带的软件商城,唯一不同的是,Linux操作系统下的软件商城采用的也是命令行的操作方式。

1.2 yum的使用

  1. 在日常中,我们在使用电脑或手机中的软件商城进行软件的安装之外,会对所需要的软件进行搜索定位,或为浏览软件商城中的软件查找所需,在安装后可能还要进行软件的卸载。浏览,搜索卸载与安装,这四种方式搭配才能满足我们在软件安装时的需求,而这三个操作在yum中也有对应的命令行操作方式。
  1. 指令:yum list
    指令意义:查看所有软件列表
  1. 指令:yum list | grep [要搜索软件(lrzsz)]
    指令意义:搜索指定软件(软件罗列与行文本过滤搭配使用达到搜索的目的)
  1. 指令:yum remove [软件]
    指令意义:进行软件卸载
  1. 补充:
    <1> 在使用上述搜索,安装,卸载等指令时,可能需要管理员权限(sudo提权)
    <2> 在使用安装指令时,在安装过程中会存在一些问答,给指令自带的-y参数选项,会同意默认yes回复。
  1. 软件信息的浏览:

在这里插入图片描述

1.3 yum的背景生态

  1. 经过上面两部分知识的学习我们已经对yum这款工具软件有了初步的了解,接下来,让我们对它背后知识较深入学习。首先,让我们来看下面几个问题:
    <1> 我们下载使用的软件是谁进行开发,维护与提供的
    <2> 软件的提供方为什么免费提供这些软件
    <3> 我们需要下载的软件资源存放在哪里
    <4> 我们搜索软件时,是怎么搜索到软件的,搜索方式是什么
  1. 让我们带着这些问题,先来了解一下不同Linux操作系统的社区与生态:
    <1> 现在的市面上有各种各样免费开发源的操作系统Ubuntu,CentOS,RedHat等等,它们的内核都是Linux,可是,又因为什么使得它们有了区别做了划分。
    <2> 当我们需要一个操作系统时,Linux类的各种开源又功能强大的操作系统是我们的首选与优选,可是,Linux操作系统有着众多不同的品牌,我们应该如何选择呢。在选择之前,我们应该去了解哪些信息
    <3> 首要的,应该了解这些操作系统间的不同,经过了解得知,这些操作系统的功能偏向与使用场景不同,它们的基座都是Linux,只是上层的资源存在不同,CentOS的常用于企业级开发,Android用于手机移动端的开发,Ubuntu的用户大多数都是学生。
    <4> 其次,我们如何判断一个操作系统是否足够稳定,足够优秀,我们去进行调研比对,应该采用哪些标准,为什么使用这些指标进行调研。
    <5> Linux系统的调研指标:
    版本:软件项目与应用对操作系统的版本有要求
    使用人数:基数庞大的使用人群,会充分快速的暴露操作系统中的问题并进行解决
    周边软件:周边软件的数量是否足够多,质量是否足够高,有没有能够帮助我们解决问题的软件工具
    配套资源:是否有齐备配套的文档,维护人员与软件开发人员是否专业,这标识着这个操作系统是否足够成熟,是否有良好稳定的发展
    <6> Linux操作系统的社区:
    社区:因为这个操作系统,聚集起来的开发组织,使用人员组成的集体。
    <7> Linux操作系统的生态:以Linux操作系统为环境背景下,整个相关链条上事物的运作与发展。

在这里插入图片描述

  1. 经过上面的了解后,我们大概了解了Linux操作系统的社区与生态。那么,再来回答前面的问题就变得不再困难。
    <1> Linux操作系统上软件的开发,由负责操作系统开发与维护的人员和有能力有意愿的用户共同完成。
    <2> 之所以免费提供这些软件,是因为开发与维护的组织为开源组织,并且软件的开源也可以更好的促进操作系统的良性发展。
    <3> 我们下载的软件资源,存在在专门的充当软件仓库的远端服务器,由开发与维护操作系统的组织进行管理。
    <4> 通过访问远端软件仓库或者网上搜寻的方式来获得软件资源,yum工具在配置文件中有存放远端仓库的地址与专门的网址。
  1. 补充:
    <1> yum存放下载地址的配置文件路径:/etc/yum.repos.d/
    <2> yum源:yum从哪里获得软件资源,即软件资源的来源
    <3> 更新yum源:即更新存放下载地址的配置文件,更换为拥有想要下载地址的配置文件
  1. 更新yum源的指令操作:
    <1> 指令1:wget [存放路径] [下载地址]
    <2> 指令2:wget -O [存放路径 + 重命名的文件名] [下载地址](将下载后的配置文件重命名)
    <3> 指令3:make clean(清空之前yum源留下的缓存)
    <4> 指令4:makecache(缓存现在的yum源)
    <5> 阿里云yum源下载地址:http://mirrors.aliyun.com/repo/Centos-7.repo(Centos-7操作系统)
    <6> 镜像文件:从国外网站获取的操作系统相关的开源源代码
  1. 基础软件源与扩展软件源
    <1> Linux操作系统中,会将系统中常用的软件(会进行动态的添加与删除管理)集中放置到一个地方,方便管理与调用。我把这个用来存放这些软件资源的地方称为基础软件源。
    <2> 我们可以通过指令,安装一个额外的软件源用来集中存放管理不常用的软件,这种软件源被称为,扩展软件源。
    指令:yum install -y epel-release

2. 项目开发与集成开发环境

  1. 我们平常想要顺利的开发项目,进行代码的编写运行,需要经过编写,编译,调试等步骤去一步步实现。
  2. 这一过程中,每个步骤所需要的开发工具都是不同的。在C语言的学习我们并没有对这些开发工具进行详细了解,我们通过直接使用集成开发环境方式进行项目的开发。
  3. 集成开发环境为我们带来便利的同时,它的高度集成也使得我们对程序创建到生成的过程比较陌生,不太利用这方面知识的学习。
  4. 接下来,在Linux操作系统中项目开发我们将不再使用集成开发环境的方式来进行,而会通过不同的开发工具对整个个开发过程进行相对深入与细致的学习。

3. vim编辑器

  1. 程序源代码的编写工具(vim编辑器)

3.1 vim编辑器的常见模式与模式切换

  1. vim编辑器应对不同的编辑需要拥有不同的模式,我们经常会使用的模式有下列几种:
    <1> 命令模式(命令模式所有输入都会被当做命令)
    <2> 插入模式
    <3> 底行模式
    <4> 替换模式
  1. 指令:vim [文件]
    指令意义:使用vim编辑器打开文件,当当前目录中没有此文件,创建此文件并打开
  1. vim编辑器的开启默认模式与模式间的切换:

在这里插入图片描述

  1. 命令模式切换插入模式,不同命令的效果:
    <1> i切换进插入模式,开始位置为当前光标位置
    <2> a切换进插入模式,开始位置为当前光标位置的后一个字符
    <3> o切换进入插入模式,在当前光标所在行的下面创建新的一行,开始位置为新建行的行首
  1. <1>在我们的使用中,使用vim编辑器打开文件后,可能会发生异常退出的情况,此时我们还未来得及对更新的文件内容进行保存。
    <2> 操作系统为了防止内容丢失,会在文件所在目录生成一份保存异常退出时内容的隐藏临时文件(.[文件名].swap)。
    在这里插入图片描述
    <3>当我们进入再次进入这个文件时,会跳出以下界面。我们可以通过底行提示,使用R + D,恢复内容,删除临时文件,再次进入文件就可以正常登录。
    在这里插入图片描述

3.3 vim编辑器的使用

3.3.1 命令模式下的常见命令:

  1. 光标移动命令:(锚点)
    <1> shift + 4($)(光标移动到所在行的最右侧/后侧)
    <2>shift + 6(^)(光标移动到所在行的最左侧/前侧)
    <3>shift + g(G)(光标移动到文件内容的结尾处)
    <4> gg(光标移动到文件的开始位置)
    <5> n + shift + g(光标移动到确定的第n行)
    <6> H J K L(光标向左,下(jump),上(king),右移动,早期键盘没有专门的上下左右键)
  1. 对文件内容的操作命令:
    <1> yy(复制光标当前所在行)
    <2> n + yy(复制n行的内容)
    <3> p(在光标位置粘贴复制内容)
    <4> n + p(将复制内容粘贴n次)
    <5> u(撤销上一步的操作(undo))
    <6> ctrl + R(撤销,撤销操作)
    <7> dd(删除当前行/剪切当前行,配合粘贴达到剪切的效果)
    <8> n + dd(删除/剪切n行)
    <9> shift + (~)(大写小写互相切换)
    <10> r(替换光标所在字符)
    <11> n + r(替换多个字符)
    <12> x(删除光标所在字符)
    <13> n + x(向后删除n个字符)
    <14> n + shift + x(向前删除n个字符)
    <15> w(以单词为步长向后移动)
    <16> b(以单词为步长向前移动)

补充:shift + r(R)(切换到替换模式,此模式下输入均视为替换操作)

  1. 补充命令:
    <1> 当文件处于特殊状态(被查看等)或我们没有权限进行对编辑内容的保存退出
    w!(强制保存),q!(强制退出)(管理员,sudo提权)
    <2> 底行模式下:! + shell命令(command)(在不退出文件编辑的情况下,执行shell命令)
    <3> shift + /(?),输入要搜索的函数名(在整个文件范围,搜索同名函数)
    <4> 底行模式下:vs + 文件名(可在不关闭当前文件的情况下,分屏打开指定文件)
    <5> ctrl + ww(光标在两个两个文件中跳转)
    <6> 底行模式下,set nusetnonu(显示行号,取消行号显示)
    <7> shell命令:vim + 文件 + n(打开文件并跳转到文件的第n行)
    <8> 命令模式下:shift + zz(ZZ)(退出vim编辑器,此种方式不推荐使用)

补充:打开文件时,光标会在上一次关闭文件时光标停留位置

3.3.2 vim编辑器的相关配置问题

  1. 图示模式与批量化注释/去注释:
    <1> ctrl + v(进入图示模式)
    <2>hjkl(选择区域)
    <3> shift + i(进入插入模式)/ d(将选择区域去掉)
    <4> //(向选择区域添加注释)
    <5> Esc(退出)
  1. 进行vim编辑器配置的目的
    vim编辑器的初始功能模式,对于编写代码开并不方便,但我们可以通过调整vim编辑器的配置,来为我们的编辑添加一些辅助功能设置。(自动补全,语句补全,语法报错,自动缩进等)
  1. vim编辑器的配置方法:
    <1> vim编辑器的配置并不是操作系统全用户共享的
    <2> 首先,进入家目录使用ll -a指令查看是否存在.vimrc文件,若不存在则创建此文件
    <3> 接下来,我们对vim编辑器的配置操作都是在这个文件中执行的,我们不断向这个文件添加我们需要的配置命令来满足我们的需求(set nu设置行号,"将配置文件中的内容注释)
  1. 安装应用已经配置成熟的配置文件:
    <1>执行指令:curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
    <2> 按步骤进行安装
    <3> 安装完成后,执行指令:source ~/.bashrc
  1. sudo权限的白名单配置
    <1> 打开系统文件:/etc/sudoers(浏览编辑保存,需要管理员权限)
    <2> 在文件100行左右处,添加内容用户名 ALL=(ALL) ALL
    <3> 强制保存:w!,强制退出:q!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【安装mysql】centos7 安装mysql

文章目录 1.卸载不用的环境2.获取mysql官方yum源3.开始安装4.常规登录4.1方法一&#xff1a;【博主可以】4.2方法二&#xff1a;直接用client登录4.3方法三&#xff1a;修改配置文件 5.设置配置文件5.1配置my .cnf5.2开机自启动 1.卸载不用的环境 查看有无mysql/mariadb ps ax…

优雅的记录日志,拒绝打印模糊信息导致bug定位难

想必大家都有过这样的经历&#xff1a;在项目中遇到报错需要紧急修复时&#xff0c;却因为日志信息模糊不清&#xff0c;无法迅速准确地定位到错误源头&#xff0c;这确实让人感到十分苦恼和无奈。 在新入职一家公司并着手修改遗留bug时&#xff0c;经常发现之前的开发者并未记…

Java Day9 Stream流

Stream流 1、认识2、Stream流使用步骤3、如何获取Stream流4.Stream流的中间方法5、 Stream流终结方法 1、认识 2、Stream流使用步骤 3、如何获取Stream流 //list获取stream流List<String> listnew ArrayList<>();Collections.addAll(list,"崔十一","…

NUMA简介

NUMA 1 什么是NUMA 早期的计算机&#xff0c;内存控制器还没有整合进 CPU&#xff0c;所有的内存访问都需要经过北桥芯片来完成。如下图所示&#xff0c;CPU 通过前端总线&#xff08;FSB&#xff0c;Front Side Bus&#xff09;连接到北桥芯片&#xff0c;然后北桥芯片连接到…

小型校园网配置笔记

1&#xff0c;搭建网络拓扑图 LSW1:三层交换机命令&#xff1a; <Huawei>sys [Huawei]undo info-center enable Info: Information center is disabled. [Huawei]vlan batch 10 20 30 40 100 101 [Huawei]int vlan 10 [Huawei-Vlanif10]ip add 192.168.10.254 24 …

vivado FIFO IP核的使用

FIFO是先进先出的数据缓存器。起到跨时钟域的数据缓冲作用&#xff0c;一般在实际应用过程当中采用异步读写的方式&#xff0c; 选择的配置如下 封装IP核 module clk_wiz(input resetn ,input clk_in1 ,output clk_out1 ,output clk_out2 …

VScode Error Lens插件

安装完成之后&#xff0c;当我们输入一些错误的语法格式的时候&#xff0c;它都会有一些提示&#xff01; 一开始是英文提示 修改为中文提示 设置搜索 typescript.local

力扣串题:字符串中的第二大数字

此题的精妙之处在于char类型到int类型的转化&#xff0c;需要运算来解决 int secondHighest(char * s) {int max1-1;int max2-1;int szstrlen(s);int i 0 ;for(i0;i<sz;i){if(s[i]>0&&s[i]<9){if((s[i]-0)>max1){max2max1;max1s[i]-0;}else if((s[i]-0)&l…

VUE/HTML网页在线编辑AutoCAD DWG文档

猿大师办公助手作为一款专业的网页在线编辑Office插件&#xff0c;不仅支持微软Office、金山WPS及永中Office完整嵌入到最新版Chrome、Ddge、Firefox等浏览器中使用&#xff0c;猿大师还可以把Autodesk的AutoCAD、DWG TrueView、Design Review等软件嵌入到浏览器网页中&#xf…

写给新手的单元测试框架unittest运行的简单问题

当使用unittest框架编写和运行单元测试时&#xff0c;需要遵循以下步骤&#xff1a; 1、导入unittest模块&#xff1a;在代码中首先导入unittest模块。 import unittest 2、创建测试类&#xff1a;创建一个继承自unittest.TestCase的测试类。该类将包含一系列测试方法。 clas…

《ElementPlus 与 ElementUI 差异集合》icon 图标使用(包含:el-button,el-input和el-dropdown 差异对比)

安装 注意 ElementPlus 的 Icon 图标 要额外安装插件 element-plus/icons-vue. npm install element-plus/icons-vue注册 全局注册 定义一个文件 element-icon.js &#xff0c;注意代码第 6 行。加上了前缀 ElIcon &#xff0c;避免组件命名重复&#xff0c;且易于理解为 e…

深入解析C++树形关联式容器:map、set及其衍生容器的使用与原理

文章目录 一、引言二、关联式容器的中的 paira.pair 的创建及使用b.pair 间的比较 三、 map 与 set 详解1. map 的基本操作2. set 的基本操作3.关联式容器的迭代器 四、 multimap 与 multiset 的特性五、关联式容器的使用技巧与注意事项1. 键值类型的选择与设计2. 自定义比较函…

openGauss学习笔记-241 openGauss性能调优-SQL调优-审视和修改表定义

文章目录 openGauss学习笔记-241 openGauss性能调优-SQL调优-审视和修改表定义241.1 审视和修改表定义概述241.2 选择存储模型241.3 使用局部聚簇241.4 使用分区表241.5 选择数据类型 openGauss学习笔记-241 openGauss性能调优-SQL调优-审视和修改表定义 241.1 审视和修改表定…

R语言复现:如何利用logistic逐步回归进行影响因素分析?

Logistic回归在医学科研、特别是观察性研究领域&#xff0c;无论是现况调查、病例对照研究、还是队列研究中都是大家经常用到的统计方法&#xff0c;而在影响因素研究筛选自变量时&#xff0c;大家习惯性用的比较多的还是先单后多&#xff0c;P&#xff1c;0.05纳入多因素研究&…

【深度学习笔记】8_2 异步计算

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 8.2 异步计算 此节内容对应的内容有兴趣的可以去看看原文。 今天的计算机是高度并行的系统&#xff0c;由多个CPU核、多个GPU、多个处…

yolov5模型压缩-torch_pruning

参考论文:DepGraph: Towards Any Structural Pruning(https://arxiv.org/abs/2301.12900) 主要原理:物理的移除参数,并自动找出层与层以及层之间的依赖,完成模型的自动裁剪 模型压缩效果:yolov5剪枝流程如下: pip install torch_pruning 新建prune.py: import torch_…

AppLink对51Tracking的集成方式

什么是51Tracking 51Tracking是一个提供国际物流跟踪服务的平台&#xff0c;用户可以通过该平台跟踪包裹在全球范围内的物流信息。该平台提供多家物流公司的跟踪服务&#xff0c;帮助用户更方便地了解包裹的运输情况和到达时间。提供实时运单查询、运单管理功能&#xff0c;支…

echarts绘制雷达图

<template><div><div>【云端报警风险】</div><div ref"target" class"w-full h-full" stylewidth&#xff1a;200px;height:300px></div></div> </template><script setup> import { ref, onMounte…

找视频素材软件去哪个app?推荐做短视频必备的几款APP!

做短视频的小伙伴们&#xff0c;有没有遇到过找不到合适素材的烦恼呢&#xff1f;有时候脑子里有好创意&#xff0c;却因为找不到合适的素材而搁置。 今天&#xff0c;我就来给大家推荐几个超实用的视频素材app&#xff0c;帮你的创意加加油&#xff01; 1. 蛙学网材网 首先要…

机器视觉检测设备的组成要素

机器视觉检测设备是一种先进的自动化检测技术工具&#xff0c;它利用光学、图像处理和计算机硬件及软件技术模拟并扩展人类的视觉功能&#xff0c;以实现对产品或目标物体进行自动化的尺寸测量、缺陷检测、表面质量评估、颜色识别、形状匹配以及位置判断等功能。这种设备通常包…