昨日课后习题:
案例1:虚拟机上操作:复制、删除、移动及vim文本编辑器
- 在目录/mnt下创建一个子目录public
]# mkdir /mnt/public
- 在目录/mnt/public 创建文件linux.txt,利用vim写入内容 Study Linux
]# vim /mnt/public/linux.txt
Study Linux
- 将/mnt/public/linux.txt文件复制到/root目录下,同时 改名为 study.txt
]# cp /mnt/public/linux.txt /root/study.txt
]# ls /root
- 利用vim 修改文件/etc/hostname将其原有内容全部删除,写入新的内容为www.qq.com
]# vim /etc/hostname
www.qq.com
- 将/etc/passwd 、/etc/resolv.conf、/etc/hostname 同时拷贝到/mnt/public/目录下
]# cp /etc/passwd /etc/resolv.conf /etc/hostname /mnt/public/
- 将文件 /mnt/public/hostname 重改名为 stu.txt
]# mv /mnt/public/hostname /mnt/public/stu.txt
]# ls /mnt/public
- 创建目录结构/mnt/public/test/vm
]# mkdir -p /mnt/public/test/vm
- 将目录 /boot内容中以 vm 开头的 复制到/mnt/public/test/vm目录下
]# find /boot -name “vm*” -exec cp –r {} /mnt/public/test/vm \;
9. 将/home目录复制到/mnt/public/test/目录下
]# cp -r /home /mnt/public/test/
案例2:虚拟机上操作:复制、删除、移动及vim文本编辑器
- 创建目录结构/study/nsd01
]# mkdir -p /study/nsd01
- 在目录/study/nsd01 创建文件abc.txt,利用vim写入内容 abc.tedu.cn
]# vim /study/nsd01/abc.txt
abc.tedu.cn
- 将/study/nsd01/abc.txt文件复制到/opt目录下,同时 改名为 test.txt
]# cp /study/nsd01/abc.txt /opt/test.txt
]# ls /opt
- 利用vim 修改文件/etc/hostname将其原有内容全部删除,写入新的内容为www.sina.com
]# vim /etc/hostname
www.sina.com
- 将/etc/passwd 、/etc/resolv.conf、/etc/hostname 同时拷贝到/study/nsd01/目录下
]# cp /etc/passwd /etc/resolv.conf /etc/hostname /study/nsd01/
]# ls /study/nsd01/
- 将文件 /study/nsd01/hostname 重改名为 haxi.txt
]# mv /study/nsd01/hostname /study/nsd01/haxi.txt
- 创建目录结构/root/vm
]# mkdir -p /root/vm
- 将目录 /boot内容中以 vm 开头的 复制到/root/vm目录下
]# find /boot -name “vm*” -exec cp –r {} /root/vm \;
]# ls /root/vm
9. 将/home目录复制到/root/vm目录下
]# cp -r /home /root/vm
案例3:虚拟机上操作:ls与cat、head
- 显示根目录下所有内容
]# ls -A /
- 显示/etc目录下所有以tab结尾的文件
]# ls /etc/*tab
- 显示/etc/resolv.conf文件的详细属性并加上易读的单位
]# ls -lh /etc/resolv.conf
- 显示/etc/passwd文件的详细属性并加上易读的单位
]# ls -lh /etc/passwd
5. 显示/etc/passwd文件的头4行内容
]# head -4 /etc/passwd
案例4:tar制作/释放归档压缩包
首先创建/root/boothome/与/root/usrsbin/目录
]# mkdir /root/boothome/ /root/usrsbin/
- 备份/boot、/home这两个文件夹,保存为boothome.tar.gz文件
]# tar -zcf boothome.tar.gz /boot /home
]# ls
- 查看boothome.tar.gz文件内包含哪些内容
]# tar -tf boothome.tar.gz
- 将boothome.tar.gz释放到文件夹/root/boothome/下
]# tar -xf boothome.tar.gz -C /root/boothome/
]# ls /root/boothome/
- 备份/usr/sbin目录,保存为usrsbin.tar.bz2文件
]# tar -jcf usrsbin.tar.bz2 /usr/sbin
]# ls
查看usrsbin.tar.bz2文件内包含哪些内容
]# tar -tf usrsbin.tar.bz2
6)将usrsbin.tar.bz2释放到/root/usrsbin/文件夹下
]# tar -xf usrsbin.tar.bz2 -C /root/usrsbin/
]# ls /root/usrsbin/
案例5:虚拟机上操作,查找并处理文件
–创建用户student,创建目录/root/findfiles
– 利用find查找所有用户 student 拥有的必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中
– 利用find查找/boot目录下大于10M并且必须是文件,拷贝到/opt
]# find /boot -size +10M -type f -exec cp {} /opt \;
– 利用find查找/boot/ 目录下以 vm 开头且必须是文件,拷贝到/opt
]# find /boot -name “vm*” -type f -exec cp {} /opt \;– 利用find查找/boot/ 目录下为快捷方式
]# find /boot/ -type l
– 利用find查找/etc 目录下,以 tab 作为结尾的 必须是文件
]# find /etc -name “*tab” -type f
案例6:vim效率操作
1)将文件 /etc/passwd 复制为 /opt/nsd.txt
–打开 /opt/nsd.txt 文件
–练习命令模式下的光标切换/复制/删除/查找操作
2)将文件 /etc/man_db.conf 复制到 /opt 目录下
–打开 /opt/man_db.conf 文件
–将第50~100行内的“man”替换为“MAN”
–在 vim 中设置显示行号
#
- 环境准备
1.光盘文件放入光驱设备

2.挂载光驱设备
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /mnt
[root@localhost ~]# ls /mnt/Packages
RPM软件包简介
- RPM Package Manager
由红帽公司提出,RedHat、SUSE等系列采用
建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系
RPM包文件名特征
- 软件名-版本信息.操作系统.硬件架构.rpm
firefox-52.7.0-1.el7.centos.x86_64.rpm
软件名:firefox
软件包名: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 -qa #当前系统中所有已安装的软件包
]# rpm -q firefox #查看firefox是否安装
firefox-52.7.0-1.el7.centos.x86_64
]# rpm -q httpd
未安装软件包 httpd
]# rpm -q bash
bash-4.2.46-30.el7.x86_64
]# rpm -qi firefox #查询软件信息
]# rpm -ql firefox #查询软件安装了哪些内容(安装清单)
]# rpm -ql firefox | less
查询某个目录/文件是哪个RPM包带来的
- 格式:rpm -qf [文件路径]…
- 即使目标文件被删除,也可以查询
[root@localhost ~]# which vim #查询命令对应的程序文件
/usr/bin/vim
[root@localhost ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-4.el7.x86_64
[root@localhost ~]# rpm -q vim-enhanced
vim-enhanced-7.4.160-4.el7.x86_64
[root@localhost ~]# rpm -qf /usr/sbin/poweroff
查询软件包
]# rpm -q vsftpd #查询vsftpd软件是否安装
未安装软件包 vsftpd
]# ls /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm
查询软件包的安装清单:
]# rpm -qpl /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm
查询软件包信息
]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm
导入红帽签名信息(了解)
]# rpm —import /mnt/RPM-GPG-KEY-CentOS-7
查询软件包信息
]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm
安装RPM软件(了解)
- 格式:rpm -i RPM包文件…
- 辅助选项
- -v:显示细节信息
- -h:以#号显示安装进度
]# rpm -q vsftpd #查询当前的系统是否安装了该软件
未安装软件包 vsftpd
]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
]# rpm -q vsftpd #查询当前的系统是否安装了该软件
vsftpd-3.0.2-22.el7.x86_64
]# rpm -evh vsftpd #卸载软件
]# rpm -q vsftpd #查询当前的系统是否安装了该软件
未安装软件包 vsftpd
解决依赖关系
- 先安装/卸载要求的包
- 如果RPM包齐全但比较多,可以用通配符 *
- 忽略依赖关系(不推荐)
- 可能会导致软件运行异常
- 辅助选项 —nodeps
常见依赖关系的报错:
[root@localhost ~]# rpm -ivh /mnt/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 需要
构建Yum软件包仓库
作用:自动解决依赖关系安装软件
服务:自动解决依赖关系安装软件
服务端(本机): 1.众多的软件 2.仓库数据文件(repodata)
本地Yum仓库:服务端需要有光盘内容即可
客户端(本机):指定服务端位置
- 仓库配置:/etc/yum.repos.d/*.repo
- 错误的文件会影响正确的文件
yum命令执行流程:
yum命令—-》读取/etc/yum.repos.d/*.repo配置文件内容—-》从而找到仓库的具体位置
客户端文件配置内容:
- [源名称] :自定义名称,具有唯一性
- name:本软件源的描述字串
- baseurl:指定YUM服务端的URL地址
- enabled:是否启用此频道
- gpgcheck:是否验证待安装的RPM包
gpgkey:用于RPM软件包验证的密钥文件
完整示例:
]# vim /etc/yum.repos.d/mydvd.repo
[nsd20]
name=hahaxixi
baseurl=file:///mnt
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
]# ls /etc/yum.repos.d/
]# mkdir /etc/yum.repos.d/bak
]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
]# ls /etc/yum.repos.d/
]# ls /etc/yum.repos.d/bak
]# vim /etc/yum.repos.d/mydvd.repo
[nsd20] #仓库的名称
name=hahaxixi #仓库描述信息
baseurl=file:///mnt #指定服务端位置file://表示本地为服务端
enabled=1 #本文件启用
gpgcheck=0 #不检测红帽签名信息
]# yum repolist #列出仓库信息
- 总结:本地Yum仓库构建方法
1.显示光盘的内容,挂载光驱设备 mount /dev/cdrom /mnt
2.书写客户端配置文件,指定仓库位置
3.执行流程: yum命令—->/etc/yum.repos.d/*.repo—->baseurl=file:///mnt
- 总结:本地Yum仓库排除错误
1.没有挂载光驱设备
2./etc/yum.repos.d目录下的配置文件内容
3.错误的配置文件影响
- Yum的使用
安装软件
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# rpm -q httpd
[root@localhost ~]# yum -y install bind-chroot
[root@localhost ~]# rpm -q bind-chroot
[root@localhost ~]# yum -y install sssd
[root@localhost ~]# rpm -q sssd
[root@localhost ~]# yum -y install gcc
[root@localhost ~]# rpm -q gcc
[root@localhost ~]# yum -y install xorg-x11-apps
[root@localhost ~]# rpm -q xorg-x11-apps
[root@localhost ~]# rpm -ql xorg-x11-apps | grep bin
[root@localhost ~]# xeyes
卸载软件
[root@localhost ~]# yum remove gcc
[root@localhost ~]# yum remove httpd
查询
[root@localhost ~]# yum list ftp #查询仓库是否有ftp软件
可安装的软件包 #表示当前系统没有安装该软件
ftp.x86_64 0.17-67.el7 nsd20
[root@localhost ~]# yum list httpd
[root@localhost ~]# yum search ftp #包含ftp就匹配
]# yum provides /usr/bin/hostname
]# yum provides /etc/passwd #仓库中那个软件包产生该文件
清空缓存
执行流程: yum命令—->/etc/yum.repos.d/*.repo—->baseurl=file:///mnt
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist
[root@localhost ~]# yum repolist
- 删除/usr/bin/zip程序,然后通过yum工具进行恢复
[root@svr1 ~]# rm -rf /usr/bin/zip
[root@svr1 ~]# ls /usr/bin/zip
ls: 无法访问/usr/bin/zip: 没有那个文件或目录
[root@svr1 ~]#
[root@svr1 ~]# yum provides /usr/bin/zip #查询仓库中那个软件产生了此程序
[root@svr1 ~]# yum -y reinstall zip #覆盖安装
[root@svr1 ~]# ls /usr/bin/zip
/usr/bin/zip
- 命令补充
- 获取命令帮助
方式一:命令 —help
[root@localhost ~]# cat —help
方式二:man 命令
[root@localhost ~]# man cat #按q退出
[root@localhost ~]# man passwd #显示passwd命令帮助
[root@localhost ~]# man 5 passwd
数字5表示帮助的类型,表示配置文件类型
历史命令
管理/调用曾经执行过的命令
- history:查看历史命令列表
- history -c:清空历史命令
- !n:执行命令历史中的第n条命令
- !str:执行最近一次以str开头的历史命令
[root@svr7 ~]# vim /etc/profile
HISTSIZE=1000 #默认记录1000条
[root@localhost ~]# history #显示历史命令列表
[root@localhost ~]# history -c #清空历史命令
[root@localhost ~]# history
[root@localhost ~]# cat /etc/redhat-release
[root@localhost ~]# ls /root
[root@localhost ~]# history
[root@localhost ~]# !cat #指定最近一条以cat开头的历史命令
[root@localhost ~]# !ls #指定最近一条以ls开头的历史命令
du,统计文件的占用空间
- -s:只统计每个参数所占用的总空间大小
- -h:提供易读容量单位(K、M等)
[root@localhost ~]# du -sh /root
[root@localhost ~]# du -sh /etc
[root@localhost ~]# du -sh /boot
[root@localhost ~]# du -sh /
date,查看/调整系统日期时间
- date +%F、date +%R
- date +”%Y-%m-%d %H:%M:%S”
- date -s “yyyy-mm-dd HH:MM:SS”
]# date
]# date -s “2008-9-6 11:17:11” #修改系统时间
]# date
]# date -s “2022-5-7 16:15:11”
]# date
[root@localhost ~]# date +%Y #显示年
[root@localhost ~]# date +%m #显示月
[root@localhost ~]# date +%d #显示日期
[root@localhost ~]# date +%H #显示时
[root@localhost ~]# date +%M #显示分
[root@localhost ~]# date +%S #显示秒
[root@localhost ~]# date +%F #显示年-月-日
[root@localhost ~]# date +%R #显示时:分
制作链接文件(制作快捷方式)
格式:ln -s /路径/源数据 /路径/快捷方式的名称 #软链接
]# ls /etc/sysconfig/network-scripts/ifcfg-lo
]# ln -s /etc/sysconfig/network-scripts/ifcfg-lo /mylo
]# ls /
]# ls -l /mylo
lrwxrwxrwx. 1 root root 39 5月 7 16:25 /mylo -> /etc/sysconfig/network-scripts/ifcfg-lo
]# ln -s /etc/sysconfig/network-scripts/ /ns
]# ls /
]# ls -l /ns #查看快捷方式的信息
]# touch /ns/haha.txt
]# touch /ns/maohehaozi.txt
]# touch /ns/shukehebeita.txt
]# ls /etc/sysconfig/network-scripts/
软链接优势:可以针对目录与文件制作快捷方式,支持跨分区
软链接缺点:源数据消失,快捷方式失效
[root@svr1 ~]# rm -rf /opt/*
[root@svr1 ~]# ls /opt/
[root@svr1 ~]# echo 123456 > /opt/A.txt
[root@svr1 ~]# ln -s /opt/A.txt /opt/B.txt
[root@svr1 ~]# ls /opt/
A.txt B.txt
[root@svr1 ~]# rm -rf /opt/A.txt
[root@svr1 ~]# ls /opt/
B.txt
[root@svr1 ~]#
格式:ln /路径/源数据 /路径/快捷方式的名称 #硬链接
硬链接优势:源数据消失,快捷方式仍然有效
硬链接缺点:只能针对文件制作快捷方式,不支持支持跨分区
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# echo 123 > /opt/A.txt
[root@localhost ~]# ln -s /opt/A.txt /opt/B.txt #软链接
[root@localhost ~]# ls /opt/
[root@localhost ~]# ln /opt/A.txt /opt/C.txt #硬链接
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/B.txt
[root@localhost ~]# cat /opt/C.txt
[root@localhost ~]# rm -rf /opt/A.txt
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/B.txt #软链接失效
cat: /opt/B.txt: 没有那个文件或目录
[root@localhost ~]# cat /opt/C.txt #硬链接仍然有效
zip归档工具,跨平台(Windows与Linux)
- 归档+压缩操作: zip [-r] 备份文件.zip 被归档的文档…
[-r]:被归档的数据有目录,必须加上此选项
]# zip -r /opt/abc.zip /etc/passwd /home
]# ls /opt/
- 释放归档+解压操作: unzip 备份文件.zip [-d 目标文件夹]
]# unzip -l /root/abc.zip #查看压缩包的内容
]# mkdir /nsd20
]# unzip /opt/abc.zip -d /nsd20
]# ls /nsd20
]# ls /nsd20/etc/
]# ls /nsd20/home/
课后习题:
案例1:虚拟机上操作:复制、删除、移动及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/目录下
案例3:mount挂载
1. 在根目录下创建目录结构/CentOS7/dvd
2. 利用图形将光盘镜像文件放入光驱设备中
3. 将光驱设备挂载到/CentOS7/dvd目录,以/CentOS7/dvd目录作为其访问点
4. 查看/CentOS7/dvd/Packages目录内容
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软件的安装清单
案例5:Yum软件仓库管理
1. 将光驱设备挂载到/CentOS7/dvd目录,以/CentOS7/dvd目录作为其访问点
2. 利用/CentOS7/dvd目录提供光盘内容作为软件源,构建本地Yum仓库
3. 安装软件包xorg-x11-apps,该软件会产生xeyes命令,在命令行运行xeyes命令测试效果
案例6:Yum软件仓库管理
1. 将光驱设备挂载到/os/centos目录,以/os/centos目录作为其访问点
2. 利用/os/centos目录提供光盘内容作为软件源,构建本地Yum仓库
3. 安装软件包gcc
[root@svr1 ~]# mkdir -p /os/centos
[root@svr1 ~]# mount /dev/cdrom /os/centos
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr1 ~]# ls /os/centos
[root@svr 1 ~]# rm -rf /etc/yum.repos.d/*
[root@svr1 ~]# vim /etc/yum.repos.d/mydvd.repo
[haha]
name=xixi
baseurl=file:///os/centos
enabled=1
gpgcheck=0
[root@svr1 ~]# yum -y install vsftpd
案例7:Yum软件仓库管理
1. 将光驱设备挂载到/iso/linux目录,以/iso/linux目录作为其访问点
2. 利用/iso/linux目录提供光盘内容作为软件源,构建本地Yum仓库
3. 安装软件包httpd
4.删除/usr/bin/zip程序,然后通过yum工具进行恢复
案例8:虚拟机上操作,查找并提取文件内容
- 查看内核版本,将显示结果重定向到/root/version.txt
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64
[root@localhost ~]# uname -r > /root/version.txt
[root@localhost ~]# cat /root/version.txt
- 查看红帽系统版本,将显示结果追加到/root/version.txt
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@localhost ~]# cat /etc/redhat-release >> /root/version.txt
[root@localhost ~]# cat /root/version.txt
- 查看主机名将显示结果追加到/root/version.txt
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostname >> /root/version.txt
[root@localhost ~]# cat /root/version.txt
- 将/etc/fstab文件中以UUID开头的信息,写入到/root/fstab.txt
[root@localhost ~]# grep ^UUID /etc/fstab
UUID=ae2e2523-b5df-4d9c-8d39-c07166ad2c71 /boot xfs defaults 0 0
[root@localhost ~]# grep ^UUID /etc/fstab > /root/fstab.txt
[root@localhost ~]# cat /root/fstab.txt
- 提取/etc/passwd以bash结尾的行,将其信息写入/opt/pass.txt
[root@localhost ~]# grep bash$ /etc/passwd
[root@localhost ~]# grep bash$ /etc/passwd > /opt/pass.txt
[root@localhost ~]# cat /opt/pass.txt
- 复制/etc/login.defs文件到当前目录下,改名为init.txt
[root@localhost ~]# pwd
/root
[root@localhost ~]# cp /etc/login.defs init.txt
[root@localhost ~]# ls
- 提取init.txt文件里的有效配置(去除以#号开头与去除空行),保存为init2.txt
[root@localhost ~]# grep -v ^# init.txt
[root@localhost ~]# grep -v ^# init.txt | grep -v ^$
[root@localhost ~]# grep -v ^# init.txt | grep -v ^$ > init2.txt
[root@localhost ~]# cat init2.txt
案例:实用的技巧
1.利用du命令统计/root目录大小
2.查看系统时间,以及只显示“年-月-日”如何实现?
3.将/etc/hosts文件制作快捷方式(软连接),放在/tmp目录快捷方式的名为hs
4.利用zip将/home进行压缩,压缩包放在/root目录下名为home.zip
5.新建目录/mybak,将/root/home.zip释放到目录/mybak
