一、环境准备
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
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)将光盘镜像文件放入到光驱设备中
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文本编辑器
案例2:实用的技巧
1.利用du命令统计/root目录大小
2.查看系统时间,以及只显示“年-月-日”如何实现?
3.将/etc/hosts文件制作快捷方式(软连接),放在/tmp目录快捷方式的名为hs
4.利用zip将/home进行压缩,压缩包放在/root目录下名为home.zip
5.新建目录/mybak,将/root/home.zip释放到目录/mybak
案例3:mount挂载
案例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软件仓库管理
案例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