Liunx--总结

磁盘存储和文件系统
磁盘存储

机械硬盘:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成
固态硬盘:用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成

一、硬盘存储术语
head:磁头
track:磁道
cylinder:柱面--同一磁道称为柱
sector:扇区,512bytes

fdisk -l /dev/sd#--观察硬盘指标

CHS用24bit位寻址
其中前10位表示cylinder柱面,中间8位表示head,后面6位表示sector 扇区
早期用chs方式寻址最大寻址空间8GB 512 2^62^8*2^10

LBA(logical block addressing)
LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址
ATA-1规范中定义了28位寻址模式,以每扇区512位组来计算,ATA-1所定义的28位LBA上限达到128 GiB。2002年ATA-6规范采用48位LBA,同样以每扇区512位组计算容量上限可达128 Petabytes

二、磁盘两种分区方式:MBR,GPT

MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区结构
硬盘主引导记录MBR由4个部分组成(0磁道0扇区512byte)
1.主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序
出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节
2.分区表(DPT,Disk|Partition|Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4
3.结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA

GPT分区:GPT:GUID(Globals Unique Identifiers) partition|table(分区表)支持128个分区,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)

使用128位UUID(Universally Unique Identifier) 表示磁盘和分区,GPT分区表自动备份在头和尾两份,并有CRC校验位

hexdump -C -n 512 /dev/sd#--查看硬盘前512字节
dd if=/dev/sda of=/data/mbr bs=1 count=64--dd备份分区表(分区表放在它处)

。。。分区工具
parted命令的操作都是实时生效的,小心使用
用法:parted [选项]... [设备 [命令 [参数]...]...]
parted /dev/sdb mklabel gpt|msdos--打标记然后进行分区gpt|msdos
parted -l 查看partition Table:gpt列出分区信息
parted /dev/sdb print打印分区信息
parted /dev/sdb mkpart primary 1 200 (默认M)--分区连续分区不要跳着分
parted /dev/sdb rm 1 删除分区

fdisk mbr和gdisk gpt--命令格式基本相同不做赘述
fdisk /dev/sd# 交互式管理分区
p 分区列表
t 更改分区类型改id
n 创建新分区-p主(1-4)e扩展 默认1开始自设+2M\G\K
--分区需要注意连续分区,不要跳着分
d 删除分区 对应分区数字 分区数字易改变
v 校验分区
u 转换单位
w 保存并退出 出去立马执行才会更改
q 不保存并退出

。。分过区可能会出现内存中未加载新分区的信息
lsblk
ll /dev/sdb*
cat /proc/partitions--到这都是看内存中的硬盘信息
fdisk -l /dev/sd#--看到某硬盘的所有分区状态
partprobe同步硬盘信息 entOS 5,7
。。。。
centos6 partx -a /dev/DEVICE 创建时同步
partx -d --nr 6-7 /dev/DEVICE 删除时同步
文件系统

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统

查看系统支持的文件系统:/lib/modules/uname –r/kernel/fs
各种文件系统:
https://en.wikipedia.org/wiki/Comparison_of_file_systems

ext4:是ext文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
xfs:SGI,支持最大8EB的文件系统
btrfs(Oracle), reiserfs, jfs(AIX), swap
光盘:iso9660
Windows:FAT32, exFAT,NTFS
Unix: FFS(fast), UFS(unix), JFS2
网络文件系统:NFS, CIFS
集群文件系统:GFS2, OCFS2(oracle)
分布式文件系统: fastdfs,ceph, moosefs,mogilefs, glusterfs, Lustre
RAW:未经处理或者未经格式化产生的文件系统

lsblk -f 查看文件系统
一、创建文件系统命令 (下面命令两两一组,每组的选项基本通用)
mkfs命令
(1) mkfs.FS_TYPE /dev/DEVICE
ext4-xfs-btrfs-vfat
(2) mkfs -t FS_TYPE /dev/DEVICE
-L 'LABEL' 设定卷标
-f 强制对已经存在xfs重装
mkfs -b 设置快大小以快为单位
mke2fs:ext系列文件系统专用管理工具
-t {ext2|ext3|ext4} 指定文件系统类型
-b {1024|2048|4096} 指定块大小
-L ‘LABEL’ 设置卷标
-j 相当于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i#为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N # 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...] 启用指定特性
-O ^FEATURE 关闭指定特性

tune2fs 设定ext系列文本系统可调整参数的值
-l 查看指定文件系统超级块信息;super block
-L 'LABEL’ 修改卷标
-m # 修预留给管理员的空间百分比
-j 将ext2升级为ext3
-O 文件系统属性启用或禁用, –O ^has_journal
-o 调整文件系统的默认挂载选项,–o ^acl
-U UUID 修改UUID号
dumpe2fs:将磁盘块分组管理
-h:查看超级块信息,不显示分组信息

文件系统检测和修复:常发生于死机或者非正常关机之后
挂载为文件系统标记为“no clean”
注意:一定不要在挂载状态下修复
fsck: File System Check--fsck /dev/sdb3 -y(自动回答)修复数据任然丢失
fsck.FS_TYPE
fsck -t FS_TYPE
-p 自动修复错误
-r 交互式修复错误
FS_TYPE 一定要与分区上已经文件类型相同
e2fsck:ext系列文件专用的检测修复工具
-y 自动回答为yes
-f 强制修复
。。。
centos6 etx4 后续添加硬盘分区没有acl权限
fdisk n e +100M
mkfs.etx4 /dev/sda6
tune2fs -l /de/sda6
挂载 进入磁盘设置acl权限
tune2fs -o acl /dev/sdb6 添加acl权限
tune2fs -o ^acl /dev/sdb6 去

文件系统标签:指向设备的另一种方法-与设备无关
blkid [OPTION] [DEVICE]--块设备属性信息查看 -U UUID 根据指定的UUID来查找对应的设备
-L LABEL 根据指定的LABEL来查找对应的设备
e2label:管理ext系列文件系统的LABEL e2label DEVICE [LABEL]
findfs :查找分区
findfs [options] LABEL=

二、mount挂载

将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为
mount通过查看/etc/mtab文件显示当前已挂载的所有设备

mount[-fnrsvw][-t vfstype][-o options]device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在,建议使用空目录
进程正在使用中的设备无法被卸载
mount常用命令选项 --通过mount命令查看挂载设备
-t vsftype 指定要挂载的设备上的文件系统类型
-r readonly,只读挂载
-w read and write, 读写挂载
-n 不更新/etc/mtab,6mount不可见 cat /etc/mtab
cat /proc/mounts查看内核追踪到的已挂载的所有设备
centos6 /etc/mtab /proc/mounts
-a自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上(挂载目录)
-当两个文件inode一样时可能是目录挂载
-mount -B /boot/grub2 /mnt/grub2

卸载命令
findmnt MOUNT_POINT|device--查看文件是否以挂载 $?的值判断
查看正在访问指定文件系统的进程
lsof MOUNT_POINT--查看谁在访问
fuser -v MOUNT_POINT--查看谁在访问
终止所有在正访问指定的文件系统的进程
fuser -km MOUNT_POINT
卸载 umount DEVICE umount MOUNT_POINT

mount /dev/sda /mnt /sda--uuid或卷标都可挂 uuid挂载好有唯一性

文件系统空间占用等信息的查看工具
df [OPTION]... [FILE]...
-H 以10为单位 -T 文件系统类型 -h human-readable -i inodes instead of blocks
-P 以Posix兼容的格式输出
查看某目录总体空间占用状态
du [OPTION]... DIR -h human-readable -s summary 总和
--max-depth=# 指定最大目录层级
。。。
空洞文件或稀疏
dd if=/dev/zero of=/data/bigfile bs=1M count=1023 seek=2048
ls -h bigfile 3G --看到的逻辑大小
du -sh bigfile 1G --只占用1G df/data看到的都是实际大小
loop设备关联文件
ll /dev/loop c6查看loop设备默认0-78个
dd if=/dev/zero of=/data/bigfile bs=1M count=1023 seek=2048
mkfs.ext4 /data/bigfile
losetup /dev/loop6 /data/bigfile--设备关联
losetup -a
losetup -d
。。。。
mknod创建特殊文件基本什么都可以创建
mknod /dev/loop100 b 7 8 --创建loop设备
rm -rf loop100
/boot/grub/grub.conf 下面可以 max_loop=100 重启
ll /devloop

mount -o ptions:多个选项使用逗号分隔
async.异步模式sync.同步模式,内存更改时,同时写磁盘
atime/noatime包含目录和文件(存放时间超过一天才会更新或mtime>atime时间
diratime/nodiratime 目录的访问时间戳
auto/noauto 是否支持自动挂载,是否支持- a选项
exec/noexec 是否支持将文件系统上运行应用程序
dev/nodev 是否支持在此文件系统上使用设备文件
suid/nosuid 是否支持suid和sgid权限
remount 重新挂载
ro 只读 rw 读写
user/nouser 是否允许普通用户挂载此设备,/etc/ fstab使用
acl 启用此文件系统上的acl功能
loop 使用loop设备

文件挂载配置文件
/etc/fstab每行定义一个要挂载的文件系统
1、要挂载的设备或伪文件系统
设备文件 LABEL:LABEL="" UUID:UUID=""
伪文件系统名称:proc, sysfs
2、挂载点
3、文件系统类型:ext4,xfs,iso9660,nfs,none
4、挂载选项:defaults ,acl,bind -o 的选项
5、转储频率:0:不做备份 1:每天转储 2:每隔一天转储
6、fsck检查的文件系统的顺序:允许的数字是0 1 2
0:不自检
1:首先自检;一般只有rootfs才用
2:非rootfs使用
。。。
/dev/sdr6 /mnt/sda6 ext4 defaults 0 3
空洞文件用uuid在fstab写入挂载
/boot /mnt/boot none bind 0 0 文件挂文件配置

mount-a自动挂载所有支持自动挂载的设备且挂载选项中有auto功能

三、swap
交换分区是系统RAM的补充,Swap分区支持虚拟内存。当没有足够的RAM保存系统处理的数据时会将数据写入 swap 分区
当系统缺乏swap空间时,内核会因RAM内存耗尽而终止进程。配置过多swap空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存泄露

挂载交换分区--基本设置包括:•创建交换分区或者文件
•使用mkswap写入特殊签名•在/etc/fstab文件中添加适当的条目•使用swapon -a 激活交换空间
启用:swapon
swapon [OPTION]... [DEVICE]
-a:激活所有的交换分区
-p PRIORITY:指定优先级
/etc/fstab 在第4列中:pri=value
禁用:swapoff [OPTION]... [DEVICE]
SWAP的优先级
可以指定swap分区0到32767的优先级,值越大优先级越高
如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减一
先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)
优化性能:分布存放,高性能磁盘存放
。。。
分swap分区 free -h 看内存使用情况
fdisk /dev/sdc p m t L 19 改分区盘id w (gpt)
mkswap 创建swap文件系统=mkswap/dev/sdc1
写到fstab文件 free -h 没看到
swapon -a 开启swap free -h
cat /proc/swaps 查看swap分区具体有多少=swapon -s
swapoff /dev/sdc1禁用
补充

dd 命令:convert and copy a file
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size block size, 指定块大小(既是是ibs也是obs)
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs
conv=conversion[,conversion...]用指定的参数转换文件 转换参数:
dd if=/data/file of=fstab conv=ucase
ascii 转换 EBCDIC 为 ASCII
ebcdic 转换 ASCII 为 EBCDIC
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件
sync把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
fdatasync写完成前,物理写入输出文件,判断读写速度

备份MBR
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MBR中的bootloader
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB,想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,实现如下
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc

1、备份:
dd if=/dev/sdx of=/dev/sdy
将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/image
将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx | gzip >/path/to/image.gz
备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
恢复:
dd if=/path/to/image of=/dev/sdx
将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
将压缩的备份文件恢复到指定盘

2、拷贝内存资料到硬盘
dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件

3、从光盘拷贝iso镜像
dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件

4、销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行

5、得到最恰当的block size
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/dev/zero of=/root/1Gb.file bs=2048 count=500000
dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000
通过比较dd指令输出中命令的执行时间,即可确定系统最佳的block size大小

6、测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000 conv=fdatasync
测试硬盘读速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null conv=fdatasync
软件运行和编译

ABI:应用程序的二进制接口,与操作系统相关,如果一个二进制程序创建完成要在操作系统上面运行,就要符合操作系统的二进制标准,标注就为API

Windows与Linux不兼容

LSB为Linux的二进制标准

PE32为Windows二进制标准

虚拟化支持:

Linux:WINE(可以在上面跑Windows程序)

Windows:Cywin(可以在上面跑Linux程序)

API:应用程序开发接口,调用编译好的二进制文件要通过API接口调用

静态库:.a

动态库:.so

ldd "二进制文件" :用来查看这个二进制文件调用了哪些库

有很多库会被多个文件同时调用

包管理器

二进制应用程序的组成部分

  二进制文件、库文件、配置文件(小工具不具备配置文件)、帮助文件

软件包管理器:

  debian:deb文件,dpkg包管理器

  redhat:rpm文件,rpm包管理器

包命名和工具

包:分类和拆包

Application-VERSION-ARCH.rpm 主包

Application-devel-VERSION-ARCH.rpm 开发子包

Application-utils-VERSION-ARHC.rpm 其他子包

Application-libs-VERSION-ARHC.rpm 其他子包

包之间:可能存在依赖关系,甚至循环依赖

解决依赖包的管理工具:

yum:rpm包管理器的前段工具

apt-get:deb包管理器前段工具

zypper:suse上的rpm前段管理工具

ndf:Fedora 18+ rpm包管理器前端管理工具

管理和查看本机装载的库文件

ldconfig 加载库文件

     -v:查看目前所有正在加载的库文件

配置文件:/etc/ld.so.conf.d/

软件包管理器:

  功能:可用来安装、卸载、管理rpm后缀的文件

/var/lib/rpm数据库中存储了系统上安装好的一系列rpm包信息,很重要,此目录下的文件不能丢失

管理程序包的方式

  使用包管理器:rpm

  使用前段工具:yum

获取程序包途径:

(1)系统发版的光盘或官方服务器;

   Centos镜像:

   http://www.centos.org/download/

   http://mirrors.aliyun.com

   http://mirrors.sohu.com

   http://mirrors.163.com

   第三方组织

   Fedora-EPEL:光盘中没有的软件包会放在epel源中;

rpm包管理

安装、卸载、升级、查询、校验、数据库维护

安装:

rpm {-i|--install}[install-options]包文件

-v:显示安装的详细过程

-vv:更详细的安装过程

-h:安装的时候显示进度条

rpm -ivh 包名

[install-options]

--test:测试安装,不真实安装

--nodeps:忽略依赖关系

--replacepkgs 替换包(如果有一个包已经安装,使用这个选项则是重新安装,但同时也会覆盖修改过的配置文件,如果不想覆盖,则使用rpm2cpio "包名" | cpio -id 不想被覆盖的文件路径位置;则可以实现单独恢复某一个文件,但是复制过去属性不一定一致,所以使用这种方法要注意)

--replacefiles 两个rpm包中有个别文件冲突的时候,要覆盖的话则使用此选项

rpm包升级

rpm [-U|--upgrade] [install-options] 包名(如果有就版本升级,不存在旧版本则安装,可以当升级也可以当安装)

rpm [-F|--freshen] [install-options] 包名(只能当升级,如果没有旧版本就不安装了)

--oldpackage:降级使用,就是如果安装的一个包比已经安装的包的版本低,还需要它们同时存在的话,就需要使用这个选项,即使这样安装了,原先老的那个包还是存在

--force:强制安装

如果安装了软件并且修改了软件内的一些文件,再卸载之后,配置文件会自动保存备份下来

rpm包查询

rpm {-q|--query} [select-options] [query-options]

rpm2cpio 包名 | cpio -tv (查看包里面包括哪些文件)

rpm -qlp rpm文件(表示一个包还没装)

[select-options]:

-q:查询某个包是否安装(一般要执行的操作全都要附上这个选项)

-a:查询所有安装的包

-f:用来查询文件是来自于哪一个包

-p:针对未安装的程序包文件做查询操作

--whatprovides 包提供的功能:查询哪一个包拥有某一个功能

--whatrequires 哪个包依赖的功能:查询哪一个包依赖这个功能

-e:卸载某个包

[query-options]:

--changelog:查询rpm包的更改日志

-c:查询程序的配置文件

-d:查询程序的文档

-i:查询包的信息

-l:查询某个包安装完成后生成的配置文件列表

--scripts:查询某个包中是否带有特定脚本

-R:查询指定包依赖于什么功能

--provides:与--whatprovides一样的功能

包卸载:

rpm -e [--allmatches][--nodeps][--noscripts][--notriggers][--test] 包名

包校验:

检查包来源的合法性以及完整性

完整性严重:SHA256

来源合法性认证:RSA

公钥加密:

对称加密:加密、解密使用同一密钥

非对称加密:密钥是成对儿的

public key: 公钥,公开所有人

secret key: 私钥, 不能公开

导入所需要公钥

rpm -K rpmfile 检查包的完整性和(签名:包的一系列信息)

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

CentOS 7发行版光盘提供的公钥:RPM-GPG-KEY-CentOS-7

rpm -qa "gpg-pubkey*"(查询公钥的位置)

Yum工具

注意:baseurl写的yum仓库的位置一定是repodata的上级目录

 本机配置yum,baseurl就要写file://开头的后面跟文件位置

 yum第一次执行会将yum仓库中的包元数据以及包组信息缓存到本地

 当要使用新的yum仓库的时候要清除缓存

yum:用于解决包之间的依赖性关系

yum的配置文件位置在/etc/yum.conf里

$basearch:基础平台;i386, x86_64

$releasever:当前OS的发行版的主版本号

rpm包的元数据存放在repodata中

yum仓库的设置

要在/etc/yum.repos.d下面创建一个后缀为.repo文件,当中写入配置文件信息

小技巧:当开机添加物理硬件系统不识别的时候,则可以使用"echo '- - -' > /sys/class/scsi_host/host2/scan"命令

本地源的配置格式如下:

base

name="随机的名字"

baseurl=file:///misc/cd(写yum仓库的存放位置)

gpgcheck=0(不检查包的完整性以及可用性,不写的话默认是开启的)

enabled={0|1}(1是启用这个yum仓库,0则是暂时不启用)

如果要开启检查包完整性可用性,则要在.repo文件中写gpgkey=file:///"RPM-GPG-KEY-CentOS-7存在的位置"

一个文件中也可以配置多个yum仓库位置,当光盘中存在的包不够充足的时候则需要配置epel源,yum也会自动去epel源的位置寻找

网络yum源:

阿里云:

https://mirrors.aliyun.com/centos/$releasever/os/x86_64/

EPEL的yum源:

阿里云:

https://mirrors.aliyun.com/epel/$releasever/x86_64

当只有rpm包时将其制作成yum源的步骤

createrepo "位置" 就可以制作出一个yum源

yum命令的用法:

yum [options] [command] [package ...]

显示仓库列表:

yum repolist [all|enabled|disabled]

显示程序包:

yum list

yum list [all | glob_exp1(通配符)] [glob_exp2] [...]

yum list {available|installed|updates} [glob_exp1]

安装程序包:

yum install package1 [package2] [...]

yum reinstall package1 [package2] [...] (重新安装)

[options]

-q:静默安装

-y:不做交互式处理自动安装

yum-config-manager --add-repo="yum仓库位置"(直接创建一个.repo的文件,但是gpgcheck=0需要手动添加)

yum-config-manager --disable "仓库名" 禁用仓库

yum-config-manager --enable "仓库名" 启用仓库

yum命令:

检查可用升级:

yum check-update

升级程序包:

yum update 包名

yum downgrade 包名 (降级)

卸载程序包:

yum remove 包名

查看程序包信息:

yum info 包名

清理本地缓存:

清除/var/cache/yum/$basearch/$releasever缓存

yum clean [ packages | metadata | expire-cache |

rpmdb | plugins | all ]

构建缓存:

yum makecache

搜索:

yum search "关键字"

查看指定包所依赖的能力:

yum deplist 包名

查看yum操作历史:

yum history [info|list|packages-list|packages-info|

summary|addon-info|redo(重新做一遍某一步)|undo(取消某一步的操作)|rollback|new|sync|stats]

yum history

例子:yum history info 6:查看第6部的历史操作

例子:yum history undo 6:取消第6部的历史操作

安装及升级本地程序包:

yum install 包名(使用yum安装rpm包,可以自动解决依赖性问题)

yum update 包名

包组管理的相关命令:

yum groupinstall 包组名(安装某个包组)

yum groupupdate 包组名(升级某个包组)

yum grouplist 包组名(查看包组信息)

yum groupremove 包组名(卸载某个包组)

yum groupinfo 包组(查看包租中包括的包)

yum常见选项:

yum install remove list -y repolist (clean all清除缓存) history