文件系统时操作系统中与管理文件有关的所有软甲和数据的集合
目前,Windows通常采用FAT32或NTFS文件系统,而Linux中保存数据的磁盘分区通常采用ext2或ext3文件系统,而实现虚拟内存的swap分区一定采用swap文件系统
ext3文件系统系列时专为LInux设置的文件系统,它继承了UNIX文件系统的主要特色,采用三级索引结构和目录树型结构,并将设备作为特别文件处理
Linux支持的系统文件
- Linux采用虚拟文件技术,可支持多种常见的文件系统,并允许用户在不同的分区上安装不同的文件系统
- Linux支持的不同文件类型主要有:
- msdos:MS-DOS采用的FAT文件系统
- vfat:Windows中常用的文件系统
- sysV:UNIX中最常用的system文件系统
- nfs:网络文件系统(Network File System)
- ios9660:CD-ROM的标准文件系统
文件系统的挂载和卸载
- Linux中,无论是软盘还是硬盘,都必须经过挂载才能进行文件存储操作
- 挂载,就是将存储介质的内容映射到指定目录中,此目录即为该设备的挂载点
- 对存储设备的访问就变成了对挂载点的访问
- 一个挂载点只能挂载一个设备
- 通常情况下,硬盘上的LInux分区以及swap等都已经在Linux启动时自动挂载了。但软盘等移动存储介质既可以在启动时自动挂载,也可以后来手动挂载
- 注意:移动存储介质使用完后,必须卸载之后才能取出,否则会造成一些不必要的错误
- 移动存储介质是否在启动时自动挂载,取决于/etc/fstab文件的内容(fsck、mount、umount的等命令都利用这个文件)
- /etc/fstab文件中每一行表示一个文件系统,由六个字段组成,用空格分隔,各个字段含义如下
- 设备逻辑名
- “LABET=磁盘分区名”格式表示硬盘上的磁盘分区
- 根分区一定挂载到根目录
- None表示与设备无关的文件系统,由系统负责控制管理
- /dev/cdrom表示光盘
- /dev/fd0表示软盘
- “LABET=磁盘分区名”格式表示硬盘上的磁盘分区
- 挂载点
- 指定挂载位置
- swap分区不需要指定挂载点
- 文件系统类型
- 如果设置为auto,则表示按照文件系统本身的类型进行挂载
- 命令选项
- 每个文件系统都可以设置多个选项,之间用逗号分隔
- 常见选项:
- defaults:启动时自动挂载,并且可读可写
- noauto:启动时不自动挂载,用户需要时手动挂载
- auto:启动时自动挂载
- ro:只可读不可写
- rw:可读且可写
- usrquota:实施用户配额管理
- grpquota:实施群组配合管理
- 检查标记
- 只有两个取值:0或1
- 0表示该文件系统不进行文件系统检查
- 1表示该系统文件需要进行文件系统检查
- 通常只有ext2及ext3类型的文件系统才需要进行文件系统检查
- 检查顺序标记
- 有三个取值:0、1或2
- 检查标记为0时,检查顺序标记也一定为0
- 0表示不进行检查
- 1表示最先进行检查
- 2表示后进行检查
- 通常根分区最先进行检查
- 设备逻辑名
磁盘管理
- Shell命令
- mount:挂载
- mount -a:该命令将文件/etc/fstab中提到的所有文件系统,凡是没有使用noauto选项的,一律按照指定的方式自动挂载。该命令一般在系统的启动脚本中执行
- mount [挂载点] 或 mount [挂载设备名称]:当挂载fstab中提到的文件系统时,可以只指定挂载设备或者只指定挂载点即可完成挂载
- umount:卸载
- 格式:umount [设备名] 或 umount [目录名]
- df:显示文件系统的相关信息
- 格式:df [选项]
- 选项:
- -a:查看全部信息
- -t [文件系统类型]:显示指定类型的文件系统
- -h:即以易读的方式显示
- mkfs:磁盘格式化
- 格式:mkfs [选项] [设备名]
- 选项:
- -t [文件系统类型]:默认ext2文件
- -c:建立之前首先检查
- fsck:检查并修复文件系统
- 格式:fsck [设备名]
- mount:挂载
设置文件系统配额
文件系统配额是一种磁盘空间管理机制。使用文件系统配额可显示用户或群组在某个特定文件系统中所能使用的最大空间。它能保证所有用户都拥有自己独立的文件系统空间,从而确保用户使用系统的公平性和安全性
- 配额分为:硬配额和软配额
- 硬配额:用户和群组可使用的最大值,用户使用的空间超过硬配额时,系统会发出警告
- 软配额:定义用户和群组的可使用空间,与硬配额不同的是,系统允许软配额在一定时间内被超过,这段时间被称为“过渡期”,默认为七天
- 通常硬配额大于软配额
- 设置系统配额
- 超级用户编辑/etc/fstab,指定实施配额管理的文件系统
- 指定quotacheck命令,检查并创建配额管理文件
- 格式:quotacheck [选项]
- 选项:
- -a:检查分区
- -g:检查分区,并创建aquota.group文件
- -u:检查分区,并创建aquota.user文件
- -v:显示命令执行过程
- 执行edquota命令,编辑配额管理文件
- 格式:edquota [选项]
- 选项:
- -u [用户名]:设置指定用户的配额
- -g [群组名]:设置指定群组的配额
- -t:设置过渡期
- -p [用户1] [用户2]:将用户1的配额设置复制给用户2
- 执行quotaon命令,启动配额管理
- 格式:quotaon [选项]
- 选项:
- -a:开启在/etc/fstab文件里,有加入quota设置的分区的空间限制
- -g:开启群组的磁盘空间限制
- -u:开启用户磁盘空间限制
- -v:显示指令执行过程
- 执行quota命令,查看用户的配额管理
- 格式:quota [用户名]
文件
文件系统时操作系统在硬盘或者分区上保存文件信息的方法或数据结构,也就是文件在硬盘或分区上的组织方式
-
标准文件布局
- 文件系统采用分层的树形目录结构
- 树中的“根”与“杈”代表目录或文件夹
- 叶子为一个个文件
-
常用的目录
- /:根目录
-
/bin:存放普通用户可以使用的命令文件。目录/usr/bin也用来存储用户命令
- /boot:包含内核和系统启动时使用的其他文件
-
/dev:设备文件所在目录。在Linux中,设备以文件形式表现
- /home:用户主目录的位置,存放了用户文件(用户自己的配置文件,文件,数据等)
-
/lib:包含了许多供/bin和/sbin中的程序使用的共享库文件。目录/usr/lib中包含了更多用于用户程序的库文件
- /mnt:文件系统挂载点。一般用于安装移动介质、其他文件系统(如DOS)的分区、网络共享文件系统或任何可安装的文件系统
-
/proc:操作系统的内存映射文件系统,是一个虚拟的文件系统(没有占用磁盘空间)。查看时,看到的是内存里的信息,此文件有助于用户了解系统内部信息
- /root:系统管理员的主目录
-
/sbin:一般存放非普通用户使用的命令(有时普通用户也可能用到),目录/user/sbin中也存放了许多系统命令
- /tmp:用户和程序的临时目录,该目录中的文件会被系统定时自动清空
-
/usr:包括与系统用户直接相关的文件和目录,一些重要的应用程序也存放在该目录下
- /var:包含一些经常改变的文件。例如假脱机目录、文件日志目录、锁文件、临时文件等
-
/etc:系统的配置文件
- /initrd:在计算机启动时挂载initrd.img映射文件的目录以及载入所需设备模块的目录
-
/opt:存放可选择安装的文件和程序。主要用于第三方开发者安装软件包
- /lost+found:在系统修复过程中恢复的文件所在目录
-
常用文件扩展名
- .rpm:软件包文件
- .conf或.cfg:配置文件
- .zip:压缩文件
- .tar:打包文件
- .gz:打包文件
- .bz2:打包文件
- .gif:图像文件
- .Jpg:图像文件
- .Png:图像文件
- .html.或htm:网页文件
- .wav:声音文件
- .sh:批处理文件
文件权限
-
访问权限:每个文件和目录都具有以下访问权限,三种权限之间相互独立
- 读取:浏览
- 写入:修改、删除、添加、重命名
- 执行:进入
-
Linux的文件访问权限分为三级:文件所有者、群组、其他:
- 拥有者(Owner)权限:拥有文件的用户具有的访问权限
- 与拥护者同组用户(Group)的权限:文件拥有者所在组的其他用户对该文件的访问权限
- 其他用户(Other)权限:与文件拥有者不在同一组的用户对该文件的访问权限
- 超级用户拥有所有权限
-
访问权限表示方法
- 字母表示法:r(read)、w(writhe)、x(excute)
- 数字表示法:r=4,w=2,x=1
- 例如:rwx属性为4+2+1=7;rw-属性为4+2=6;r-x属性为4+1=5
-
使用chmod命令更改文件权限
-
修改文件的存取模式:文件属性可读(r),可写(w),可执行(x)权限
-
设置该文件的读取权限:u(用户),g(组),o(其他),a(所有)
-
例如:chmod a+rwx aa.txt ,设置所有用户对该aa.txt都具有rwx权限
-
使用chgrp命令改变文件的所属群组
- 格式:chgrp [群组] [文件]
- 例如:chgrp student aa.txt
-
使用chown命令改变文件的所有者,可以一并蟹盖文件的所属群组
- 格式:chown [文件所有者]:[群组] [文件]
- 例如:chown Li:student aa.txt
管理目录和文件的shell命令
- mkdir:创建目录
- 格式:mkdir [选项] [目录名]
- 选项:-p:一次性创建多级目录
- 例如:
- mkdir aaa
- mkdir -p /home /bbb
- mv:移动或重命名文件或目录
- 格式:mv [选项] [原文件或目录] [目标文件或目录]
- 选项:
- -b:若存在同名文件,覆盖之前备份原文件
- -f:强制覆盖同名文件
- 例如:mv /home/aaa/aa.txt /mnt/floppy
- cp:复制文件或目录
- 格式:cp [选项] [原文件或目录] [目标文件或目录]
- 选项:
- -b:若存在同名文件,覆盖之前备份文件
- -f:强制覆盖同名文件
- -r:按递归方式复制,包含子目录
- 例如:cp -r /home/aaa/ /mnt/floppy
- rm命令:删除文件或目录
- 格式:rm [选项] [文件或目录]
- 选项:
- -f:强制删除,不出现确认信息
- -r或-R:按递归方式删除
- 默认只删除文件
- 例如:rm -r /home/aaa/
文件的链接
- 文件的硬链接
- 相当于一个文件的两个副本,指向同一数据存储区
- 特点:
- 两个文件长度相等
- 删除其中一个文件,另一个仍然存在
- 修改其中一个文件,另一个也被修改
- 文件的符号链接
- 相当于一个文件的快捷方式
- 特点:
- 仅保留一个指针,长度小于原文件
- 删除符号链接,不影响原文件
- 删除原文件,符号链接没有意义
- ln命令:产生链接文件
- 格式:ln -s [原文件] [目标文件]
- 有-s为符号链接,无-s为硬链接
- 注意:目录不可以硬链接
- find命令:在指定目录中查找文件或目录
- 格式:find [查找路径] [选项] [匹配条件]
- 选项:
- -name:字符串
- -user:用户名
- -group:组名
- 例如:find /mnt/ -name ‘zb*’
- grep命令:在文件中查找匹配的字符串
- 格式:grep [选项] [字符串] [文件列表]
- 选项:
- -n:显示行号
- -v:显示不包含指定字符串的行
- -i:不区分大小写
- 例如:grep ‘abc’ myfile
- du命令:报告指定文件或目录已使用的磁盘空间总量
- 格式:du [选项] 目录或文件
- 选项:
- -a:显示指定目录及其所有子目录和文件的大小,默认只显示目录的大小
- -h:以易读的方式显示目录或文件的大小
- -s:只显示指定目录的大小,不显示其子目录的大小
- 例如:du -sh /home/jszx
- df命令:报告文件系统磁盘的使用情况
- free命令:查看当前内存和交换空间的使用情况
打包和压缩
-
压缩与解压
- gzip、bzip2和zip命令
压缩工具 文件扩展名 解压工具 gzip .gz gunzip bzip2 .bz2 bunzip2 zip .zip unzip -
tar命令:打包(归档)
- 格式:tar [选项] 打包文件 [文件或目录列表]
- 常用选项:
- cvf:在当前目录下打包,保留原文件
- xvf:保持完整路径信息,在当前目录中解包
- zcvf:在当前目录下打包文件,并使用gzip压缩tar文件
- zxvf:保持完整路径信息,在当前目录中用gunzip解压缩文件并解包
- jcvf:在当前目录下打包文件,并用bzip2压缩tar文件
- jxvf:保持完整路径信息,在当前目录中用bzip2解压缩文件并解包
博主个人网站:我不爱你