目录
[一 软件包管理器](#一 软件包管理器)
[1 什么是软件包](#1 什么是软件包)
[2 Linux软件生态](#2 Linux软件生态)
[3 yum具体操作](#3 yum具体操作)
(1)查看软件包查看软件包)
[二 Linux/Windows下多用户安装次数问题](#二 Linux/Windows下多用户安装次数问题)
[1 Linux中软件安装如果有多个用户,要安装几次?](#1 Linux中软件安装如果有多个用户,要安装几次?)
[2 Windows中软件安装如果有多个用户,要安装几次](#2 Windows中软件安装如果有多个用户,要安装几次)
[3 软件更新问题](#3 软件更新问题)
[三 编辑器Vim](#三 编辑器Vim)
[1 vim是什么](#1 vim是什么)
[2 为什么要学习vim](#2 为什么要学习vim)
[3 怎么办](#3 怎么办)
[4 vim命令](#4 vim命令)
[vim 的基本操作](#vim 的基本操作)
[vim 正常模式命令集](#vim 正常模式命令集)
[vim 末行模式命令集](#vim 末行模式命令集)
一 软件包管理器
1 什么是软件包
• 在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。
• 但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。
• 软件包和软件包管理器,就好比"App"和"应用商店"这样的关系。
• yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器。主要应用在Fedora, RedHat, Centos等发行版上。
• Ubuntu:主要使用apt(Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能。
2 Linux软件生态
• Linux下载软件的过程(Ubuntu、Centos、other)

yum和apt的下载软件可以看作是一种在线式的安装,它是需要访问外网的。因为大部分同学使用的是云服务器,可以直接访问很多资源
操作系统的好坏评估---生态问题

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

• 软件包依赖的问题
yum和apt在下载的时候会解决的一个问题,下载的软件之间会存在软件依赖的问题
例如:下载的软件可能会依赖c语言标准库,加密解密对应的库,网络对应的库。而网络对应的库还会依赖c++的库和其他的库(如下图所示)

yum/apt会自动解决依赖问题:好处是可以在线安装----联网
• 国内镜像源

以下是一些国内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发行版的镜像,以及相关的软件仓库和工具。该镜像站还提供了便捷的搜索功能,帮助用户快速找到所需的软件包。 此外,还有一些其他的国内镜像源,如搜狐开源镜像站等,但可能由于时间变化或政策调整,部分镜像站的链接或状态可能有所变动。因此,建议用户在使用前访问官方网站或咨询相关社区以获取最新的信息和帮助


3 yum具体操作

(1)查看软件包
通过 yum list 命令可以罗列出当前⼀共有哪些软件包.由于包的数⽬可能⾮常之多,这⾥我们需要使用grep 命令只筛选出我们关注的包. 例如:
bash
# 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 amd64
Graphical serial terminal, like minicom
lrzsz/focal,now 0.12.21-10 amd64 [installed]
Tools for zmodem/xmodem/ymodem file transfer
$ apt show lrzsz
Package: lrzsz
6Version: 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 有上述有详细介绍
(2)安装软件
通过yum,我们可以通过很简单的⼀条命令完成gcc的安装.
bash
# 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报错, 请自行百度.
软件一般会下载到路径use/bin/路径下,但也有可能会下载到sbin/路径下安装软件要么用root安装到use/bin/,要么用sudo对指令进行提权(other是没有权力往use/bin/里拷贝内容的)

增加-y:自动确认,不需要每一次都询问是否安装/卸载
(3)卸载软件
仍然是一条命令:
bash
# Centos
sudo yum remove [-y] lrzsz
# Ubuntu
sudo apt remove [-y] lrzsz
注意事项
关于 yum / apt 的所有操作必须保证主机(虚拟机)网络畅通!!! 可以通过 ping 指令验证
bash
ping www.baidu.com
# 当天yum / apt也能离线安装,但是和我们当前⽆关,暂不关⼼。
(4)安装源
Cetnos 安装源路径:

Ubuntu安装源路径:


二 Linux/Windows下多用户安装次数问题
1 Linux中软件安装如果有多个用户,要安装几次?
一次
usr/bin目录下------(sudo / root)root账号安装,安装一次就够了。
Linux中yum / apt不能同时安装多个软件,会报错;只能一个装完再装另一个。
2 Windows中软件安装如果有多个用户,要安装几次
Windows在安装软件的时候会询问是多用户安装还是单用户安装,前者和Linux一样,装了就所有的用户都装好了,后者则只会安装指定用户。
Windows系统一般只有一个用户。
Windows系统中做好了软件隔离,可以同时安装各种软件。
3 软件更新问题
软件源更新的本质:这个新的配置文件会替换系统的,如果你想保留,可以对老的备份一下------sudo mv;否则就直接覆盖老的------sudo cp。
关于更新安装源,能够说明原理即可。云服务器不用考虑,因为软件源都是国内的了。
CentOs已经是停更的状态了。
Wget:去特定的网址获取内容。
三 编辑器Vim
1 vim是什么
vim是文本编辑器,只能用来写代码或更改配置文件(不能运行代码或调试代码)
2 为什么要学习vim
虽然随着AI的发展,vim的使用频率在下降,但是可以把vim当成一个快速的文本修改工具
还有一种编辑器叫做vi
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,⽽且还有⼀些新的特性在⾥⾯。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、mac os、windows。我们课堂上,统⼀按照vim来进行讲解。
3 怎么办
(1)写一段代码

(2)vim的模式问题

课堂上我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式 (command mode)、插入模式 (Insert mode)和底行模式(last line mode),各模式的功能区分如下:
正常/普通/命令模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 下,或者到 last line mode
插⼊模式
只有在 Insert mode 下,才可以做文字输入,按「ESC」键可回到命令模式。该模式是我们后面用的最频繁的编辑模式。
末行模式
文件保存或退出,也可以进行文件替换、查找字符串、列出行号等操作。
在命令模式下,按「Shift+:」即可进入该模式。要查看所有模式:打开 vim,在底行模式直接输入 `:help vim-modes`。
(3)模式切换的问题


4 vim命令
vim的命令我们只需要掌握15~20个,我们先把vim的命令都列举出来,然后讲解其中我们需要讲解的命令。
vim 的基本操作
・进入 vim:在系统提示符号输入 vim 及文件名称后,就进入 vim 全屏幕编辑画面:
bash
$ vim test.c
・不过有一点要特别注意,就是你进入 vim 之后,是处于 [正常模式],你要切换到 [插入模式] 才能够输入文字。
模式切换
・[正常模式] 切换至 [插入模式]
・输入 a
・输入 i
・输入 o
・[插入模式] 切换至 [正常模式]
・目前处于 [插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到 [正常模式] 再删除文字。当然,也可以直接删除。
・[正常模式] 切换至 [末行模式]
・「shift + ;」,其实就是输入「:」
・退出 vim 及保存文件:在 [正常模式] 下,按一下「:」冒号键进入「Last line mode」,例如:
・:w(保存当前文件)
・:wq (输入「wq」,存盘并退出 vim)
・:q! (输入 q!,不存盘强制退出 vim)
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 行首。
vim 末行模式命令集
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。
・列出行号
・「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
・跳到文件中的某一行
・「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15,再回车,就会跳到文章的第 15 行。
・查找字符
・「/ 关键字」:先按「/」键,再输入你想寻找的字符,如果第一次找的关键字不是你想要的,可以一直按「n」会往后寻找到你要的关键字为止。
・「? 关键字」:先按「?」键,再输入你想寻找的字符,如果第一次找的关键字不是你想要的,可以一直按「n」会往前寻找到你要的关键字为止。
・保存文件
・「w」:在冒号输入字母「w」就可以将文件保存起来
・离开 vim
・「q」:按「q」就是退出,如果无法离开 vim,可以在「q」后跟一个「!」强制离开 vim。
・「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
本次要学习的命令
