LINUX从零开始——ADMIN(云计算系统管理)——Day5 [RPM软件包管理 、Yum软件包仓库]

一、环境准备
1.开启CentOS7虚拟机,以root用户登录

课前回顾:
1.tar命令常用的选项有哪些?不用写作用
-c -x -f -z -j -J -C -t

2.如何将/root/backup.tar.gz压缩包,释放到/opt目录下?
tar -xf /root/backup.tar.gz -C /opt

3.利用find查找处/etc目录下,所有以“.conf”结尾的数据,请写出该命令?
find /etc -name “*.conf”

4.利用find查找处/etc目录下,只要是目录即可,请写出该命令?
find /etc -type d

  1. 常见的用find选项有哪些?不用写作用
    -type -name -size -mtime -user

6.如何将/boot目录大于10M的数据,快速拷贝到/opt目录下?
find /boot -size +10M -exec cp {} /opt ;

7.vim编辑器中如何实现复制以及粘贴?
yy和p

8.vim编辑器中将全文的man替换为MAN如何操作?
:%s/man/MAN/g

9.vim编辑器保存并退出,有几种方式?
:wq :x
命令模式下 ZZ

10.vim命令模式下,想要删除一行中,光标之后到行尾如何操作?
d$
C

11.在vim末行模式中,读入其他文本文件内容如何操作?
:r /路径/其他文本文件

12.vim编辑器中如何开启行号功能?
:set nu
##########################################################################################################
二、命令补充
•获取命令帮助
方式一:对于大部分命令,通常会提供“–help”帮助选项
方式二:使用man手册,更加权威,帮助信息更加丰富
[root@A ~]# man useradd
[root@A ~]# man passwd
–按 上 、 下 、 PgUp 、PgDn 键滚动及翻页
–按 q 键退出
–按 / 键向后查找关键词(n、N切换)
[root@A ~]# man passwd
[root@A ~]# ls /etc/passwd
[root@A ~]# man 5 passwd #数字表示不同类型帮助信息,数字5表示配置文件帮助信息

•实用技巧

历史命令
管理/调用曾经执行过的命令
–history:查看历史命令列表
–history -c:清空历史命令
–!n:执行命令历史中的第n条命令
–!str:执行最近一次以str开头的历史命令
[root@svr7 ~]# vim /etc/profile
HISTSIZE=1000 //默认记录1000条

[root@A ~]# history -c #清空历史命令(清空内存)
[root@A ~]# history #显示历史命令
1 history
[root@A ~]# less /root/.bash_history #记录历史命令的配置文件
[root@A ~]# cat /etc/redhat-release
[root@A ~]# ls -l /dev/cdrom
[root@A ~]# history
[root@A ~]# !cat #执行最近一次以cat开头的历史命令

统计文件占用空间
•du,统计文件的占用空间
–du [选项]… [目录或文件]…
–-s:只统计每个参数所占用的总空间大小
–-h:提供易读容量单位(K、M等)

[root@A ~]# du -sh /root
[root@A ~]# du -sh /etc/
[root@A ~]# du -sh /boot
[root@A ~]# du -sh /tmp/ /mnt
[root@A ~]# du -sh /
/proc:占用内存的空间,反映内存的数据

系统时间
•date,查看/调整系统日期时间
–date +%F、date +%R
–date +"%Y-%m-%d %H:%M:%S"
–date -s “yyyy-mm-dd HH:MM:SS” #修改时间

[root@A ~]# date
2020年 02月 29日 星期六 18:24:03 CST
[root@A ~]# date -s “2020-2-29 10:28”
[root@A ~]# date

[root@A ~]# date +%F #显示 年月日

[root@A ~]# date +%Y #显示年
[root@A ~]# date +%m #显示月
[root@A ~]# date +%d #显示日期

[root@A ~]# date +%R #显示时分
[root@A ~]# date +%H #显示时
[root@A ~]# date +%M #显示分

[root@A ~]# hwclock #显示硬件时间
[root@A ~]# hwclock -w #同步时间,以系统时间为准
[root@A ~]# hwclock

制作连接(链接)文件(制作快捷方式)
Linux中制作快捷方式:
格式: ln -s /路径/源数据 /路径/快捷方式的名字 #软连接制作方式

[root@A ~]# cat /etc/hosts
[root@A ~]# ln -s /etc/hosts /opt/hs.txt
[root@A ~]# ls /opt/
[root@A ~]# ls -l /opt/hs.txt
[root@A ~]# cat /opt/hs.txt

[root@A ~]# ln -s /etc/hosts /opt/
[root@A ~]# ls /opt/
[root@A ~]# ls -l /opt/hosts
[root@A ~]# cat /opt/hosts

[root@A ~]# rm -rf /opt/*
[root@A ~]# echo 123456 > /opt/A.txt
[root@A ~]# ls /opt/
[root@A ~]# ln -s /opt/A.txt /opt/B.txt
[root@A ~]# ls /opt/

[root@A ~]# ls -l /opt/B.txt
[root@A ~]# rm -rf /opt/A.txt
[root@A ~]# ls /opt/

•ln,创建软连接
–ln -s 原始文件或目录 软连接文件
软连接特点:
若原始文件或目录被删除,连接文件将失效
软连接可存放在不同分区/文件系统,可以针对目录设置

•ln,创建硬链接
–ln 原始文件 硬链接文件
硬链接特点:
若原始文件被删除,链接文件仍可用
硬连接与原始文件必须在同一分区/文件系统

[root@A ~]# rm -rf /opt/*
[root@A ~]# echo 123456 > /opt/A.txt
[root@A ~]# ls /opt/
[root@A ~]# ln -s /opt/A.txt /opt/B.txt #制作软连接
[root@A ~]# ls /opt/

[root@A ~]# ln /opt/A.txt /opt/C.txt #制作硬链接
[root@A ~]# ls /opt/
[root@A ~]# cat /opt/C.txt

[root@A ~]# rm -rf /opt/A.txt
[root@A ~]# ls /opt/

zip归档工具,支持跨平台(Windows与Linux)

•归档+压缩操作
–zip [-r] 备份文件.zip 被归档的文档…
[root@A ~]# zip -r /opt/file.zip /etc/passwd /etc/hosts /home/
[root@A ~]# ls /opt
[root@A ~]# zip -r /opt/abc.zip /etc/grop /boot/
[root@A ~]# ls /opt
•释放归档+解压操作
–unzip 备份文件.zip [-d 目标文件夹]
[root@A ~]# mkdir /myzip
[root@A ~]# unzip /opt/file.zip -d /myzip/
[root@A ~]# ls /myzip/
[root@A ~]# ls /myzip/etc/
[root@A ~]# ls /myzip/home/

##########################################################################################################
三、RPM软件包管理

1.前提显示光盘内容,具备众多的软件包
1)将光盘镜像文件放入到光驱设备中
LINUX从零开始——ADMIN(云计算系统管理)——Day5 [RPM软件包管理 、Yum软件包仓库]_第1张图片
LINUX从零开始——ADMIN(云计算系统管理)——Day5 [RPM软件包管理 、Yum软件包仓库]_第2张图片

2).挂载设备
[root@A ~]# mkdir /dvd
[root@A ~]# ls /dvd
–格式:mount 设备路径 挂载点目录
[root@A ~]# mount /dev/cdrom /dvd/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@A ~]# ls /dvd/
[root@A ~]# ls /dvd/Packages/

•RPM Package Manager
–由红帽公司提出,RedHat、SUSE等系列采用
–建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系

•RPM包文件名特征
–软件名-版本信息.操作系统.硬件架构.rpm
firefox-52.7.0-1.el7.centos.x86_64.rpm

•RPM包的一般安装位置(分散)

文件类别 默认安装位置
普通执行程序 /usr/bin/ 、/bin/
服务器程序、管理工具 /usr/sbin/ 、/sbin/
配置文件 /etc/ 、/etc/软件名/
日志文件 /var/log/、/var/log/软件名/
程序文档、man手册页 /usr/share/doc/ 、/usr/share/man/

•查询软件信息
•查询已安装的RPM软件的信息
–格式:rpm -q[子选项] [软件名称]
•常用的子选项
–-a:列出已安装的所有软件包
–-i:查看指定软件的详细信息
–-l:查看指定软件的文件安装清单
[root@A ~]# rpm -q firefox #查询firefox软件是否安装
[root@A ~]# rpm -q bash #查询bash软件是否安装
[root@A ~]# rpm -q zip #查询zip软件是否安装
[root@A ~]# rpm -q httpd #查询httpd软件是否安装

[root@A ~]# rpm -qa #列出已安装的所有软件信息
[root@A ~]# rpm -qa | grep vim
[root@A ~]# rpm -qa | grep fire
[root@A ~]# rpm -qi firefox #查询软件的用途或版本信息
[root@A ~]# rpm -ql firefox | less #查询软件的安装清单

•查询某个目录/文件是哪个RPM包带来的
–格式:rpm -qf [文件路径]…
–即使目标文件被删除,也可以查询
[root@A ~]# rpm -qf /etc/hostname

[root@A ~]# rpm -qf /etc/passwd

[root@A ~]# rpm -qf /usr/bin/firefox

[root@A ~]# rpm -qf /bin/bash

•查询未安装的RPM安装文件
–格式:rpm -q[子选项] [RPM包文件]
•常用的子选项
–-pi:查看指定软件的详细信息
–-pl:查看指定软件的文件安装清单
[root@A ~]# rpm -q httpd
[root@A ~]# rpm -qpl /dvd/Packages/httpd-2.4.6-80.el7.centos.x86_64.rpm
[root@A ~]# rpm -qpl /dvd/Packages/httpd-2.4.6-80.el7.centos.x86_64.rpm | less

[root@A ~]# rpm -q vsftpd
[root@A ~]# rpm -qpl /dvd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm | less
[root@A ~]# rpm -qpi /dvd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm #查询软件的用途

•安装RPM软件
–格式:rpm -i RPM包文件…
•辅助选项
– -v:显示细节信息
– -h:以#号显示安装进度
– --force:强制安装、覆盖安装
– --test:测试安装,不做真实安装动作

[root@A ~]# rpm -ivh /dvd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm #安装软件包
[root@A ~]# rpm -q vsftpd #查询软件是否安装成功
[root@A ~]# rpm -e vsftpd #卸载软件
[root@A ~]# rpm -q vsftpd #查询软件是否卸载成功
[root@A ~]# rpm -ivh /dvd/Packages/dhcp-4.2.5-68.el7.centos.x86_64.rpm
[root@A ~]# rpm -q dhcp

了解内容:导入红帽的签名信息
[root@A ~]# ls /dvd/RPM-GPG-KEY-CentOS-7
[root@A ~]# rpm --import /dvd/RPM-GPG-KEY-CentOS-7

•卸载RPM软件
–格式:rpm -e 软件名… …

•修复误删除文件
[root@A ~]# ls /usr/bin/hostname
[root@A ~]# hostname
[root@A ~]# rm -rf /usr/bin/hostname
[root@A ~]# hostname
bash: /usr/bin/hostname: 没有那个文件或目录
[root@A ~]# rpm -qf /usr/bin/hostname
hostname-3.13-3.el7.x86_64
[root@A ~]# rpm -ivh --force /dvd/Packages/hostname-3.13-3.el7.x86_64.rpm #强制安装

[root@A ~]# ls /usr/bin/hostname
[root@A ~]# hostname

常见提示:
1.软件包已经安装:
[root@A ~]# rpm -ivh /dvd/Packages/hostname-3.13-3.el7.x86_64.rpm
准备中… ################################# [100%]
软件包 hostname-3.13-3.el7.x86_64 已经安装
[root@A ~]#
2.依赖关系检测:
[root@A ~]# rpm -ivh /dvd/Packages/bind-chroot-9.9.4-61.el7.x86_64.rpm
错误:依赖检测失败:
bind = 32:9.9.4-61.el7 被 bind-chroot-32:9.9.4-61.el7.x86_64 需要
[root@A ~]#

•解决依赖关系
–先安装/卸载要求的包
–如果RPM包齐全但比较多,可以用通配符 *
•忽略依赖关系(不推荐)
–可能会导致软件运行异常
–辅助选项 --nodeps

##########################################################################################################
四、Yum软件包仓库
•YUM,Yellowdog Updater Modified
–基于RPM包构建的软件更新机制
–自动解决软件包依赖关系
–所有软件包由集中的YUM软件仓库提供

•软件仓库的提供方式
–本地目录:file://…
–FTP或HTTP服务:ftp://… 、http://…
•RPM软件包的来源
–Red Hat发布的RPM包集合
–第三方、用户自定义的RPM包集合

服务:自动解决依赖关系安装软件包
服务端(本机):1.具备众多的软件包 2.仓库数据文件(众多的软件包汇总信息)3.构建相应的服务
如果是本机为Yum的服务端,本机也是客户端,可以直接将光盘进行挂载即可

客户端(本机):修改配置文件,指定服务端位置
–仓库配置:/etc/yum.repos.d/.repo
–如果有错误的配置文件,会影响正确的配置文件
[root@A ~]# ls /etc/yum.repos.d/
[root@A ~]# mkdir /etc/yum.repos.d/repo
[root@A ~]# mv /etc/yum.repos.d/
.repo /etc/yum.repos.d/repo #别处其他错误文件干扰
[root@A ~]# ls /etc/yum.repos.d/
[root@A ~]# vim /etc/yum.repos.d/haha.repo
[xixi] #仓库标识,可以任意
name=hehe lele CentOS7 #仓库的描述信息,可以任意
baseurl=file:///dvd #指定服务端位置,file://代表本地为服务端
enabled=1 #是否启用本文件
gpgcheck=0 #是否检测红帽签名信息
[root@A ~]# yum repolist #列出仓库信息
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
xixi | 3.6 kB 00:00:00
(1/2): xixi/group_gz | 166 kB 00:00:00
(2/2): xixi/primary_db | 5.9 MB 00:00:00
源标识 源名称 状态
xixi hehe lele CentOS7 9,911
repolist: 9,911
[root@A ~]#

Yum工作流程
[root@A ~]# yum —>/etc/yum.repos.d/haha.repo---->文件内容---->baseurl=file:///dvd —>/dvd

yum命令工具
1.软件包的安装
[root@A ~]# yum -y install httpd
[root@A ~]# rpm -q httpd
[root@A ~]# yum -y install mariadb-server
[root@A ~]# rpm -q mariadb-server
[root@A ~]# yum -y install sssd
[root@A ~]# rpm -q sssd

2.卸载软件包
[root@A ~]# yum remove httpd
[root@A ~]# yum remove sssd

3.Yum仓库的查询
[root@A ~]# yum list #列出仓库中所有的软件包
[root@A ~]# yum list vsftpd #查询仓库中是否有vsftpd软件包,必须写软件包完整的软件名

[root@A ~]# yum search vsftp #查询仓库中是否有vsftp软件包,模糊查询
[root@A ~]# yum info firefox #查询仓库中firefox软件功能及用途等信息
[root@A ~]# yum provides /etc/passwd #查询仓库中那个软件包产生该数据

##########################################################################################################
课后习题:
案例1:虚拟机Server上操作:复制、删除、移动及vim文本编辑器

  1. 在目录/tmp下创建一个子目录good
  2. 在目录/tmp/good 创建文件cloud.txt,利用vim写入内容 I am king
  3. 将/tmp/good/cloud.txt文件复制到/root目录下,同时 改名为 king.txt
  4. 利用vim 修改文件/etc/hostname将其原有内容全部删除,写入新的内容为vip.iqiyi.com
  5. 将/etc/passwd 、/etc/resolv.conf、/etc/hostname 同时拷贝到/tmp/good/目录下
  6. 将文件 /tmp/good/hostname 重改名为 he.txt
  7. 创建目录结构/tmp/good/linux/vm
  8. 将目录 /boot内容中以 vm 开头的 复制到/tmp/good/linux/vm目录下
  9. 将/home目录复制到/tmp/good/linux/目录下

案例2:实用的技巧
1.利用du命令统计/root目录大小
2.查看系统时间,以及只显示“年-月-日”如何实现?
3.将/etc/hosts文件制作快捷方式(软连接),放在/tmp目录快捷方式的名为hs
4.利用zip将/home进行压缩,压缩包放在/root目录下名为home.zip
5.新建目录/mybak,将/root/home.zip释放到目录/mybak

案例3:mount挂载

  1. 在根目录下创建目录结构/CentOS7/dvd
  2. 利用图形将光盘文件CentOS7-1804.iso放入光驱设备中
  3. 将光驱设备挂载到/CentOS7/dvd目录,以/CentOS7/dvd目录作为其访问点
  4. 查看/CentOS7/dvdPackages目录内容
  5. 将/CentOS7/dvd/Packages目录中以vsftpd开头的软件包,拷贝到/opt下

案例4:RPM软件包管理
1.列出当前系统中安装的所有rpm软件
2.查询当前系统是否安装firefox软件
3.查询当前系统是否安装bash软件
4.查询当前系统是否安装zip软件
5.查询当前系统是否安装elinks软件
6.查询当前系统是否安装hostname软件
7.查询firefox软件的信息
8.查询firefox软件的安装清单
9.查询bash软件的安装清单
10.查询hostname软件的安装清单
11.查询hostname软件的安装清单
12.删除/usr/bin/zip程序,然后通过rpm命令工具进行恢复

案例5:Yum软件仓库管理

  1. 将光驱设备挂载到/iso/linux目录,以iso/linux目录作为其访问点
  2. 利用iso/linux目录提供光盘内容作为软件源,构建本地Yum仓库
  3. 安装软件包xeyes,并在命令行运行命令xeyes测试效果

案例6:虚拟机上操作,查找并提取文件内容
1.查看内核版本,将显示结果重定向到/root/version.txt
2.查看红帽系统版本,将显示结果追加到/root/version.txt
3.查看主机名将显示结果追加到/root/version.txt
4.将/etc/fstab文件中以UUID开头的信息,写入到/root/fstab.txt
5.提取/etc/passwd以bash结尾的行,将其信息写入/opt/pass.txt
6.复制/etc/login.defs文件到当前目录下,改名为init.txt
7.提取init.txt文件里的有效配置(去除以#号开头,去除空行),保存为init2.txt

你可能感兴趣的:(LINUX从零开始——ADMIN(云计算系统管理)——Day5 [RPM软件包管理 、Yum软件包仓库])