【linux系统】基础开发工具(yum、Vim)

1. 软件包管理器

1.1 什么是软件包

  • 在Linux下安装软件, ⼀个通常的办法是下载到程序的源代码, 并进⾏编译, 得到可执⾏程序.
  • 但是这样太麻烦了, 于是有些⼈把⼀些常⽤的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在⼀个服务器上, 通过包管理器可以很⽅便的获取到这个编译好的软件包, 直接进行安装.
  • 软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.
  • yum(Yellow dog Updater, Modified)是Linux下非常常用的⼀种包管理器. 主要应⽤在Fedora, RedHat, Centos等发行版上.
  • Ubuntu:主要使用apt(Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能。

1.2 Linux软件生态

  • Linux下载软件的过程(Ubuntu、Centos、other)

  • 操作系统的好坏评估--- ⽣态问题 

  • 为什么会有人免费特定社区提供软件,还发布?还提供云服务器让你下载? 

  • 软件包依赖的问题 

  • 国内镜像源 

💡 以下是⼀些国内Linux软件安装源的官⽅链接[由文心⼀言生成]:
1. 阿⾥云官⽅镜像站
  • 官⽅链接:https://developer.aliyun.com/mirror/
  • 阿⾥云提供了丰富的Linux发⾏版镜像,包括CentOS、Ubuntu、Debian等,⽤户可以通过该镜像站快速下载和更新软件包。
2. 清华⼤学开源软件镜像站
  • 官⽅链接:https://mirrors.tuna.tsinghua.edu.cn/
  • 清华大学镜像站提供了多种Linux发⾏版的镜像,以及Python、Perl、Ruby等编程语⾔的扩展包。该镜像站还提供了丰富的⽂档和教程,帮助用户更好地使⽤这些软件包。
3. 中国科学技术⼤学开源镜像站
  • 官⽅链接:http://mirrors.ustc.edu.cn/
  • 中科大镜像站提供了多种Linux发⾏版的镜像,以及常⽤的编程语⾔和开发工具。用户可以通过该镜像站方便地获取所需的软件包和工具。

 

4. 北京交通⼤学⾃由与开源软件镜像站
  • 官⽅链接:https://mirror.bjtu.edu.cn/
  • 北交⼤镜像站提供了多种Linux发⾏版的镜像,以及相关的软件仓库和⼯具。该镜像站 还提供了详细的⽂档和指南,帮助用户配置和使⽤这些软件源。
5. 中国科学院软件研究所镜像站(ISCAS)
  • 官⽅链接:http://mirror.iscas.ac.cn/
  • ISCAS镜像站提供了多种Linux发⾏版、编程语⾔和开发⼯具的镜像。⽤⼾可以通过该 镜像站快速获取所需的软件包和更新。
6. 上海交通⼤学开源镜像站
  • 官⽅链接:https://ftp.sjtu.edu.cn/
  • 上海交⼤镜像站提供了丰富的Linux软件资源,包括多种发行版的镜像和软件仓库。⽤ 户可以通过该镜像站⽅便地下载和安装所需的软件包。
7. ⽹易开源镜像站
  • 官⽅链接:http://mirrors.163.com/
  • ⽹易镜像站提供了多种Linux发⾏版的镜像,以及相关的软件仓库和工具。该镜像站还 提供了便捷的搜索功能,帮助⽤⼾快速找到所需的软件包。
此外,还有⼀些其他的国内镜像源,如搜狐开源镜像站等,但可能由于时间变化或政策调
整,部分镜像站的链接或状态可能有所变动。因此,建议用户在使⽤前访问官⽅⽹站或咨询
相关社区以获取最新的信息和帮助。

 

1 sudo yum install -y epel-release

1.3 yum具体操作

1.3.1 查看软件包

通过 yum list 命令可以罗列出当前⼀共有哪些软件包. 由于包的数目可能⾮常之多, 这⾥我们需要使用grep 命令只筛选出我们关注的包. 例如:
# Centos
$ yum list | grep lrzsz
lrzsz.x86_64 0.12.20-36.el7 @base# Ubuntu
$ apt search lrzsz
Sorting... Done
Full Text Search... Done
cutecom/focal 0.30.3-1build1 amd64Graphical serial terminal, like minicomlrzsz/focal,now 0.12.21-10 amd64 [installed]
Tools for zmodem/xmodem/ymodem file transfer$ apt show lrzsz
Package: lrzszVersion: 0.12.21-10
Priority: optional
Section: universe/comm
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Martin A. Godisch <godisch@debian.org>
...
注意事项:
  • 软件包名称: 主版本号.次版本号.源程序发⾏号-软件包的发⾏号.主机平台.cpu架构.
  • "x86_64" 后缀表⽰64位系统的安装包, "i686" 后缀表⽰32位系统安装包. 选择包时要和系统匹配.
  • "el7" 表⽰操作系统发⾏版的版本. "el7" 表⽰的是 centos7/redhat7. "el6" 表⽰ centos6/redhat6.
  • 最后⼀列, base 表⽰的是 "软件源" 的名称, 类似于 "⼩⽶应⽤商店", "华为应⽤商店" 这样的概念.
  • Ubuntu 有上述有详细介绍

1.3.2 安装软件

通过 yum, 我们可以通过很简单的⼀条命令完成 gcc 的安装.
# Centos
$ sudo yum install -y lrzsz# Ubuntu
$ sudo apt install -y lrzsz
  • yum/apt 会⾃动找到都有哪些软件包需要下载, 这时候敲 "y" 确认安装.
  • 出现 "complete" 字样或者中间未出现报错, 说明安装完成.
注意事项:
  • 安装软件时由于需要向系统⽬录中写⼊内容, ⼀般需要 sudo 或者切到 root 账⼾下才能完成.
  • yum/apt安装软件只能⼀个装完了再装另⼀个. 正在yum/apt安装⼀个软件的过程中, 如果再尝试⽤ yum/apt安装另外⼀个软件, yum/apt会报错.
  • 如果 yum / apt报错, 请自行百度.

1.3.3 卸载软件

仍然是⼀条命令:
# Centos
sudo yum remove [-y] lrzsz# Ubuntu
sudo apt remove [-y] lrzsz

1.3.4 注意事项

关于 yum / apt 的所有操作必须保证主机(虚拟机)⽹络畅通!!!
可以通过 ping 指令验证
ping www.baidu.com
# 当天yum / apt也能离线安装,但是和我们当前⽆关,暂不关⼼。

1.4 安装源

Cetnos 安装源路径:
$ ll /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root 676 Oct 8 20:47 CentOS-Base.repo # 标准源
-rw-r--r-- 1 root root 230 Aug 27 10:31 epel.repo # 扩展源# 安装扩展源,⽅便课堂演⽰
# $ sudo yum install -y epel-release
Ubuntu 安装源路径:
$ cat /etc/apt/sources.list # 标准源
$ ll /etc/apt/sources.list.d/ # 扩展源# ubuntu 安装扩展源,就结合未来具体场景
更新安装源,现场说明原理即可。云服务器不⽤考虑,因为软件源都是国内的了.
好玩的命令: https://blog.csdn.net/xiaoxiaosutang/article/details/141053674

2. 编辑器Vim

  • IDE例⼦

2.1 Linux编辑器-vim使用

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有⼀些新的特性在⾥⾯。例如语法加亮,可视化操作不仅可以在终端运⾏,也可以运行于x window、 mac os、 windows。我们课堂上,统⼀按照vim来进行讲解。

2.2 vim的基本概念 

课堂上我们讲解vim的三种模式(其实有好多模式,⽬前掌握这3种即可),分别是命令模式(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
我这⾥⼀共有12种模式:six BASIC modes和six ADDITIONAL modes.

2.3 vim的基本操作

进⼊vim,在系统提⽰符号输⼊vim及⽂件名称后,就进⼊vim全屏幕编辑画⾯:

  • $ vim test.c
  • 不过有⼀点要特别注意,就是你进⼊vim之后,是处于[正常模式],你要切换到[插⼊模式]才能够输⼊⽂字.

[正常模式]切换⾄[插⼊模式]

  • 输⼊a
  • 输⼊i
  • 输⼊o

[插⼊模式]切换⾄[正常模式]

  • ⽬前处于[插⼊模式],就只能⼀直输⼊⽂字,如果发现输错了字,想⽤光标键往回移动,将该字删除,可以先按⼀下「ESC」键转到[正常模式]再删除⽂字。当然,也可以直接删除。

[正常模式]切换⾄[末⾏模式]

  • 「shift + ;」, 其实就是输⼊「:」

退出vim及保存⽂件,在[正常模式]下,按⼀下「:」冒号键进⼊「Last line mode」,例如:

  • : w (保存当前⽂件)
  • : wq (输⼊「wq」,存盘并退出vim)
  • : q! (输⼊q!,不存盘强制退出vim)

2.4 vim正常模式命令集

插⼊模式:
  • 按「i」切换进⼊插⼊模式「insert mode」,按“i”进⼊插⼊模式后是从光标当前位置开始输⼊ ⽂件;
  • 按「a」进⼊插⼊模式后,是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字;
  • 按「o」进⼊插⼊模式后,是插⼊新的⼀⾏,从⾏⾸开始输⼊⽂字。
从插⼊模式切换为命令模式
  • 按「ESC」键。
移动光标
  • vim可以直接⽤键盘上的光标来上下左右移动,但正规的vim是⽤⼩写英⽂字⺟「h」、「j」、 「k」、「l」,分别控制光标左、下、上、右移⼀格
  • 按「G」:移动到⽂章的最后
  • 按「 $ 」:移动到光标所在⾏的“⾏尾”
  • 按「^」:移动到光标所在⾏的“⾏⾸”
  • 按「w」:光标跳到下个字的开头
  • 按「e」:光标跳到下个字的字尾
  • 按「b」:光标回到上个字的开头
  • 按「#l」:光标移到该⾏的第#个位置,如:5l,56l
  • 按[gg]:进⼊到⽂本开始
  • 按[shift+g]:进⼊⽂本末端
  • 按「ctrl」+「b」:屏幕往“后”移动⼀⻚
  • 按「ctrl」+「f」:屏幕往“前”移动⼀⻚
  • 按「ctrl」+「u」:屏幕往“后”移动半⻚
  • 按「ctrl」+「d」:屏幕往“前”移动半⻚

删除文字

  • 「x」:每按⼀次,删除光标所在位置的⼀个字符
  • 「#x」:例如,「6x」表⽰删除光标所在位置的“后⾯(包含⾃⼰在内)”6个字符
  • 「X」:⼤写的X,每按⼀次,删除光标所在位置的“前⾯”⼀个字符
  • 「#X」:例如,「20X」表示删除光标所在位置的“前⾯”20个字符
  • 「dd」:删除光标所在⾏
  • 「#dd」:从光标所在⾏开始删除#⾏
复制
  • 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  • 「#yw」:复制#个字到缓冲区
  • 「yy」:复制光标所在⾏到缓冲区。
  • 「#yy」:例如,「6yy」表⽰拷⻉从光标所在的该⾏“往下数”6⾏⽂字。
  • 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
替换
  • 「r」:替换光标所在处的字符。
  • 「R」:替换光标所到之处的字符,直到按下「ESC」键为⽌。
撤销上⼀次操作
  • 「u」:如果您误执⾏⼀个命令,可以⻢上按下「u」,回到上⼀个操作。按多次“u”可以执⾏ 多次回复。
  • 「ctrl + r」: 撤销的恢复
更改
  • 「cw」:更改光标所在处的字到字尾处
  • 「c#w」:例如,「c3w」表⽰更改3个字
跳⾄指定的⾏
  • 「ctrl」+「g」列出光标所在⾏的⾏号。
  • 「#G」:例如,「15G」,表⽰移动光标⾄⽂章的第15行⾸。

2.5 vim末⾏模式命令集

在使⽤末⾏模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进⼊末⾏模式。
列出⾏号
  • 「set nu」: 输⼊「set nu」后,会在⽂件中的每⼀⾏前⾯列出⾏号。
跳到⽂件中的某⼀⾏
  • 「#」:「#」号表⽰⼀个数字,在冒号后输⼊⼀个数字,再按回⻋键就会跳到该⾏了,如输⼊数字15,再回⻋,就会跳到⽂章的第15⾏。
查找字符
  • 「/关键字」: 先按「/」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按「n」会往后寻找到您要的关键字为⽌。
  • 「?关键字」:先按「?」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按「n」会往前寻找到您要的关键字为⽌。
  • 问题:∕ 和 ?查找有和区别?操作实验⼀下
保存⽂件
  • 「w」: 在冒号输⼊字⺟「w」就可以将⽂件保存起来
离开vim
  • 「q」:按「q」就是退出,如果⽆法离开vim,可以在「q」后跟⼀个「!」强制离开vim。
  • 「wq」:⼀般建议离开时,搭配「w」⼀起使⽤,这样在退出的时候还可以保存⽂件。
2-6 vim操作总结
  三种模式
  • 正常模式
  • 插⼊模式
  • 底⾏模式

我们⼀共有12种总模式,⼤家下来可以研究⼀下

vim操作

  • 打开,关闭,查看,查询,插⼊,删除,替换,撤销,复制等等操作。
练习:当堂口头模式切换练习


本篇文章介绍了两个基本的开发工具'yum'、'Vim' ,欢迎评论和交流!

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

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

相关文章

C语言:define定义常量和定义宏(详解)

本篇博客给大家带来的是#define定义常量和#define定义宏的方法 &#x1f41f;&#x1f41f;文章专栏&#xff1a;C语言 &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享 你们的支持就是我创造的动力 今日思想&#xff1…

Let up bring up a linux.part2 [十一]

之前的篇幅中我们已经将 Linux 内核 bringup 起来了&#xff0c;不知道大家有没有去尝试将根文件系统运行起来&#xff0c;今天我就带领大家完成这个事情&#xff0c;可以跟着下面的步骤一步步来完成&#xff1a; 在这里我们使用 busybox 构建 rootfs&#xff1a; 下载 busyb…

使用GO--Swagger生成文档

概述 在前后端分离的项目中&#xff0c;后端配置swagger可以很好的帮助前端人员了解后端接口参数和数据传输。go-swagger 是一个功能全面且高性能的Go语言实现工具包&#xff0c;用于处理Swagger 2.0&#xff08;即OpenAPI 2.0&#xff09;规范。它提供了丰富的工具集&#x…

pushgateway HA高可用方案

未经本人同意不得转载&#xff0c;若引用请附上原文链接。 项目使用flink来处理kafka中的无界流数据&#xff0c;采用的是flink on yarn的模式部署flink任务。最近做flink任务的监控过程中&#xff0c;踩了一些坑。下面是过程&#xff0c;只想看最终方案的直接拉到最后。 先说…

01-Chromedriver下载与配置(mac)

下载地址&#xff1a; 这里我用的最后一个&#xff0c;根据自己chrome浏览器选择相应的版本号即可 ChromeDriver官网下载地址&#xff1a;https://sites.google.com/chromium.org/driver/downloads ChromeDriver官网最新版下载地址&#xff1a;https://googlechromelabs.git…

使用docker-compose安装Milvus向量数据库及Attu可视化连接工具

首先确保系统已经安装上了docker 然后去https://github.com/docker/compose/releases/下载安装docker-compose 跟随自己下系统和服务器情况下载 上传到服务器 mv docker-compose-linux-aarch64 docker-compose chmod x docker-compose2.dockr-compose命令 docker-compose …

Conda + JuiceFS :增强 AI 开发环境共享能力

Conda 是当前 AI 应用开发领域中非常流行的环境和包管理系统&#xff0c;因其能够简单便捷地创建与系统资源相隔离的虚拟环境广受欢迎。 Conda 支持在不同的操作系统上重建相同的工作环境&#xff0c;但在环境共享复用方面仍存在一些挑战。比如&#xff0c;在不同机器上复用相…

【SpringBoot】31 Session + Redis 实战

Gitee https://gitee.com/Lin_DH/system 介绍 【SpringBoot】30 Cookie、Session、Token https://blog.csdn.net/weixin_44088274/article/details/144241595 背景 Spring Session 是 Spring 的一个子项目&#xff0c;它提供了一种管理用户会话信息的方法&#xff0c;无论…

关于网站的权重和百度蜘蛛爬虫的关系

网站的权重和百度蜘蛛爬虫的关系是密切关联的。 网站权重是一个衡量网站在搜索引擎中重要性的概念&#xff0c;它反映了网站在搜索引擎算法中的相对重要程度。而百度蜘蛛爬虫则是百度搜索引擎用来抓取网页内容的工具&#xff0c;通过分析网页的URL、内容、链接等因素来评估网站…

游戏引擎学习第35天

开场介绍 今天的任务是继续改进一个虚拟的瓦片地图系统&#xff0c;使其适合处理更大的世界。我们希望这个系统能管理大范围的游戏世界&#xff0c;其中包含按需存储的小区域。昨天&#xff0c;我们介绍了“内存区域”的概念&#xff0c;用于管理持久性存储。我们计划今天继续…

Leetcode经典题5--轮转数组

题目描述 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 输入输出示例 &#xff1a; 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右…

【JS】简单CSS简单JS写的上传进度条

纯JS写的&#xff0c;简单的上传进度条&#xff0c;当上传的文件较大&#xff0c;加一个动态画面&#xff0c;就不会让人觉得出错了或网络卡了 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"v…

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别 一、背景 财务数据是指企业经营活动和财务结果的数据记录&#xff0c;反映了企业的财务状况与经营成果。对行业、企业的财务数据进行分析&#xff0c;就是要评价其过去的经营业绩、衡量现在的财务状况、预测未…

perl Window安装教程

perl Window安装教程 下载地址 https://platform.activestate.com/tangxing806/ActivePerl-5.28/distributions 运行state-remote-installer.exe 按下图截图步骤 检查perl版本 参考文献&#xff1a; perl安装教程

知识图谱9:知识图谱的展示

1、知识图谱的展示有很多工具 Neo4j Browser - - - - 浏览器版本 Neo4j Desktop - - - - 桌面版本 graphX - - - - 可以集成到Neo4j Desktop Neo4j 提供的 Neo4j Bloom 是用户友好的可视化工具&#xff0c;适合非技术用户直观地浏览图数据。Cypher 是其核心查询语言&#x…

【数据分享】1901-2023年我国省市县三级逐年最低气温数据(Shp/Excel格式)

之前我们分享过1901-2023年1km分辨率逐月最低气温栅格数据和Excel和Shp格式的省市县三级逐月最低气温数据&#xff0c;原始的逐月最低气温栅格数据来源于彭守璋学者在国家青藏高原科学数据中心平台上分享的数据&#xff01;基于逐月栅格数据我们采用求年平均值的方法得到逐年最…

HBU深度学习实验15-循环神经网络(2)

LSTM的记忆能力实验 飞桨AI Studio星河社区-人工智能学习与实训社区 (baidu.com) 长短期记忆网络&#xff08;Long Short-Term Memory Network&#xff0c;LSTM&#xff09;是一种可以有效缓解长程依赖问题的循环神经网络&#xff0e;LSTM 的特点是引入了一个新的内部状态&am…

使用windows的包管理工具chocolatey

开发人员&#xff0c;在windows环境下&#xff0c;最头疼的是安装和配置各种环境变量&#xff0c;现在chocolatey 可以一键安装&#xff0c;不需要再去配置环境变量了。比如你安装一个java的环境&#xff0c;仅仅需要你敲几个命令&#xff0c;都能帮你搞定。 我自己已经使用这…

VTK知识学习(21)- 数据的读写

1、前言 对于应用程序而言&#xff0c;都需要处理特定的数据&#xff0c;VTK应用程序也不例外。 VTK应用程序所需的数据可以通过两种途径获取: 第一种是生成模型&#xff0c;然后处理这些模型数据(如由类 vtkCylinderSource 生成的多边形数据); 第二种是从外部存储介质里导…

QT 中 QString 转换为 Unicode 和 ASCII 的方法

目录 ​编辑 前言 一、QString转换成 Unicode编码 二、QString转换成ASCII编码 三、Unicode编码转换成QString汉字 四、ASCII编码转成QString 五、注意事项 六、总结 前言 在 Qt 开发中&#xff0c;经常会遇到需要将QString中的字符转换为特定编码格式的需求。本文将介…