Linux 一切皆文件
1.文件系统类型
Linux 常用文件系统:ext2/ext3/ext4/xfs, 对应支持文件大小:2T/16T/32T/8E
Centos7 默认使用xfs作为默认文件系统,xfs大容量文件时性能较佳
swap: Linux中用于交换分区的文件系统;
tmpfs: 基于内存的虚拟文件系统;
proc: Linux 中基于内存的虚拟文件系统,用来管理内存存储目录 /proc
sysfs:和 proc —样,也是基于内存的虚拟文件系统,用来管理内存存储目录 /sysfs
windows 常用文件系统:FAT12/FAT16/FAT32/NTFS/NTFS5.0,对应支持文件大小:8M/2G/4G/64G/2TB
Mac 常用文件系统: HFS(macOS10.12以前), APFS(macOS10.13以后), FAT/ExFAT(windows兼容格式)
查看文件系统类型
df -Th
cat /etc/fstab
#查看指定分区
blkid /dev/sda1
#查看UUID
lsblk -f
查看分区的详细信息
#tune2fs和dumpe2fs只能打开ext3/ext4等文件类型
dumpe2fs -h /dev/sda1
#查看XFS的文件系统的命令:xfs_info | xfs_growfs
xfs_info /dev/sda1
2.文件组成
通常一个文件会存放在 不同的区块,权限与属性放置到索引(inode)块,实际数据放置到数据块(block)中, 磁盘格式化以后,会把磁盘分成以下三块:
- 超级区块
记录此文件系统的整体信息,包括inode与数据区块的总量、使用量、剩余量, 以及文件系统的格式与相关信息等 - inode块
记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在数据块号码, 一个inode一般是128或者256字节 - 数据区块
实际记录文件的内容,若文件太大时,占用多个区块, 一个区块正常4KB
查看文件inode信息
stat log.txt
利用ll 显示inode号
#显示/opt目录的inode号
ll -di /opt
#显示/opt目录下的所有目录文件的inode号
ll -i /opt
查看文件系统inode信息
df -ih
建立一个目录时,文件系统会分配一个inode与至少一个数据块给该目录,该数据块存储这个目录下的文件名与该文件名占用的inode号码数据
3.软硬链接
- 硬链接
硬链接是通过索引节点inode进行链接的,A是B的硬链接, 则A和B对应同一个inode号,A和B是完全平等,删除其中一个都不会有影响
touch f1
ln f1 f2 # 创建硬链接文件f2
- 软链接(符号链接)
软链接文件类似于windows的快捷方式,是个特殊文件
A是B的软链接, A和B不同的inode号, A的数据库块存放B的路径名,属于主从关系,B被删除了,A 仍然存在,但只指向一个无效链接
touch f1
ln -s f1 f3 # 创建软链接文件f2
硬连接不支持目录
4.磁盘分区
磁盘分区工具fdisk和gdisk, gdisk需要安装; 有MBR和GPT分区, MBR不支持4T以上
gdisk 可以对2T以上的磁盘进行分区,fdisk不行
fdisk 只能用于MBR分区,gdisk可以用于GPT分区
(1)安装gdisk
yum install gdisk -y
(2)gdisk命令分区(不分区可跳过)
gdisk /dev/vdc #根据提示操作
(3) mkfs.xfs 分区格式化
mkfs.vfs /dev/vdc #格式化xfs文件系统
#mkfs.ext4 /dev/vdc #格式化成ext4文件系统
(4) 挂载硬盘
mkdir /cache1
mount /dev/vdc /cache1
#取消挂载
#umount /dev/vdc
(5) 持续挂载
磁盘被手动挂载之后必须将挂载信息写入 /etc/fstab 文件中,否则下次开机还需要重新挂载
vim /etc/fstab
最后一行添加
/dev/vdc /cache1 xfs defaults 0 0
- df 列出文件系统整体磁盘使用量, -T 显示文件系统,-i 显示inode数量
df -h
df -aT
- du 检查磁盘空间使用量 -s 列出目录总量
#列出根目录下每个目录的占用磁盘总量
du -sm /*
5. 资源限制
linux 通过/etc/security/limits.conf 文件配置限制资源(永久生效), ulimit 是当前shell 会话有效
格式:
- domain 是指生效实体
用户名 也可以通过@group指定用户组 使用*表示默认值 - type指限制类型
soft 与 hard 软硬两种限制 - item限制资源
- core同ulimit -c 设定core文件的最大值,单位为区块
- data同ulimit -d 程序数据段的最大值,单位为KB
- fsize同ulimit -f 能建立的最大文件,单位为区块
- memloc同ulimit -l 设置在内存中锁定进程的最大值,单位KB
- nofile同ulimit -n 设置进程同时打开最大文件句柄数
- stack同ulimit -s 设置堆栈的最大值,单位KB
- cpu 同ulimit -t 设置CPU使用时间的最大上限.单位秒
- nproc同ulimit -u 设置用户的最大进程数
- maxlogins指定用户可以同时登陆的数量
- maxsyslogins系统可以同时登陆的用户数
- priority用户进程运行的优先级
- locks用户可以锁定的文件最大值
永久生效设置
vim /etc/security/limits.conf
#centos7 需要
vim /etc/security/limits.d/20-nproc.conf
#设置进程同时打开的最大句柄数
* soft nofile 4096
* hard nofile 4096
#设置用户的最大进程数
* soft nproc 4096
* hard nproc 4096
#设置webrunner用户可同时登录的数量是1
webrunner - maxlogins 1
ulimit 命令
查看资源限制
ulimit -a
设置资源(当前shell会话有效)
##设置进程同时打开的最大句柄数
ulimit -n 4096
##设置用户的最大进程数
ulimit -u 4096