【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.rhkb.cn/news/487751.html

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

相关文章

UFUG2601_project_Fall2024 MiniDB Project

PS&#xff1a;如果读过题了可以跳过题目描述直接到题解部分 链接&#xff1a;UFUG2601_project_Fall2024 MiniDB Project 文章目录 题目题解声明可完成操作运行逻辑大致思路数据存储数据类型数据名称 命令输入文件读入命令读入 操作2.1 Create Database and Use Database2.2 C…

this version of the Java Runtime only recognizes class file versions up to 52.0

问题描述 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/xxx/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versi…

Tr0ll: 1 Vulnhub靶机渗透笔记

Tr0ll: 1 本博客提供的所有信息仅供学习和研究目的&#xff0c;旨在提高读者的网络安全意识和技术能力。请在合法合规的前提下使用本文中提供的任何技术、方法或工具。如果您选择使用本博客中的任何信息进行非法活动&#xff0c;您将独自承担全部法律责任。本博客明确表示不支…

CAP定理

2.1 CAP 定理的由来与证明 CAP 定理是计算机科学界的“铁律”&#xff0c;最早由 Eric Brewer 提出&#xff0c;后来被正式证明&#xff1a; 分布式系统里&#xff0c;一致性&#xff08;C&#xff09;、可用性&#xff08;A&#xff09;、分区容错性&#xff08;P&#xff09…

【flutter】webview下载文件方法集锦

说明&#xff1a;android的webview是不支持下载的&#xff01;&#xff01;&#xff01; 所以我们需要监听下载接口 然后手动执行下载操作&#xff0c;分为三种类型 直接打开浏览器下载&#xff08;最简单&#xff09;&#xff0c;但是一些下载接口需要cookie信息时不能满足 …

Java版-图论-最短路-Floyd算法

实现描述 网络延迟时间示例 根据上面提示&#xff0c;可以计算出&#xff0c;最大有100个点&#xff0c;最大耗时为100*wi,即最大的耗时为10000&#xff0c;任何耗时计算出来超过这个值可以理解为不可达了&#xff1b;从而得出实现代码里面的&#xff1a; int maxTime 10005…

SQL注入基础入门篇 注入思路及常见的SQL注入类型总结

目录 前言一、了解mysql数据库1、了解sql增删改查2、了解sql查询 二、sql注入基础三、学习sql注入漏洞1、union注入1、判断数字型注入还是字符型型注入&#xff1a;2、判断闭合方式&#xff08;字符型注入&#xff09;&#xff1a;3、判断回显位4、查询库名&#xff0c;表名&am…

基于Spring Boot库存管理系统

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 基于Spring Boot库存管理系统 当下&#xff0c;如果还依然使用纸质文档来记录并且管理相关信息&#xff0c;可能会出现很多问题&#xff0c;比如原始文件的丢失&#xff0c;因为采用纸质文档&#xff0c…

JSSIP的使用及问题(webRTC,WebSockets)

简介 项目中有一个需要拨打电话的功能&#xff0c;要求实时的进行音频接听&#xff0c;并且可以在电话接听或者挂断等情况下做出相应的操作。jssip作为一个强大的实现实时通信的javascript库&#xff0c;这不门当户对了嘛。 jssip&#xff08;官网&#xff1a; JsSIP - the J…

【Cadence32】PCB多层板电源、地平面层创建心得➕CM约束管理器Analyze分析显示设置➕“DP”报错DRC

【转载】Cadence Design Entry HDL 使用教程 【Cadence01】Cadence PCB Edit相对延迟与绝对延迟的显示问题 【Cadence02】Allegro引脚焊盘Pin设置为透明 【Cadence03】cadence不小心删掉钢网层怎么办&#xff1f; 【Cadence04】一般情况下Allegro PCB设计时的约束规则设置&a…

Java阶段三06

第3章-第6节 一、知识点 理解MVC三层模型、理解什么是SpringMVC、理解SpringMVC的工作流程、了解springMVC和Struts2的区别、学会使用SpringMVC封装不同请求、接收参数 二、目标 理解MVC三层模型 理解什么是SpringMVC 理解SpringMVC的工作流程 学会使用SpringMVC封装请求…

C/C++流星雨

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C/C…

Vmware Vcenter7.0证书web续期发生错误

1. 故障描述 vSphere Client 版本 7.0.2.00200 vCenter _MACHINE_CERT快到期了&#xff0c;通过web界面更新证书失败 第一步先这样&#xff0c;重新续订一下证书 续订发生错误 2. 解决办法 2.1. 前提工作 登陆ssh到vcenter&#xff0c;重新生成证书 先关掉HA&#xff…

【合作原创】使用Termux搭建可以使用的生产力环境(五)

前言 在上一篇【合作原创】使用Termux搭建可以使用的生产力环境&#xff08;四&#xff09;-CSDN博客我们讲到了如何让proot-distro中的Debian声音驱动正常&#xff0c;将我们的系统备份后&#xff0c;通过VNC客户端连接到VNC服务器&#xff0c;这一篇我们来讲一下xfce桌面的美…

uniapp -- 实现页面滚动触底加载数据

效果 首选,是在pages.json配置开启下拉刷新 {"path": "pages/my/document/officialDocument","style": {"navigationStyle":</

Python之爬虫入门--示例(2)

一、Requests库安装 可以使用命令提示符指令直接安装requests库使用 pip install requests 二、爬取JSON数据 &#xff08;1&#xff09;、点击网络 &#xff08;2&#xff09;、刷新网页 &#xff08;3&#xff09;、这里有一些数据类型&#xff0c;选择全部 &#xff08…

OLLAMA+FASTGPT+M3E 大模型本地化部署手记

目录 1.安装ollama 0.5.1 2.下载大模型 qwen2.5 3b 3.开启WSL 4.更新wsl 5.安装ubuntu 6.docker下载 6.1 修改docker镜像源 6.2 开启WSL integration 7.安装fastgpt 7.1 创建fastgpt文件夹 7.2 下载fastgpt配置文件 8.启动容器 9.M3E下载 9.1 下载运行命令 9.2…

Linux网络基础知识————网络编程

计算机网络的体系结构 网络采用分而治之的方法设计&#xff0c;将网络的功能划分为不同的模块&#xff0c;以分层的形式有机结合在一起 每层实现不同的功能&#xff0c;其内部实现的方法对外部其他层次来说是透明的&#xff0c;每层向上一层提供服务&#xff0c;使用下一层提供…

【数据库】选择题+填空+简答

1.关于冗余数据的叙述中&#xff0c;不正确的是&#xff08;&#xff09; A.冗余的存在容易破坏数据库的完整新 B.冗余的存在给数据库的维护增加困难 C.不应该在数据库中存储任何冗余数据 D.冗余数据是指由基本数据导出的数据 C 2.最终用户使用的数据视图称为&#xff08;&…

unity3d—demo(实现给出图集名字和图片名字生成对应的图片)

目录 实现给出图集名字和图片名字生成对应的图片&#xff1a; 代码示例&#xff1a; dic: 键 是图集名称 值是一个字典 该字典键是图片名称 值是图片&#xff0c;结构如图&#xff1a; 测试代码&#xff1a; 结果&#xff1a; SpriteRenderer 讲解&#xff1a; Resour…