Linux文件系统
文件系统和文件类型
文件类型
- 普通文件(-)
- 目录文件(d)
- 块设备文件(b)
- 字符设备文件(c)
- 符号链接文件(l)
- 命名管道文件(p)
- 套接字文件(s)
相关命令
- ls -l 命令
- find / -type [f d b c s p l] [-ls] [|wc–l] 命令
- |wc -l 统计个数
- -ls 显示文件详细信息
文件命名
- 由字母、汉字、数字、下划线、原点等字符构成。
- 长度不超过255个字符,避免使用特殊字符。
- 同一目录下不能有相同的文件名,不同目录下可以同名。
- 若文件名的第1个字符为“.”,表示该文件为隐藏文件。
- 文件的属性与取名无关,文件名中可以不规定扩展名。
- Linux系统中文件名是区分大小写的,而Windows中文件名字是保留大小写但不区分。
目录和路径
- 目录是指包含许多文件项目的一类特殊文件。子目录、父目录、工作目录、用户主目录(Home Directory)。
- 由目录名和 “/”(斜杠)做分隔符组成的字符串,用来表示文件或目录在文件系统中所处的层次的一种方法。路径又分绝对路径和相对路径。
- “.”表示当前目录,“. .”表示父目录,“~”表示用户主目录。
文件系统类型
Linux的最重要特征之一就是支持多种文件系统,可以和许多操作系统共存。Virtual File System(虚拟文件系统)使得Linux可以支持多个不同的文件系统。
文件系统类型
- Minix:最古老、最可靠的文件系统。
- Xia:minix的修正版。
- Ext:ext2的老版本。
- Ext2:ext2诞生于1993年,功能强大,方便安全
- Ext3:ext2+log是linux通用的文件系统,是ext2的增强版本,它强化了系统的日志功能。
- ext4是一种针对ext3系统的扩展日志式文件系统,是专门为Linux 开发的原始的扩展文件系统(ext或extfs)的第四版。ext3升级到ext4能为系统提供更高的性能,消除存储限制,获取新的功能,并且不需要重新格式化分区,ext4会在新的数据上用新的文件结构,旧的文件保留原状。
- Smb:是一种支持Windows for Workgroups、Windows NT和Lan Manager的基于SMB协议的网络文件系统。
- NFS:网络文件系统。
- Vfat:与windows中通用的fat16或fat32文件系统兼容。
- ISO9660:CD-ROM 标准文件系统。
Linux文件系统结构
Linux采用与Windows完全不同的独立文件系统存储方式。
Linux的文件系统采用分层结构。其顶层为根目录,用符号“/”表示,在根目录下是不同的子目录。
这个树状结构构成Linux中的文件系统,从而管理组织系统的所有文件。
/ Linux系统目录树的起点。
/root:系统管理员(也叫超级用户)的主目录。
/boot:这里存放的是启动Linux时使用的一些核心文件。
/bin:bin是binary的缩写。这个目录存放着使用者最经常使用的命令。例如cp、ls、cat等等。
/home:用户的主目录,比如说有个用户叫sy,那么他的主目录就是/home/sy。注意:root用户的目录不在这里,而在/root里。
/dev:dev是device(设备)的缩写。这个目录下是Linux所有的外部设备,在Linux中设备也是文件,使用访问文件的方法访问设备。例如:/dev/sda代表第一个物理SCSI硬盘。
/lib:这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都需要用到这些共享库。
/etc:这个目录用来存放系统管理所需要的配置文件和子目录。
/mnt:这个目录在刚安装好系统时是空的,系统提供这个目录的目的是让用户临时挂载别的文件系统。
/usr:这是最庞大的目录,我们要用到的应用程序和文件几乎都存放在这个目录下。
/sbin:s就是Super User的意思,也就是说这里存放的是系统管理员使用的管理命令和管理程序。
/tmp:用来存放临时文件的地方。
/var:这个目录中存放着那些不断在扩充着的东西,为了保持/usr的相对稳定,那些经常被修改的目录可以放在这个目录下,系统的日志文件就在/var/log目录中。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。
软链接和硬链接
Linux允许一个物理文件有一个以上的逻辑名,即可为一个文件创建一个链接文件,用来表示该文件的另一个名字。链接不同的文件可为之指定不同的访问权限,达到既可共享,又可控制安全的目的。链接分为硬链接和软链接。
- 硬链接
- 硬链接复制文件i-node,也就是保留所链接文件的索引节点(磁盘的物理位置)信息,即使文件更名或改变、移动,硬链接文件仍然存在。
- 软链接
- 软(符号)链接仅仅是指向目的文件的路径,类似于Windows下的快捷方式,如果被链接的文件更名或移动,符号链接文件就无任何意义。
- 命令格式
- 硬链接格式:ln 源文件 链接文件
- 软链接格式:ln -s 源文件 链接文件
- 注意:软链接可以指向目录,不允许将硬链接指向目录。
文件和目录管理权限
文件、目录访问权限
- 文件
- r 读取权限
- w 写入权限
- x 执行权限
- 目录
- 同上,x是指可以用cd命令进入目录查看文件
用户分类
件所有者(owner):建立文件、目录的用户。
同组用户(group):属于同一组群的用户对属于该组群的文件有相同的访问权限。
其他用户(other):除了文件所有者、同组用户的其他用户。
文件所有者(u)、和文件所有者同组的用户(g)和其他用户(o)。对于每一类用户,又可以设置读(r)、写(w)和执行(x)3种权限。这样Linux下对于任何文件或者目录的访问权限都有3组。
访问权限的表示
- 字母表示法
- 数字表示法
相关命令
-
chmod命令
- 命令格式1:chmod n1n2n3 文件|目录
- 为指定文件或目录修改给定的数值访问权限。其中n1代表所有者的权限,n2代表同组用户的权限,n3代表其他用户的权限。
- 命令格式2:chmod [ugoa][+-=][rwxugo] <文件名或目录名〉
- 修改文件或目录的访问权限。
- u所有者 g同组 o其他人 a所有人员
- +增加权限 -减少权限 = 设置权限
-
chown命令
- chown [-R] <用户[:组]> <文件或目录>
- -r对目录递归
-
chgrp命令
- chgrp group file
默认权限、隐藏属性、特殊权限
-
umask命令
- 命令格式:umask [mask]
- 设置文件或目录的默认权限
- 当用户创建文件或目录后,系统将设置一个默认权限,可通过命令umask查看或设置系统默认的权限。umask用一个3位2进制数来指定,由命令的mask可看出这是要屏蔽部分权限。当创建文件时,文件的权限就设置为创建程序请求的任何权限去掉umask屏蔽的权限。
- 由于系统默认屏蔽的权限为022,因此新创建的目录权限就为777-022=755,即新创建的目录的权限为755(用字符表示就是rwxr-xr-x),表示所有者具有所有权限,同组用户和其他用户具有读和执行权限,没有写的权限。新创建的普通文件权限为666-022=644,即rw--r--r--。
-
文件隐藏属性
- 查看文件隐藏属性:lsattr
- 修改文件隐藏属性:chattr
- chattr [+-=] [ ai] 文件或目录名称
- a: 当设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,必须要为root才能设置这个属性。
- i:不能删除,不能修改,不能改名。必须要为root才能设置这个属性。
-
文件特殊权限
- SUID
- SGID
- SBIT
文件的归档与压缩
常见压缩命令
- compress uncompress
- 压缩后缀名:*.z
- 打开压缩文件命令:zcat
- gzip gunzip|gzip -d
- 压缩后缀名:*.gz
- 打开压缩文件命令:zcat
- bzip2 bunzip2|bzip2 -d
- 压缩后缀名: *.bz2
- 打开压缩文件命令:bzcat
常见的压缩文件格式
- tar 打包未压缩的文件,即tarfile
- tar.gz gzip压缩过的文件
- tar.bz2 bzip2压缩过的文件
tar命令
- 格式:tar <选项> 备份文件 源文件或目录
- 为文件和目录做备份,归档为tar文件,设置选项还可以进行文件的压缩。
- 当源是目录时(通常都是)将包括其下的所有文件和子目录。
- -c 创建一个新文档。
- -f 当与-c一起使用时,创建的tar文件使用该选项指定的文件名;当与-x一起使用时,则解除该选项指定的归档文件。
- -t 显示包括在tar文件中的文件列表。
- -v 显示文件的归档进度。
- -x 从归档中抽取文件。
- -z 使用gzip来压缩tar文件。
- -j 使用bzip2来压缩tar文件。
- -C 目录:指定解压缩后的目录。