ln命令
ln -s a(源文件) b(连接文件名) 创建软连接(快捷方式)
硬件连接:
1、只能对文件创建,不能应用于目录:
2、不能跨文件系统
3、创建硬连接会增加文件的被连接次数
软连接:
1、可应用于目录;
2、可以跨文件系统;
3、不会增加被连接文件的连接次数
4、其大小为指定的路径所包含的字符个数
du命令
-s
-h
df命令
-h 字节换算
-i Inodes
-T 磁盘分区
设备文件:
b:按块为单位,随机访问的设备
硬盘
c:按字节为单位,线性设备
键盘
/dev
主设备号(major number)
标识设备类型
次设备号(minor number)
标识同一种类型中不同设备
mknod命令:创建设备文件
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m MODE(权限)
mknod -m 644 mydev(设备类型)(主设备号) (次设备号)
硬盘设备的设备文件名:
IDE, ATA : hd
SATA : sd
SCSI: sd
USB : sd
a,b,c....来区别同一类型下的不同设备
IDE:
第一个IDE口:主(/dev/hda)、从(/dev/hdb)
第二个IDE口:主(/dev/hdc)、从(/dev/hdd)
sda ,sdb,sdc ,...
hda:
hda1:第一个主分区
hda2:
hda3:
hda4:
hda5:第一个逻辑分区
fdisk命令
fdisk -l 查看当前系统识别了几块硬盘
fdisk -l [/dev/to/some_device_file]
管理磁盘分区:
fdisk /dev/sda
p: 显示当前硬件分区,包括没保存的改动
n: 创建新分区
e:扩展分区
p:主分区
d: 删除一个分区
w: 保存退出
q: 不保存退出
t: 修改分区类型
L
l:显示所支持的所有类型
partprobe [/dev/sda]:重读分区表
partx
inode:index node
block size :1024 2048 4096
inode bitmap
block bitmap
super block 超级块
文件系统管理
重新创建文件系统会损坏原有文件
mkfs命令:
make file system
cat /proc/filesystems :查看当前内核所支持文件系统
-t FSTYPE
mkfs -t ext2 =mkfs.ext2
mkfs -t ext3 =mkfs.ext3
专门管理ext系统文件:
mke2fs命令
-j:创建ext3类型文件系统
-b BLOCK_SIZE:指定块大小,默认为4096:可用取值为1024、2048、4096
-L LABEL:指定分区卷标
-m #: 指定预留给着急用户的块数百分比
-i #:用于指定为多少字节的空间创建一个inode,默认为8192;这里给出的数值应该为块大小的2^n倍
-N #:指定inode个数
-F: 强制创建文件系统
-E:用于指定额外文件系统属性
blkid命令:
查看磁盘设备的相关属性
UUID
FYPE
LABEL
e2label命令:
用户查看定义卷标
e2label 设备文件 卷标:设定卷标
tune2fs命令:
调整文件系统的相关属性
-j:不损害原有数据,将ext2升级为ext3
-L LABEL:设定或修改卷标
-m #: 调整预留百分比
-r #:指定预留块数
-o : 设定默认挂载选项
acl
-c #:指定挂载次数达到#次之后进行自检,0或-1表示关闭此功能
-i #:每挂载使用多少天后进行自检:0或-1表示关闭此功能
-l: 显示超级块中的信息
dumpe2fs命令:
显示文件属性信息
-h:只显示超级块中的信息
fsck命令:
检查并修复Linux文件系统
-t FSTYPE:指定文件系统类型
-a:自动修复
e2fsck命令:
专用于修复ext2/ext3文件系统
-f:强制检查
-p:自动修复
mount命令:
显示当前系统已经挂载的设备及挂载点
挂载:将新的文件系统关联至当前根文件系统
mount [option] [-o options] DEVICE MOUNT_POINT
mount 设备 挂载点
-a:表示挂载/etc/fstab 文件中定义的所有文件系统
-n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;使用-n选项意味着挂载设备时,不把信息写入此文件
-t FSTYPE:指定正在挂载设备上的文件系统的类型;不使用此选项时,mount会调用blkid命令获取对应文件系统的类型
-r:只读挂载,挂载光盘时常用此选择
-w:读写挂载
-o:指定额外的挂载选择,也即指定文件系统启用的属性
remount :重新挂载当前文件系统
ro:挂载为只读
rw:读写挂载
mount - o remount,rw / 重新挂载根 为读写
设备:
设备文件
卷标:LABEL=""
UUID: UUID=""
挂载点:目录
要求:
1、此目录没有被其它进程使用
2、目录得事先存在
3、目录中的原有的文件将会暂时隐藏
挂载完成以后,要通过挂载点访问对应文件系统上的文件
mount命令,可以挂载iso文件
mount DEVICE MOUNT_POINT
-o loop:挂载本地回环设备
umount命令:
卸载:将某文件系统与当前根文件系统关联以移除
umount 设备
umount 挂载点
卸载注意事项:
挂载的设备没有被进程使用
swap分区:
free命令:
查看内存使用情况
-m:
fdisk命令中,调整分区类型为82。
创建交换分区:
mkswap /dev/sda8
-L LABEL
swapon /dev/sda8 启用交换分区
-a: 启用所有定义在/etc/fstab文件中的交换设备
swapoff /dev/sda8 关闭交换分区
回环设备
loopback,使用软件来模拟实现硬件
创建一个镜像文件,120G
dd命令:
if=数据来源
of=数据存储目标
bs=1024 (1024字节/单位)
count=2 (复制几个单位)
dd if=/dev/sda of=/mnt/usb/mbr.backup bs =512 count=1
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1
dd if=/dev/zero of=/var/swapfile bs=1M count=1024
seek=#: 创建数据文件时,跳过的空间大小
文件系统的配置文件/etc/fstab
os在初始时,会自动挂载此文件中定义的每个文件系统
要挂载的设备 挂载点 文件系统类型 挂载选项 转储频率(每多少天做一次完全备份) 文件系统检测次数(只有跟可以为1)
fuser命令:
验证进程正在使用的文件或套接字文件
-v:查看某文件上正在运行的进程
-k:
-m:
fuser -km MOUNT_POINT: 终止正在访问此挂载点的所有进程
压缩、解压缩命令
压缩格式:gz,bz2,xz,zip,z
压缩算法:算法不同,压缩比也会不同。
compress:FILENAME.z
uncompress
gzip: .gz
gzip /PATH/TO/SOMEFILE:压缩完成后会删除原文件
-d:解压缩
-#:1-9 ,指定压缩比,默认是6
gunzip:
gunzip /PATH/TO/SOMEFILE.gz :解压完成后会删除源文件
zcat /PATH/TO/SOMEFILE.gz 不解压的情况,查看文本文件的内容
bzip2: .bz2
比gzip有着更大压缩比的压缩工具,使用格式近似
bzip2 /PATH/TO/SOMEFILE
-d:解压
-# : 1-9,默认是6
-k:压缩后保留原文件
bunzip2 /PATH/TO/SOMEFILE 解压缩
bzcat /PATH/TOSOMEFILE.bz2 不解压,查看文本文件内容
xz: .xz
xz /PATH/TO/SOMEFILE
-d
-# :1-9 默认是6
-k: 压缩时保留源文件
unxz:
xzdec:
xzcat:
zip:既归档又压缩的工具
zip FILENAME.zip FILE1 FILE2 ... 压缩后不删除原文件
unzip FILENAME.zip
archive:归档,归档本身并不意味着压缩
tar:归档工具
-c:创建归档文件
-f FILE.tar:操作的归档文件
-x :展开归档
--xattes:归档时,保留文件的扩展性信息
-t:不展开归档,直接查看归档了哪些文件-zcf:归档并调用gzip压缩
-zxf:调用gzip解压缩并展开归档
-jcf:归档并调用bzip2压缩
-jxf:调用bzip2解压缩并展开归档
-Jcf:归档并调用xz压缩
-Jxf:调用xz解压缩并展开归档
cpio:归档工具
练习:写一个脚本
从键盘让用户输入几个文件,脚本能够将此几个文件归档后压缩成一个文件。
#!/bin/bash
read -p "Please Enter Three filename:" file1 file2 file3
tar -zcf `date +%Y%m%d%H%M%S`.tar.gz $file1 $file2 $file3
RAID:
级别:仅代表磁盘组织方式不同,没有上下之分
0:条带
性能提升:读、写
冗余能力(容错能力):无
空间利用率:ns
硬盘数:至少2块
1:镜像
性能表现:写性能下降,读性能提升
冗余能力:有
空间利用率:1/2
硬盘数:至少2块
2
3
4
5:
性能表现:读,写提升
冗余能力:有
空间利用率:(n-1)/n
硬盘数:至少3块
10:
性能表现:读、写提升
冗余能力:有
空间利用率1/2
硬盘数:至少需要4块
01:
性能表现:读、写提升
冗余能力:有
空间利用率1/2
硬盘数:至少需要4块
50:
性能表现:读、写提升
冗余能力:有
空间利用率:(n-2)/n
硬盘数:至少需要6块
jbod:将多个硬盘,连接为一个硬盘使用
性能表现:无提升
冗余能力:无
空间利用率:100%
逻辑RIAD:
/dev/md0
/dev/md1
cat /proc/mdstat查看阵列
内核模块md:
mdadm:将任何块设备做成RAID
模式化的命令:
创建模式
-C
专用选项:
-l:级别
-n:设备个数
-a{yes|no}:自动为其创建设备文件
-c:CHUNK大小,2^n,默认为64k-x #:指定空闲盘个数
管理模式
--add,--remove,--del
-a,-r,-d
mdadm /dev/md# --fail|-f /dev/sda7
监控模式
-F
增长模式
-G
装配模式
-A
查看RAID阵列的详细信息
mdadm -D /dev/md#
--detail
停止阵列
mdadm -S /dev/md#
--stop
将当前RAID信息保存至配置文件,以便以后进行装配:
mdadm -D --scan > /etc/mdadm.conf
练习:创建一个2G的raid0
1、fdisk /dev/sdb 创建两个1G的类型为fd的分区
2、partprobe /dev/sdb 内核重读分区(cat /proc/partitions 查看是否已经识别)
3、mdadm -C /dev/md0 -l 0 -n 2 -a yes /dev/sdb{1,2}(cat /proc/mdstat 查看raid阵列)
4、mke2fs -j /dev/md0 格式化阵列(mke2fs -j -E stride=16 -b 4096 /dev/md0)
5、mount /dev/md0 /test 挂载使用
DM: Device Mapper
逻辑设备
RAID, LVM2
DM:
快照
多路径
pv
pvcreate
pvcreate /dev/sdb1 /dev/sdb2
pvremove 删除pv
pvremove /sdb1
pvscan 扫描当前系统一共多少个pv
pvdisplay 查看pv详细信息
pvmove 把数据移出到其他盘
vg
vgcreate
vgcreate VG_NAME /PATH/TO/PV
-s # : PE大小,默认是4MB
vgremove 移出vg
vgextend 扩展pv到vg卷组
vgreduce 移出pv
vgreduce VG_NAME /dev/sdb1
vgs
vgdisplay
vgscan
lv
lvcreate
lvcreate -n LV_NAME -L #G VG_NAME
lvcreate -L 100M -n testlv myvg
lvremove
lvextend
lvreduce
lvs
lvdisplay
练习:创建一个由两个物理卷组成的大小为20G的卷组myvg ,要求PE大小为16M,而后在此卷组中创建一个大小为5G的逻辑卷1v1,此逻辑卷要能在开机后自动挂载至/users目录,且直接acl功能
一、扩展逻辑卷
lvextend 扩展物理边界
-L [+] # /PATH/TO/LV
lvextend -L 1G /dev/myvg/testlv
resize2fs 扩展逻辑边界(扩展以后df -lh才能看见)
resize2fs /PATH/TO/LV 5G
resize2fs -p /PATH/TO/LV (扩展到和物理边界一样)
resize2fs -p /dev/myvg/testlv
二、缩减逻辑卷
注意:1、不能在线缩减,得先卸载
2、确保缩减后的空间大小依然能存储原来的所有数据
3、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态
df -lh
umount
e2fsck -f
resize2fs
resize2fs /PATH/TO/LV 3G 缩减逻辑卷到3G
resize2fs /dev/myvg/testlv 300M
lvreduce -L /PATH/TO/LV 3G 缩减物理边界到3G
lvreduce -L 300M /dev/myvg/testlv
三、快照卷
1、生命周期为整个数据时长;在这段时间内,数据的增长量不嫩超出快照卷大小。
2、快照卷应该是只读的
3、跟原卷在同一卷组内
lvcreate
-s 创建快照卷
-p r|w
lvcreate -L # -n SLV_NAME-s -p r /PATH/TO/LV
练习:创建一个快照,并恢复快照数据
lvcreate -L 50M -n kuaizhao -s -p r /dev/myvg/testlv (创建50M快照卷)
mount /dev/myvg/kuaizhao /kuaizhao (挂载快照卷)
tar -jcf /tmp/kuaizhao.tar.bz2 ./* (切换到快照目录,归档到tmp目录)
umount /kuaizhao (卸载快照卷)
lvremove /dev/mgvg/kuaizhao (移出快照卷)
tar -jxf /tmp/kuaizhao.tar.bz2 -C /test/ (展开快照数据到原目录)