Linux学习(五)——Linux文件系统

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 目录:指定解压缩后的目录。

你可能感兴趣的:(Linux学习(五)——Linux文件系统)