[root@server1 ~]# mount /dev/cdrom /mnt/ #临时挂载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server1 ~]# ls /mnt/
[root@server1 ~]# ls /mntPackages
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软件包信息
- 格式:rpm -q[子选项] [软件名称]
常用的子选项
-a: 列出当前主机已安装的所有RPM软件
-i: 查看指定软件的详细信息
-l: 查看指定软件的文件安装清单
[root@server1 ~]# rpm -qa #当前系统中所有已安装的软件包
[root@server1 ~]# rpm -qa | wc -l #统计有多少个
[root@server1 ~]# rpm -q firefox #查看firefox是否安装
firefox-52.7.0-1.el7.centos.x86_64
[root@server1 ~]# rpm -q httpd #httpd为提供Web服务的软件
未安装软件包 httpd
[root@server1 ~]# rpm -q bash
bash-4.2.46-30.el7.x86_64
[root@server1 ~]# rpm -qi firefox #查询软件信息
[root@server1 ~]# rpm -ql firefox #查询软件安装了哪些内容(安装清单)
[root@server1 ~]# rpm -ql firefox | less
查询某个目录/文件是哪个RPM包带来的
- 格式:rpm -qf [文件路径]…
- 即使目标文件被删除,也可以查询
[root@server1 ~]# which vim #查询命令对应的程序文件
/usr/bin/vim
[root@server1 ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-4.el7.x86_64
[root@server1 ~]# rpm -q vim-enhanced
vim-enhanced-7.4.160-4.el7.x86_64
[root@server1 ~]# which ifconfig
/usr/sbin/ifconfig
[root@server1 ~]# rpm -qf /usr/sbin/ifconfig
net-tools-2.0-0.51.20160912git.el8.x86_64
查询待软件包(参数为软件包名)
- 格式:rpm -q[子选项] [软件名称]
-pi: 查看指定软件的详细信息
-pl: 查看指定软件的文件安装清单
[root@server1 ~]# rpm -q vsftpd #查询vsftpd软件是否安装
未安装软件包 vsftpd
[root@server1 ~]# ls /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@server1 ~]# rpm -qpl /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
#查询软件包信息
[root@server1 ~]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@server1 ~]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7
#查询软件包信息
[root@server1 ~]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
- 格式:rpm -i RPM包文件…
[root@server1 ~]# rpm -q vsftpd #查询当前的系统是否安装了该软件
未安装软件包 vsftpd
[root@server1 ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@server1 ~]# rpm -q vsftpd #查询当前的系统是否安装了该软件
vsftpd-3.0.2-22.el7.x86_64
[root@server1 ~]# rpm -e vsftpd #卸载软件
[root@server1 ~]# rpm -q vsftpd #查询当前的系统是否安装了该软件
未安装软件包 vsftpd
[root@server1 ~]# which hostname
/usr/bin/hostname
[root@server1 ~]# rm -rf /usr/bin/hostname
[root@server1 ~]# hostname
bash: hostname: 未找到命令...
[root@server1 ~]# rpm -qf /usr/bin/hostname #查看由哪个软件包产生
hostname-3.13-3.el7.x86_64
[root@server1 ~]# rpm -ivh --force /mnt/Packages/hostname-3.13-3.el7.x86_64.rpm
– 先安装/卸载要求的包
– 如果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 需要
作用:自动解决依赖关系安装软件
服务端(本机): 1.众多的软件 2.仓库数据文件(repodata) 3.FTP协议或http协议
本地Yum仓库:服务端需要有光盘内容即可
客户端(本机):指定服务端位置
– 仓库配置:/etc/yum.repos.d/*.repo
– 错误的文件会影响正确的文件
Yum---->/etc/yum.repos.d/*.repo---->光盘内容
客户端文件配置内容:
– [源名称] :自定义名称,具有唯一性
– name:本软件源的描述字串
– baseurl:指定YUM服务端的URL地址
– enabled:是否启用此频道
– gpgcheck:是否验证待安装的RPM包
– gpgkey:用于RPM软件包验证的密钥文件
完整示例:
[root@server1 ~]# vim /etc/yum.repos.d/mydvd.repo
[RPM] #仓库的名称
name=RPM #仓库描述信息
baseurl=file:///mnt #指定服务端位置file://表示本地为服务端
enabled=1 #本文件启用
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
#或
[RPM]
baseurl=file:///mnt
enabled=0 #不检测红帽签名信息
gpgcheck=1
1.服务端:显示光盘的内容,挂载光驱设备
2.客户端:书写客户端配置文件,指定服务端位置
3.执行流程: yum命令—>/etc/yum.repos.d/*.repo—>baseurl=file:///mnt
[root@server1 ~]# yum -y install httpd
[root@server1 ~]# rpm -q httpd
重新安装(覆盖安装)
[root@server1 ~]# yum -y reinstall httpd
[root@server1 ~]# yum remove httpd
[root@server1 ~]# yum list ftp #查询仓库是否有ftp软件
可安装的软件包 #表示当前系统没有安装该软件
ftp.x86_64 0.17-67.el7 nsd2010
[root@server1 ~]# yum list httpd
[root@server1 ~]# yum search ftp #包含ftp就匹配
[root@server1 ~]# yum provides /usr/bin/hostname
[root@server1 ~]# yum provides /etc/passwd #仓库中那个软件包产生该文件
[root@server1 ~]# rm -rf /usr/sbin/ifconfig
[root@server1 ~]# ifconfig
bash: ifconfig: 未找到命令...
[root@server1 ~]# yum provides /usr/sbin/ifconfig
[root@server1 ~]# yum -y reinstall net-tools
[root@server1 ~]# ls /usr/sbin/ifconfig
/usr/sbin/ifconfig
[root@server1 ~]# ifconfig
[root@server1 ~]# yum clean all
[root@server1 ~]# yum repolist
[root@server1 ~]# bc
方式一:命令 --help
[root@server1 ~]# cat --help
方式二:man 命令
[root@server1 ~]# man cat #按q退出
[root@server1 ~]# man passwd #显示passwd命令帮助
[root@server1 ~]# man 5 passwd
数字5表示帮助的类型,表示配置文件类型
管理/调用曾经执行过的命令
– history:查看历史命令列表
– history -c:清空历史命令
– !n:执行命令历史中的第n条命令
– !str:执行最近一次以str开头的历史命令
[root@server1 ~]# vim /etc/profile
HISTSIZE=1000 #默认记录1000条
[root@server1 ~]# history #显示历史命令列表
[root@server1 ~]# history -c #清空历史命令
[root@server1 ~]# history
[root@server1 ~]# cat /etc/redhat-release
[root@server1 ~]# ls /root
[root@server1 ~]# history
[root@server1 ~]# !cat #指定最近一条以cat开头的历史命令
[root@server1 ~]# !ls #指定最近一条以ls开头的历史命令
du,统计目录的占用空间
– du [选项]… [目录或文件]…
– -s:只统计每个参数所占用的总空间大小
– -h:提供易读容量单位(K、M等)
[root@server1 ~]# du -sh /root
94M /root
[root@server1 ~]# du -sh /etc
28M /etc
[root@server1 ~]# du -sh /boot
122M /boot
– date +%F、date +%R
– date +"%Y-%m-%d %H:%M:%S"
– date -s “yyyy-mm-dd HH:MM:SS”
[root@server1 ~]# date
[root@server1 ~]# date -s "2022-2-9 11:11:11" #修改系统时间
[root@server1 ~]# date
[root@server1 ~]# date -s "2021-12-06 16:37:11"
[root@server1 ~]# date
[root@server1 ~]# date +%Y #显示年
[root@server1 ~]# date +%m #显示月
[root@server1 ~]# date +%d #显示日期
[root@server1 ~]# date +%H #显示时
[root@server1 ~]# date +%M #显示分
[root@server1 ~]# date +%S #显示秒
[root@server1 ~]# date +%F #显示年-月-日
[root@server1 ~]# date +%R #显示时:分
格式:ln -s /路径/源数据 /路径/快捷方式的名称 #软链接
[root@server1 ~]# ln -s /etc/sysconfig/network-scripts/ifcfg-lo /mylo
[root@server1 ~]# ls /
mylo
...
[root@server1 ~]# ls -l /mylo
lrwxrwxrwx. 1 root root 39 Feb 9 00:34 /mylo -> /etc/sysconfig/network-scripts/ifcfg-lo
软链接优势:可以针对目录与文件制作快捷方式,支持跨分区
软链接缺点:源数据消失,快捷方式失效
格式:ln /路径/源数据 /路径/快捷方式的名称 #硬链接
硬链接优势:源数据消失,快捷方式仍然有效
硬链接缺点:只能针对文件制作快捷方式,不支持支持跨分区
[root@server1 ~]# rm -rf /opt/*
[root@server1 ~]# echo 123 > /opt/A.txt
[root@server1 ~]# ln -s /opt/A.txt /opt/B.txt #软链接
[root@server1 ~]# ls /opt/
[root@server1 ~]# ln /opt/A.txt /opt/C.txt #硬链接
[root@server1 ~]# ls /opt/
[root@server1 ~]# cat /opt/B.txt
[root@server1 ~]# cat /opt/C.txt
[root@server1 ~]# rm -rf /opt/A.txt
[root@server1 ~]# ls /opt/
[root@server1 ~]# cat /opt/B.txt #软链接失效
cat: /opt/B.txt: 没有那个文件或目录
[root@server1 ~]# cat /opt/C.txt #硬链接仍然有效
zip归档工具,跨平台
- 归档+压缩操作: zip [-r] 备份文件.zip 被归档的文档…
-r: 被归档的数据有目录,必须加上此选项
[root@server1 ~]# zip -r /opt/abc.zip /etc/passwd /home
[root@server1 ~]# ls /opt/
abc.zip
[root@server1 ~]# mkdir /qaz
[root@server1 ~]# unzip /opt/abc.zip -d /qaz
[root@server1 ~]# ls /qaz
[root@server1 ~]# ls /qaz/etc/
[root@server1 ~]# ls /qaz/home/
[root@server1 ~]# unzip -l /root/zxzx.zip #列出包里面的内容