|
磁盘及文件系统管理 文件系统访问控制列表 setfacl ? -b Remove all ? -m ? -k 块位图:bitmap 硬链接:多个文件的路径指向同一个inode号 软链接|符号链接: 该文件被硬链接的次数drwxr-xr-x. 4 root root88 9月 3 13:43 airflow 创建链接 ln [-s -v] SRC DEST ls -i显示文件的inode号 硬链接(不带任何选项): ? 1.只能对文件创建,不能应用于目录; ? 2.不能跨文件系统; ? 3.创建硬链接会增加文件被硬链接的次数; 符号链接(-s): ? 1.可应用于目录 ? 2.可以跨文件系统 ? 3.不会增加被链接文件的链接次数 ? 4.其大小为指定的路径所包含的字符个数 df: ? 评估一个分区磁盘块和inode的使用情况。 设备文件: ? b:按块为单位,随机访问的设备 ? c:按字符为单位,线性设备 ? b:硬盘 ? c:键盘 /dev/ ? 主设备号(major number) ? 标识设备类型 ? 次设备号(minor number) ? 标识同一种类型下不同设备 主设备号和次设备号存在inode中,链接存的路径 创建设备文件: mknod mknod [options] name {bc} major minor ? -m MODE 指定权限 mknod mydev c 23 0 在当前目录下指定一个字符设备mydev,主设备号23,次设备号0 ls -l查看 crw-r--r--. 1 root root23, 0 10月 23 08:32 mydev[root@localhost ~]# mknod -m 640 mydev2 c 23 1crw-r-----. 1 root root23, 1 10月 23 08:34 mydev2 发往设备文件的内容指向对应设备: shell1:[root@localhost ~]# tty/dev/pts/0[root@localhost ~]# echo "hello" >> /dev/pts/1shell2:[root@localhost ~]# tty/dev/pts/1[root@localhost ~]# hello 硬盘设备的设备文件名: IDE.ATA:/dev/hd SATA:sd SCSI:sd USB:sd ? a,b,c…来区别同一种类型下的不同设备 IDE: ? 第一个IDE口:主、从 ? /dev/hda,/dev/hdb ? 第二个IDE口:主、从 ? /dev/hdc,/dev/hdd hda: ? hda1:第一个主分区 ? hda2…hda4:要么是扩展分区,要么是主分区 ? hda5…第一个逻辑分区 查看当前系统识别了几块硬盘 fdisk -l [root@localhost ~]# fdisk -l磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘标签类型:dos磁盘标识符:0x000d6891设备 BootStartEndBlocks Id System/dev/sda1 *204820991991048576 83 Linux/dev/sda22099200 41943039 19921920 8e Linux LVM 管理磁盘分区 fdisk /dev/sda ? p:显示当前硬件的分区,包括没保存的改动 ? n:创建新分区 ? e:扩展分区 ? p:主分区 ? d:删除一个分区 ? w:保存并退出 ? q:不保存退出 ? t:修改分区类型 ? L: ? l:显示所支持的分区类型 Linux 支持的文件系统: 文件系统是内核中的基本功能,管理文件系统的软件在用户进程。 格式化:低级格式化创建磁道 ? 高级格式化:mkfs -t ext3 创建文件系统 VFS:Virtual File System 虚拟文件系统 FAT32->vfat 光盘:ISO9660 网络文件系统:CIFS Linux:ext2,ext3,ext4,xfs,reiserfs,jfs(日志文件系统),nfs,ocfs2,gfs2,swap VFS也是内核中,每一个分区使用不同的文件系统。但都要归并在根下,即挂载或关联的方式。 只有根才可以自引用。 partprode 所有进程运行在用户模式的用户空间中。 ext3,ext4,ext2:extended 磁盘分割在创建时就已经预留起来了。 block size:1024(1k),2048,4096 bitmap:加快数据查找的数据结构 ? inode bitmap ? block bitmap super block:超级块,保存磁盘块中的块组,以及块组里有多少东西 块组描述符表 每一个块组都有自己的inode和bitmap MBR不属于任何一个分区,Boot Block每一个分区第一个块,装Boot Loader. 而Boot Loader属于一个程序,放在MBR中。 Block Group 0块组0 每个组里面有一个超级块:Super Block,有备份,也可以手动恢复 GDT:Group Description Table 块组描述表:当前分区上每一个块组名,块组起始以及结束号。 逐级引用磁盘块 一个磁盘块指向一个文件,但是可以有多个路径,这些路径叫做硬链接。 ext3 ? journal file system ? 日志文件系统 数据区,元数据区,日志区 数据存完后,把文件从日志区挪到元数据区,要多用一次io操作。 ext3:加快文件系统修复速度。 读分区表: cat /proc/partitons partprobe [/dev/sda]->partx 文件系统管理 重新创建文件系统会损坏原有文件。 我创建了一个新的分区,大概有1个G 可以看到我刚才创建的扩展分区。 创建某一个分区上的文件系统: mkfs:make file system ? -t FSTYPE 指定要创建的分区 mkfs -t ext2 = mkfs.ext2 mkfs -t ext3 = mkfs.ext3 cat /proc/filesystems:查看当前内核所支持的文件系统类型 文件系统类型: ? ext2 ? ext3 专门管理ext系列文件: mke2fs ? -j:创建ext3类型文件系统 ? -b BLOCK_SIZE:指定块大小,默认为4096,可用取值为1024、2048或4096 ? -L LABEL:指定分区卷标(Filesystem label) ? -m #:指定预留给超级用户的块数百分比 ? -i #:用于指定为多少字节的空间创建一个inode,默认为8192,这里给出的数值应该为块大小的2^n. ? -N #:指定inode个数 ? -F :强制创建文件系统 ? -E : 用于指定额外文件系统属性 blkid :查询或查看磁盘设备的相关属性 ? UUID:全局统一的标识符 ? TYPE ? LABEL 卷标 e2label:用于查看或定义卷标 ? e2label 设备文件 卷标: 设定卷标 tune2fs:调整文件系统的相关属性 ? -j:不损害原有数据,将ext2升级为ext3 ? -L LABEL:设定或修改卷标 ? -m #:调整预留百分比; ? -r #:指定预留块数 ? -o:设定默认挂载选项 ? facl ? -c #:指定挂载次数达到#次之后进行自检,0/-1表示关闭功能。 ? -i #:每挂载使用多少天后进行自检,0/-1表示关闭此功能 ? -l:显示超级块中的信息 dumpe2fs:显示文件属性信息 ? -h:只显示超级块中的信息 fsck:检查并修复Linux文件系统 ? -t FSTYPE:指定文件系统类型 ? -a:自动修复 e2fsck:专用于修复ext2/ext3文件系统 ? -f:强制检查 ? -p:自动修复 挂载:将新的文件系统关联至当前根文件系统 卸载:将某文件系统从当前根文件系统的关联关系予以移除 mount:挂载 mount 设备 挂载点 ? 设备: ? 设备文件 /dev/sda5 ? 卷标:LABEL=“ ” ? UUID: UUID=" " ? 挂载点:目录 ? 要求: ? 1.此目录没有被其他进程使用 ? 2.目录得事先存在 ? 3.目录中得原有得文件将会暂时隐藏 挂载完成后,要通过挂载点访问对应文件系统上的文件 media 挂载移动设备 mount /dev/sda5 /mnt/test/ umount:卸载某文件系统 ? umount 设备 ? umount 挂载点 ? 卸载注意事项: ? 挂载的设备没有进程使用 mount 显示当前系统上已挂载设备 mount \[options] \[-o options] DEVICE MOUNT_POINT-a:表示挂载/etc/fstab文件中定义的所有文件系统?-n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件,使用-n选项意味着挂载设备时,不把信息写入此文件。?-t:FSTYPE:指定正在挂载设备上的文件系统类型,不使用此选项,mount 会调用blkid命令获取对应文件系统的类型。?-r:只读挂载,挂载光盘时常用此选项?-w:读写挂载?-o:指定额外的挂载选项,也即指定文件系统启用的属性?remount : 重新挂载当前文件系统?ro:挂载为只读?rw:读写挂载 异步:数据先在内存中编辑,然后再写入硬盘中。 suid是一种不安全的做法 重新挂载时不用指定挂载点Linux 磁盘管理,重新挂载在原来的位置 [root@localhost ~]# mount -t auto /dev/cdrom /mnt/cdrommount: 挂载点 /mnt/cdrom 不存在[root@localhost ~]# mkdir /mnt/cdrom[root@localhost ~]# mount -t auto /dev/cdrom /mnt/cdrommount: /dev/sr0 写保护,将以只读方式挂载[root@localhost ~]# unmount /mnt/cdrombash: unmount: 未找到命令...[root@localhost ~]# umount /mnt/cdrom[root@localhost ~]# mount -t auto /dev/cdrom /mnt/cdrommount: /dev/sr0 写保护,将以只读方式挂载[root@localhost ~]# ls /mnt/cdromCentOS_BuildTag EFI EULA GPL images isolinux LiveOS Packages repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL swap分区 free 查看当前系统上物理内存和交换空间的使用情况 ? -m fdisk命令中,调整分区类型为82 创建交换分区: mkswap /dev/sda8 ? -L LABEL swapon /dev/sda8 启用交换分区 swapoff /dev/sda8 关闭交换分区 回环设备 loopback,使用软件来模拟实现硬件 创建一个镜像文件,120G dd命令: ? if=数据来源 ? of=数据存储目标 ? bs=1 ? count=2 ? seek=# : 创建数据文件时,跳过的空间大小 创建一个大小为1024(1G)的镜像文件,里面填满了0 dd if=/dev/zero of=/var/swapfile bs=1M count=1024 cp以文件为单位,dd复制的是底层数据流 x86:(32bit)虚拟地址、线性地址 虚拟内存: timesharing\multiplex CPU:time slice Memory I/O设备:多路复用 过载:overcommit内存过载使用 mount命令,可以挂载iso镜像 mount DEVICE MOUNT_POINT ? -o loop:挂载本地回环设备 wget ftp://172.16.0.1/pub/isos/rhci-5.8-1.iso swapon -a启用所有的定义在/etc/fstab文件中的交换设备 mount /dev/sda5 /mnt/test 文件系统的配置文件/etc/fstab ? os在初始时,会自动挂载此文件中定义的每个文件系统。 要挂载的设备 挂载点 文件系统类型 挂载选项 转储频率 文件系统检测次序 /dev/mapper/cl-root/xfsdefaults0 0 转储频率表示每隔多少天对文件系统做一次完全备份,控制系统自动备份的机制。 文件系统检测次序,只有根可以为1 mount -a:挂载/etc/fstab文件中定义的所有文件系统 /etc/mtab:挂载的信息不想写在mtab.那么使用mount -n fuser:验证进程正在使用的文件或套接字文件 ? -v:查看某文件上正在运行的进程 fuser -km /mnt/test 终止正在访问此挂载点的所有进程。 压缩、解压缩命令 压缩格式: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:不解压的情况,查看文本文件内容 比gzip有着更大压缩比的压缩工具,使用格式近似 bzip2: .bz2 bzip2 /PATH/TO/SOMEFILE -d-#:1-9,默认是6-k:压缩时保留原文件bunzip2 /PATH/TO/SOMEFILE.bz2bzcat xz: .xz xz /PATH/TO/SOMEFILE-d-#:1-9,默认是6-k:压缩时保留原文件unxzxzdecxzcat xz,bz2,gz zip: zip FILENAME.zip FILE1 FILE2 ...:压缩后不删除原文件unzip FILENAME.zip archive:归档,归档本身并不意味着压缩 tar:归档工具 -c:创建归档文件-f FILE.tar:操作的归档文件-x:展开归档文件--xattrs:归档时,保留文件的扩展属性信息-t:不展开归档,直接查看归档了哪些文件-zcf:归档并调用gzip压缩-zxf:调用gzip解压缩并展开归档-jcf、-jxf:bzip2-Jcf、-Jxf:xz归档所有以test开头的文件tar -cf test.tar test*.txt展开归档文件tar -xf test.tar cpio:归档工具 练习:写一个脚本 从键盘让用户输入几个文件,脚本能够将此几个文件归档压缩成一个文件。 read: #!/bin/bashecho -n "Input two integers:"read A B echo "$A plus $B is: $[$A+$B]"[root@localhost ~]# cd jiaoben[root@localhost jiaoben]# 。/plus。shInput two integers:3 53 plus 5 is: 8#myar。sh#!/bin/bashread -p "Three files: " FILE1 FILE2 FILE3read -p "Destination: " DESTtar -jcf ${DEST}。tar。bz2 $FILE1 $FILE2 $FILE3#shell[root@localhost jiaoben]# 。/myar。shThree files: test/test1。txt test/test2。txt test/test3。txtDestination: test/myartest[root@localhost jiaoben]# ls test -ln总用量 4-rw-r--r--。 1 0 0 140 10月 25 16:20 myartest。 tar。bz2-rw-r--r--。 1 0 0 0 10月 25 16:18 test1。txt-rw-r--r--。 1 0 0 0 10月 25 16:18 test2。txt-rw-r--r--。 1 0 0 0 10月 25 16:18 test3。txt[root@localhost jiaoben]# ls test -lh总用量 4。0K-rw-r--r--。 1 root root 140 10月 25 16:20 myartest。tar。bz2-rw-r--r--。 1 root root 0 10月 25 16:18 test1。txt-rw-r--r--。 1 root root 0 10月 25 16:18 test2。txt-rw-r--r--。 1 root root 0 10月 25 16:18 test3。txt[root@localhost jiaoben]# tar -tf myartest。tar。bz2tar: myartest。tar。bz2:无法 open: 没有那个文件或目录tar: Error is not recoverable: exiting now[root@localhost jiaoben]# tar -tf test/myartest。tar。bz2test/test1。txttest/test2。txttest/test3。txt 指定压缩格式版本的脚本myar.sh: #!/bin/bashread -p "Three files: " FILE1 FILE2 FILE3read -p "Destination: " DESTread -p "Compress[gzip|bzip2|xz]:" COMPcase $COMP ingzip)tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3 ;;bzip2)tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3 ;;xz)tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3xz ${DEST}.tar ;;*)echo "Unknoen."exit 9 ;; (编辑:拼字网 - 核心网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|