广州好的网站设计公司/竞价账户托管
目录
- 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是什么(软件商城)
- 在前面的学习中,我们使用
yum install -y ...
这条指令安装过一些操作系统没有自带的指令(可执行程序),可是,这条指令的安装操作究竟是怎么实现的呢,除此之外,它还能安装其他的资源吗?- 接下来就让我们进行对这条简单指令背后知识的学习。
- Linux操作系统下安装软件的三种方式:
<1> 下载软件的源代码,再对其进行编译,最后得到可执行程序(交叉编译)
<2> 下载网络上已经整合好的对应版本的rpm包,然后进行安装
<3> 通过操作系统自带的预装指令yum/apt,直接进行一条龙式的软件安装(搜索,下载,安装)
注:两者方式操作起来较为复杂,且可能会下载安装到没有安全保障的资源,所以在初学时,我们不推荐这两种安装方式。
- CentOS下的yum预装指令是如何实现软件安装的:
<1> 此条指令的意义为请求操作系统中一个名为yum的软件安装工具进行我们所指定软件的安装。
<2> 这款名为yum的工具软件其实类似于windows操作系统,手机中自带的软件商城,唯一不同的是,Linux操作系统下的软件商城采用的也是命令行的操作方式。
1.2 yum的使用
- 在日常中,我们在使用电脑或手机中的软件商城进行软件的安装之外,会对所需要的软件进行搜索定位,或为浏览软件商城中的软件查找所需,在安装后可能还要进行软件的卸载。浏览,搜索卸载与安装,这四种方式搭配才能满足我们在软件安装时的需求,而这三个操作在yum中也有对应的命令行操作方式。
- 指令:
yum list
指令意义:查看所有软件列表
- 指令:
yum list | grep [要搜索软件(lrzsz)]
指令意义:搜索指定软件(软件罗列与行文本过滤搭配使用达到搜索的目的)
- 指令:
yum remove [软件]
指令意义:进行软件卸载
- 补充:
<1> 在使用上述搜索,安装,卸载等指令时,可能需要管理员权限(sudo提权)
<2> 在使用安装指令时,在安装过程中会存在一些问答,给指令自带的-y
参数选项,会同意默认yes回复。
- 软件信息的浏览:
1.3 yum的背景生态
- 经过上面两部分知识的学习我们已经对yum这款工具软件有了初步的了解,接下来,让我们对它背后知识较深入学习。首先,让我们来看下面几个问题:
<1> 我们下载使用的软件是谁进行开发,维护与提供的
<2> 软件的提供方为什么免费提供这些软件
<3> 我们需要下载的软件资源存放在哪里
<4> 我们搜索软件时,是怎么搜索到软件的,搜索方式是什么
- 让我们带着这些问题,先来了解一下不同Linux操作系统的社区与生态:
<1> 现在的市面上有各种各样免费开发源的操作系统Ubuntu,CentOS,RedHat等等,它们的内核都是Linux,可是,又因为什么使得它们有了区别做了划分。
<2> 当我们需要一个操作系统时,Linux类的各种开源又功能强大的操作系统是我们的首选与优选,可是,Linux操作系统有着众多不同的品牌,我们应该如何选择呢。在选择之前,我们应该去了解哪些信息
<3> 首要的,应该了解这些操作系统间的不同,经过了解得知,这些操作系统的功能偏向与使用场景不同,它们的基座都是Linux,只是上层的资源存在不同,CentOS的常用于企业级开发,Android用于手机移动端的开发,Ubuntu的用户大多数都是学生。
<4> 其次,我们如何判断一个操作系统是否足够稳定,足够优秀,我们去进行调研比对,应该采用哪些标准,为什么使用这些指标进行调研。
<5> Linux系统的调研指标:
版本:软件项目与应用对操作系统的版本有要求
使用人数:基数庞大的使用人群,会充分快速的暴露操作系统中的问题并进行解决
周边软件:周边软件的数量是否足够多,质量是否足够高,有没有能够帮助我们解决问题的软件工具
配套资源:是否有齐备配套的文档,维护人员与软件开发人员是否专业,这标识着这个操作系统是否足够成熟,是否有良好稳定的发展
<6> Linux操作系统的社区:
社区:因为这个操作系统,聚集起来的开发组织,使用人员组成的集体。
<7> Linux操作系统的生态:以Linux操作系统为环境背景下,整个相关链条上事物的运作与发展。
- 经过上面的了解后,我们大概了解了Linux操作系统的社区与生态。那么,再来回答前面的问题就变得不再困难。
<1> Linux操作系统上软件的开发,由负责操作系统开发与维护的人员和有能力有意愿的用户共同完成。
<2> 之所以免费提供这些软件,是因为开发与维护的组织为开源组织,并且软件的开源也可以更好的促进操作系统的良性发展。
<3> 我们下载的软件资源,存在在专门的充当软件仓库的远端服务器,由开发与维护操作系统的组织进行管理。
<4> 通过访问远端软件仓库或者网上搜寻的方式来获得软件资源,yum工具在配置文件中有存放远端仓库的地址与专门的网址。
- 补充:
<1> yum存放下载地址的配置文件路径:/etc/yum.repos.d/
<2> yum源:yum从哪里获得软件资源,即软件资源的来源
<3> 更新yum源:即更新存放下载地址的配置文件,更换为拥有想要下载地址的配置文件
- 更新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> Linux操作系统中,会将系统中常用的软件(会进行动态的添加与删除管理)集中放置到一个地方,方便管理与调用。我把这个用来存放这些软件资源的地方称为基础软件源。
<2> 我们可以通过指令,安装一个额外的软件源用来集中存放管理不常用的软件,这种软件源被称为,扩展软件源。
指令:yum install -y epel-release
2. 项目开发与集成开发环境
- 我们平常想要顺利的开发项目,进行代码的编写运行,需要经过编写,编译,调试等步骤去一步步实现。
- 这一过程中,每个步骤所需要的开发工具都是不同的。在C语言的学习我们并没有对这些开发工具进行详细了解,我们通过直接使用集成开发环境方式进行项目的开发。
- 集成开发环境为我们带来便利的同时,它的高度集成也使得我们对程序创建到生成的过程比较陌生,不太利用这方面知识的学习。
- 接下来,在Linux操作系统中项目开发我们将不再使用集成开发环境的方式来进行,而会通过不同的开发工具对整个个开发过程进行相对深入与细致的学习。
3. vim编辑器
- 程序源代码的编写工具(vim编辑器)
3.1 vim编辑器的常见模式与模式切换
- vim编辑器应对不同的编辑需要拥有不同的模式,我们经常会使用的模式有下列几种:
<1> 命令模式(命令模式所有输入都会被当做命令)
<2> 插入模式
<3> 底行模式
<4> 替换模式
- 指令:vim [文件]
指令意义:使用vim编辑器打开文件,当当前目录中没有此文件,创建此文件并打开
- vim编辑器的开启默认模式与模式间的切换:
- 命令模式切换插入模式,不同命令的效果:
<1>i
切换进插入模式,开始位置为当前光标位置
<2>a
切换进插入模式,开始位置为当前光标位置的后一个字符
<3>o
切换进入插入模式,在当前光标所在行的下面创建新的一行,开始位置为新建行的行首
- <1>在我们的使用中,使用vim编辑器打开文件后,可能会发生异常退出的情况,此时我们还未来得及对更新的文件内容进行保存。
<2> 操作系统为了防止内容丢失,会在文件所在目录生成一份保存异常退出时内容的隐藏临时文件(.[文件名].swap
)。
<3>当我们进入再次进入这个文件时,会跳出以下界面。我们可以通过底行提示,使用R + D,恢复内容,删除临时文件,再次进入文件就可以正常登录。
3.3 vim编辑器的使用
3.3.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>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> 当文件处于特殊状态(被查看等)或我们没有权限进行对编辑内容的保存退出
w!
(强制保存),q!
(强制退出)(管理员,sudo提权)
<2> 底行模式下:! + shell命令(command)
(在不退出文件编辑的情况下,执行shell命令)
<3>shift + /(?),输入要搜索的函数名
(在整个文件范围,搜索同名函数)
<4> 底行模式下:vs + 文件名
(可在不关闭当前文件的情况下,分屏打开指定文件)
<5>ctrl + ww
(光标在两个两个文件中跳转)
<6> 底行模式下,set nu
与setnonu
(显示行号,取消行号显示)
<7> shell命令:vim + 文件 + n
(打开文件并跳转到文件的第n行)
<8> 命令模式下:shift + zz(ZZ)
(退出vim编辑器,此种方式不推荐使用)
补充:打开文件时,光标会在上一次关闭文件时光标停留位置
3.3.2 vim编辑器的相关配置问题
- 图示模式与批量化注释/去注释:
<1>ctrl + v
(进入图示模式)
<2>hjkl
(选择区域)
<3>shift + i
(进入插入模式)/d
(将选择区域去掉)
<4>//
(向选择区域添加注释)
<5>Esc
(退出)
- 进行vim编辑器配置的目的
vim编辑器的初始功能模式,对于编写代码开并不方便,但我们可以通过调整vim编辑器的配置,来为我们的编辑添加一些辅助功能设置。(自动补全,语句补全,语法报错,自动缩进等)
- vim编辑器的配置方法:
<1> vim编辑器的配置并不是操作系统全用户共享的
<2> 首先,进入家目录使用ll -a
指令查看是否存在.vimrc
文件,若不存在则创建此文件
<3> 接下来,我们对vim编辑器的配置操作都是在这个文件中执行的,我们不断向这个文件添加我们需要的配置命令来满足我们的需求(set nu
设置行号,"
将配置文件中的内容注释)
- 安装应用已经配置成熟的配置文件:
<1>执行指令:curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
<2> 按步骤进行安装
<3> 安装完成后,执行指令:source ~/.bashrc
- sudo权限的白名单配置
<1> 打开系统文件:/etc/sudoers
(浏览编辑保存,需要管理员权限)
<2> 在文件100行左右处,添加内容用户名 ALL=(ALL) ALL
<3> 强制保存:w!
,强制退出:q!
相关文章:

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…...

在idea中配置tomcat服务器,然后部署一个项日
1.下载tomcat Tomcat下载 点击右边的tomcat8 找到zip点击下载 下载完,解压到你想放置的路径下 2.配置环境变量 打开设置找到高级系统设置点击环境变量 点击新建,变量名输入:CATALINA_HOME,变量值就是Tomcat的安装路径&#x…...

C语言例:设 int a=11; 则表达式 a+=a-=a*a 的值
注:软件为VC6.0 代码如下: #include<stdio.h> int main(void) {int a11, b;b (aa-a*a); //a*a121 -->a-121结果为a-110 -->a-110结果为a-220printf("表达式aa-a*a 的值为: %d\n",b);return 0; } //优先级&#x…...

C++ 中的虚函数和多态性
C 是一种高级编程语言,它具有面向对象编程的特性。在 C 中,虚函数和多态性是非常重要的概念,它们使得继承关系更加灵活和强大。 虚函数是在基类中声明为虚函数的成员函数,其作用是在运行时动态绑定函数的调用。当在派生类中重写基…...

叶顺舟:手机SoC音频趋势洞察与端侧AI技术探讨 | 演讲嘉宾公布
后续将陆续揭秘更多演讲嘉宾! 请持续关注! 2024中国国际音频产业大会(GAS)将于2024年3.27 - 28日在上海张江科学会堂举办。大会将以“音无界,未来(Audio, Future)”为主题。大会由中国电子音响行业协会、上…...

SpringBoot之yml与properties配置文件格式的区别
概念: SpringBoot支持两种格式的配置文件,一种是yml,而另一种就是properties,默认的文件名为application.yml或者.properties 为什么有了properties之后还要有yml呢? 因为properties配置文件存在数据冗余性,在properties配置文件中一切配置都需要从头写到为, 并且Key不能重复,…...

【递归搜索回溯专栏】专题二:二叉树中的深搜----二叉树剪枝
本专栏内容为:递归,搜索与回溯算法专栏。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:递归搜索回溯专栏 🚚代码仓库:小小unicorn的代…...

Django实现登录注册
Django实现登录注册 目录 Django实现登录注册配置路由首页注册前端:后端: 登录前端:后端:验证码部分逻辑 配置路由 首先分发路由[User,Blog,Article] from django.contrib import admin from django.urls import path from Blog…...

Python实战:NumPy数组与矩阵操作入门
NumPy是Python数据科学领域中不可或缺的库之一,它提供了一个强大的N维数组对象和一系列用于操作这些数组的函数。本文将详细介绍NumPy数组与矩阵的基础知识,包括数组的创建、操作、切片、索引、以及矩阵的运算等。 1. 引言 在Python数据科学领域&#…...

2024.2.26校招 实习 内推 面经
绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、校招&实习 |美团2024年春季校园招聘全球启动(内推) 校招&实习 |美团2024年春季校园招聘全球启动(内推) 2、校招 | 江淮汽车2024…...

cannot find -xml2: No such file or directory的解决方法
一,问题现象 在编译库的时候出现如下图所示的报错:C:/msys64/mingw32/bin/…/lib/gcc/i686-w64-mingw32/13.2.0/…/…/…/…/i686-w64-mingw32/bin/ld.exe: ca nnot find -lxml2: No such file or directory collect2.exe: error: ld returned 1 exit s…...

linux下的进程间通信
转自http://blog.csdn.net/eroswang/article/details/1772350 详细的讲述进程间通信在这里绝对是不可能的事情,而且笔者很难有信心说自己对这一部分内容的认识达到了什么样的地步,所以在这一节的开头首先向大家推荐著 名作者Richard Stevens的著名作品&a…...

基于单片机的IC 卡门禁系统设计
摘要:针对传统门锁钥匙易丢失、配置不便和忘记携带等问题,提出了一种基于STC89C52 的IC 卡门禁系统设计。该系统以STC89C52 单片机为核心来控制电子锁模块的开关。主要过程是由RFID 模块读取IC卡ID 并通过串口发送至STC89C52 单片机模块,STC89C52 单片机模块可以实现在线对I…...

【爬虫介绍】了解爬虫的魅力
爬虫 爬虫(Spider)是一种自动化程序,通过模拟人的行为,在互联网上收集、抓取和提取信息。爬虫通常用于网站数据抓取、搜索引擎索引、数据分析和挖掘等领域。 爬虫可以自动访问网页,按照预定的规则抓取网页上的文本、…...

Xcode 15.3 Archive失败
Xcode 15.3 Archive失败 背景 升级 Xcode 到 15.3,真机运行正常。打包的时候发现 Archive 失败。 提示: Call parameter type does not match function signature! 仔细看报错里是和HandyJSON相关的提示。 解决 起初以为和 Pod 库有关系,…...

Hadoop学习3:问题解决
文章目录 问题解决1. ERROR: but there is no HDFS_NAMENODE_USER defined2. JAVA_HOME is not set and could not be found.3. Hadoop-DFS页面访问不了4. namenode格式化失败,或者dfs页面打开失败5. ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Ab…...

HarmonyOS鸿蒙开发常用4种布局详细说明
介绍一下鸿蒙开发常用4种布局 1、线性布局 2、层叠布局 3、网格布局 4、列表布局 1. 线性布局(Column/Row) 线性布局(LinearLayout)是开发中最常用的布局,通过线性容器Row(行)和Column&…...

Python中的变量是什么类型?
一、 Python中的变量是什么类型? 在Python中,变量本身是没有类型的,变量可以指向任何类型的数据对象。这意味着你可以将一个整数赋值给一个变量,稍后又可以将一个字符串赋值给同一个变量。Python是一种动态类型语言,它…...

数据结构之顺序表(C语言版)
顺序表是数据结构中最基本的一种线性表,它以一段连续的存储空间来存储数据元素,元素之间的顺序由它们在内存中的位置来决定。在C语言中,我们通常使用数组来实现顺序表。 目录 顺序表的结构定义 顺序表的基本操作 应用实例 顺序表的结构定义…...

Java学习笔记(15)
JDK7前时间相关类 Date时间类 Simpledateformat Format 格式化 Parse 解析 默认格式 指定格式 EE:表示周几 Parse:把字符串时间转成date对象 注意:创建对象的格式要和字符串的格式一样 Calendar日历类 不能创建对象 Getinstance 获取当…...

js中怎样添加、移出、插入、复制、创建?
在 JavaScript 中,可以使用以下方法来添加、移除、插入、复制和创建元素: 添加元素: 使用 appendChild() 方法将一个子元素添加到指定父元素的末尾。使用 insertBefore() 方法将一个子元素插入到指定父元素的指定位置之前。 移除元素…...

浅谈C/C++的常量const、指针和引用问题
今天我们来探讨C/C中const、指针和引用的相关问题。这些概念是编程中的重要组成部分,它们的正确使用对于代码的可读性和可维护性至关重要。通过深入了解const的不可变性、指针的灵活性以及引用的简洁性,我们能够更好地掌握编程的精髓,并写出更…...

React三大属性---state,props,ref
react的三大属性 react的三大属性分别是state props 和ref 是传递数据的重要内容 State state是组件对象最重要的属性 包含多个key-value的组合呢 存在于组件实例对象中 基本使用 此时demo是通过onClick的回调 所以this是undefined 本来应该是window 但是局部开启了严格模…...

进程学习--02
在C语言中,一般使用fork函数开辟进程,这个函数开辟进程后会返回一个进程号,在子进程中会返回0,在父进程中会返回子进程的进程号。 int main(){int ret fork();if(ret<0){fprintf(stderr, "pid error");exit(-1);}e…...

简易版 RPC 框架实现 1.0 -http实现
RPC 是“远程过程调用(Remote Procedure Call)”的缩写形式,比较通俗的解释是:像本地方法调用一样调用远程的服务。虽然 RPC 的定义非常简单,但是相对完整的、通用的 RPC 框架涉及很多方面的内容,例如注册发…...

欧科云链做客Google Cloud与WhalerDAO专题论坛,畅谈Web3数据机遇
3月10日,由Google Cloud、WhalerDAO和baidao data主办,以Web3AI 2024 DATA POWER为主题的分享会在北京中关村举行。欧科云链高级研究员Jason Jiang受邀参加活动,带来“从链上数据发掘Web3时代的无限机遇”的主题分享。 Web3.0核心要素始终是链…...

计算机网络 TCP协议的流量控制
流量控制的功能就是让发送方的发送速率不要太快,以便让接收方来的及接受,因此可以说流量控制是一个速度匹配服务,匹配发送方的发送速率和接收方的读取速率。 TCP利用滑动窗口机制来实现流量控制,滑动窗口的基本原理是,…...

【基于HTML5的网页设计及应用】——改变文字和背景颜色
🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:…...

面向对象编程第三式: 多态 (Java篇)
本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…...

[数据集][目标检测]草莓成熟度检测数据集VOC+YOLO格式412张3类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):412 标注数量(xml文件个数):412 标注数量(txt文件个数):412 标注类别…...