Linux 文件系统

常见的包括ext3、ext4、btrfs、xfs等等,当然还可以通过加载模块的方式来支持更多的文件系统。 image.png

mkfs. 查看系统支持文件类型

df -hT -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; -T :显示文件系统类型,

du 对文件和目录磁盘使用的空间的查看。

fdisk 磁盘管理

查看磁盘信息 - fdisk

image.png ls /dev/sd* image.png lsblk image.png blkid image.png

1. 创建分区

[root@master ~]# fdisk /dev/sd*

image.png

image.png

image.png

2. 查看分区文件是否存在

image.png 内核记录分区表的文件 image.png

3. 创建文件系统 make file system (格式化)

命令: mkfs. (Tab两下) image.png [root@master ~]# mkfs.xfs /dev/sdb1 命令后接分区 image.png

4. 挂载使用

创建挂载点 [root@master ~]# mkdir /mnt/sdb1 image.png 将分区挂载到本地目录 [root@master ~]# mount /dev/sdb1 /mnt/sdb1 image.png [root@master ~]# df -h image.png

开机自挂载 [root@centos7 ~]#vim /etc/fstab /dev/sdb1 /opt/sdb1 xfs defaults 0 0 image.png 重启:reboot

卸载:umount /opt/sdb1

挂载:mount -a

查看自动挂载成功 image.png

磁盘热加载:

添加一块新的磁盘,无需重启系统生效

alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'

scandisk

主分区,扩展分区,逻辑分区的联系和区别

image.png

image.png

parted 分区管理

alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'

image.png

image.png

查看:ls /dev/sd* image.png

创建分区

image.png

image.png

image.png

image.png

image.png

image.png

热加载 image.png

1.常见的文件系统目录功能

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
 	b: block device,随机访问
 	c: character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
 bin: 保证系统拥有完整功能而提供的应用程序
 sbin:
 lib:32位使用
 lib64:只存在64位系统
 include: C程序的头文件(header files)
 share:结构化独立的数据,例如doc, man等
       local:第三方应用程序的安装位置
   			bin, sbin, lib, lib64, etc, share
/var: variable data files
 	cache: 应用程序缓存数据目录
	lib: 应用程序状态信息数据
    local:专用于为/usr/local下的应用程序存储可变数据
 	lock: 锁文件
 	log: 日志目录及文件
 	opt: 专用于为/opt下的应用程序存储可变数据
 	run: 运行中的进程相关数据,通常用于存储进程pid文件
 	spool: 应用程序数据池
 	tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

2.应用程序的组成部分

二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

3.CentOS 7 以后版本目录结构变化

- /bin 和 /usr/bin 
- /sbin 和 /usr/sbin 
- /lib 和/usr/lib 
- /lib64 和 /usr/lib64 

4.Linux 文件类型

- 普通文件
- d 目录文件directory
- l  符号链接文件link
- b 块设备block 
- c 字符设备character
- p 管道文件pipe
- s 套接字文件socket

5.查看文件状态 - stat

文件相关信息:metadata, data

每个文件有三个时间戳:

- access time 访问时间,atime,读取文件内容
- modify time 修改时间,mtime,改变文件内容(数据)
- change time 改变时间,ctime,元数据发生改变

6.通配符 - wildcard pattern

  • 常见的
*   匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件
?   匹配任何单个字符,一个汉字也算一个字符
~   当前用户家目录
~test   用户test家目录
. 和 ~+ 当前工作目录
~-      前一个工作目录
[0-9]   匹配数字范围
[a-z]   一个字母
[A-Z]   一个字母
[test]   匹配列表中的任何的一个字符
[^test]  匹配列表中的所有字符以外的字符
[^a-z]   匹配列表中的所有字符以外的字符
  • 预定义的字符类:man 7 glob
[:digit:]: 任意数字,相当于0-9
[:lower:]: 任意小写字母,表示 a-z     
[:upper:]:  任意大写字母,表示 A-Z 
[:alpha:]:  任意大小写字母
[:alnum:]: 任意数字或字母
[:blank:]: 水平空白字符
[:space:]: 水平或垂直空白字符
[:punct:]: 标点符号
[:print:]: 可打印字符
[:cntrl:]: 控制(非打印)字符
[:graph:]: 图形字符
[:xdigit:]:十六进制字符