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

news2024/12/27 11:03:12

目录

  • 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!

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

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

相关文章

使用API有效率地管理Dynadot域名,使用API设置域名隐私保护

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

AHU 数据库 实验三

《数据库》实验报告 【实验名称】 实验3 数据库的连接查询 【实验目的】 1. 熟悉基本的连接查询的概念和作用&#xff1b; 2. 了解数据库管理系统DBMS 实现连接查询的基本方法&#xff1b; 3. 掌握SQL语言连接查询语句的语法和功能&#…

Spring之注入模型

前言 之前我写过一篇关于BeanDefinition的文章,讲述了各个属性的作用,其中有一个属性我没有提到,因为这个属性比较重要,所以这里单独开一篇文章来说明 上一篇博文链接Spring之BeanDefinitionhttps://blog.csdn.net/qq_38257958/article/details/134823169?spm1001.2014.3001…

旅游景区公共广播 园区广播 公路服务区广播

旅游景区公共广播 园区广播 公路服务区广播 旅游景区公共广播 旅游景区公共广播(又称背景音乐)简称BGM&#xff0c;它的主要作用是掩盖噪声并创造一种轻松和谐的气氛&#xff0c;是一种创造轻松愉快环境气氛的音乐。掩盖环境噪声&#xff0c;创造与旅游景区相适应的气氛&#…

48. 【Linux教程】yum 软件包管理

本小节介绍如何在 Linux 系统中使用 yum 命令软件管理。 1.yum 简介 yum 是 Red Hat 软件包管理器&#xff0c;它能够查询有关可用软件包的信息&#xff0c;从存储库获取软件包&#xff0c;安装和卸载软件包&#xff0c;以及将整个系统更新到最新的可用版本。yum 在更新&#…

(2022级)成都工业学院Java程序设计(JAVA)实验一:编写一个简单的Java程序

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、代码仅提供参考 3、如果代码不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 IntelliJ IDEA 2023.2.2 jdk17.0.6 实验要求 1、 控制台菜单。要求如下&#xff1a; 1&#xff09;…

【算法面试题】-07

小明找位置 题目描述 小朋友出操&#xff0c;按学号从小到大排成一列;小明来迟了&#xff0c;请你给小明出个主意&#xff0c;让他尽快找到他应该排的位置。 算法复杂度要求不高于nLog(n);学号为整数类型&#xff0c;队列规模<10000; 输入描述 1、第一行:输入已排成队列的…

金融知识分享系列之:财不入急门——迫切盈利的欲望是痛苦的根源

金融知识分享系列之&#xff1a;财不入急门——迫切盈利的欲望是痛苦的根源 一、错误观点二、正确观点 一、错误观点 迫切盈利&#xff1a; 总是怕错过机会&#xff0c;着急入场自己认为很好的机会&#xff0c;就想重仓押注&#xff0c;挽回损失想学习一套规则&#xff0c;立…

PCB差分通孔的数值建模方法

目录 0 引言 1 基于CST的3D通孔模型 2 通孔模型的近似等效计算 3 利用ADS进行电路仿真分析 4 总结 0 引言 当数据速率超过10Gbps时&#xff0c;PCB上的通孔所带来的寄生参数会成为影响数据误码率的关键因素之一&#xff0c;虽然通过三维电磁场求解器提取过孔的行为模型&…

京津冀协同发展:北京·光子1号金融算力中心——智能科技新高地

京津冀协同发展是党中央在新的历史条件下提出的一项重大国家战略&#xff0c;对于全面推进“五位一体”总体布局&#xff0c;以中国式现代化全面推进强国建设、民族复兴伟业&#xff0c;具有重大现实意义和深远历史意义。随着京津冀协同发展战略的深入推进&#xff0c;区域一体…

高项-项目整合管理

今天找到一个讲的还不错的视频&#xff0c;放上来存一下&#xff1a;【第4版】第8章-项目整合管理(8.1)_哔哩哔哩_bilibili 项目整合管理的目标 资源分配平衡竞争性需求研究各种备选方法裁剪过程以实现项目目标管理各个项目管理知识域之间的依赖关系 项目整合管理的过程 制…

系统设计学习(二)用户认证场景

一、常用鉴权方式 HTTP Basic Authentication (HTTP基本认证) session-cookie 1&#xff0c;服务器在接受客户端首次访问时在服务器端创建session&#xff0c;然后保存session(我们可以将session保存在内存中&#xff0c;也可以保存在redis中&#xff0c;推荐使用后者)&…

【Docker】 ubuntu18.04编译时内存不足需要使用临时交换分区解决“c++: internal compiler error“错误

【Docker】 ubuntu18.04编译时内存不足需要使用临时交换分区解决"c: internal compiler error"错误 问题描述 安装独立功能包时编译不成功&#xff0c;出现 “c: internal compiler error: Killed(program cciplus)” 错误。 解决方案 出现这个问题的原因大概率是…

[LeetCode][LCR174] 寻找二叉搜索树中的目标节点

题目 LCR 174. 寻找二叉搜索树中的目标节点 某公司组织架构以二叉搜索树形式记录&#xff0c;节点值为处于该职位的员工编号。请返回第 cnt 大的员工编号。 示例 1: 输入&#xff1a;root [7, 3, 9, 1, 5], cnt 27/ \3 9/ \ 1 5 输出&#xff1a;7示例 2: 输入: ro…

【Redis】-Redis实现高并发下秒杀系统

文章目录 前言 一、场景二、商品超卖的场景三、使用分布式锁解决超卖四、使用Redis事务乐观锁解决超卖 ** 前言 Redis事务   Redis事务是一种将多个命令打包执行的机制&#xff0c;确保这些命令要么全部执行成功&#xff0c;要么全部执行失败。Redis事务通过MULTI、EXEC、D…

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

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

【Rockchip android7.1 平台rtl8821cs wifi移植调试】

Rockchip 平台rtl8821cs wifi移植调试 问题描述解决方法 郑重声明:本人原创博文&#xff0c;都是实战&#xff0c;均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Rockchip rk3128 OS:Android 7.1.2 Kernel: 3.10 问题描述 客户需要在现在的板子上调一款RTL882…

【惠友精术】你见过给膝关节“打补丁”吗?单髁置换术,微创保膝真有一套

有什么方法可以让“换膝盖”既没那么痛&#xff0c;苦头又吃得少呢&#xff1f;你别说&#xff0c;还真有&#xff01; 近日&#xff0c;关节外科团队顺利为一例膝关节退变的患者完成了“膝关节单髁置换术”&#xff0c;实施了微小切口下对膝关节病变部位的精准治疗。该手术的成…

SV-7045网络草坪音箱安装说明 景区园区背景音乐广播石头音箱

SV-7045网络草坪音箱安装说明 景区园区背景音乐广播石头音箱 在做室外公共广播/背景音乐系统时&#xff0c;对于草坪音箱的安装方法,大家可能不甚了解&#xff0c;所以将具体安装方法作简要说明。 音箱安装步骤如下&#xff1a; 1.测量草地音箱的底座尺寸大小&#xff0c;最…

07-java基础-锁之AQSReentrantLockBlockingQueueCountDownLatchSemapho

文章目录 0&#xff1a;AQS简介-常见面试题AQS具备特性state表示资源的可用状态AQS定义两种资源共享方式AQS定义两种队列自定义同步器实现时主要实现以下几种方法&#xff1a;同步等待队列条件等待队列 1&#xff1a;AQS应用之ReentrantLockReentrantLock如何实现synchronized不…