C++路线_01C语言基础_01Linux_03文件系统

1.文件

Unix/Linux对数据文件(xx.mp3、xx.bmp),程序文件(xx.c、xx.h、xx.cpp),设备文件(LCD、触摸屏、鼠标),网络文件( socket ) 等的管理都抽象为文件,使用统一的方式方法管理。

在Unix/Linux操作系统中也必须区分文件类型,通过文件类型可以判断文件属于可执行文件、文本文件还是数据文件。在Unix/Linux系统中文件可以没有扩展名。

2.文件分类

通常,Unix/Linux系统中常用的文件类型有5种:普通文件、目录文件、设备文件、管道文件和链接文件。

  • 普通文件
    普通文件是计算机操作系统用于存放数据、程序等信息的文件,一般都长期存放于外存储器(磁盘、磁带等)中。普通文件一般包括文本文件、数据文件、可执行的二进制程序文件等。
    在Unix/Linux中可以通过file命令来查看文件的类型。如果file文件后面携带文件名,则查看指定文件的类型,如果携带通配符“*”,则可以查看当前目录下的所有文件的类型。
  • 目录文件
    Unix/Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
    目录文件只允许系统管理员对其进行修改,用户进程可以读取目录文件,但不能对它们进行修改。
    每个目录文件至少包括两个条目,“…”表示上一级目录,“.”表示该目录本身。
  • 设备文件
    Unix/Linux系统把每个设备都映射成一个文件,这就是设备文件。它是用于向I/O设备提供连接的一种文件,分为字符设备和块设备文件。
    字符设备的存取以一个字符为单位,块设备的存取以字符块为单位。每一种I/O设备对应一个设备文件,存放在/dev目录中,如行式打印机对应/dev/lp,第一个软盘驱动器对应/dev/fd0。
  • 管道文件
    管道文件也是Unix/Linux中较特殊的文件类型,这类文件多用于进程间的通信,例如,创建一个day01文件,与此同时,启用进程 A 从 day01文件读数据,启用进程 B 从 day01文件中写数据,随写随读
  • 链接文件
    类似于 windows 下的快捷方式,链接又可以分为软链接(符号链接)和硬链接

3.文件权限

文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。

Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。、

在 Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

4.访问用户

通过设定权限可以从以下三种访问方式限制访问权限:

  • 只允许用户自己访问(所有者)
     所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件
  • 允许一个预先指定的用户组中的用户访问(用户组)
     用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限
  • 允许系统中的任何用户访问(其他用户)
     用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类

5.访问权限

用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

  • 读权限(r)
    对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限
  • 写权限(w)
    对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限
  • 可执行权限(x)
    对文件而言,具有执行文件的权限;对目录来说该用户具有进入目录的权限

注意:通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限

在这里插入图片描述

  1. 第1个字母代表文件的类型:“d” 代表文件夹、“-” 代表普通文件、“c” 代表硬件字符设备、“b” 代表硬件块设备、“s”表示管道文件、“l” 代表软链接文件
  2. 后 9 个字母分别代表三组权限:文件所有者、用户组、其他用户拥有的权限

每一个用户都有它自身的读、写和执行权限

  • 第一组权限控制访问自己的文件权限,即所有者权限。
  • 第二组权限控制用户组访问其中一个用户的文件的权限。
  • 第三组权限控制其他所有用户访问一个用户的文件的权限。

这三组权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有9种类型的权限组。

/*
文件扩展名

  • 压缩包:Linux 下常见的压缩文件名有 .gz、.bz2、.zip、.tar.gz、.tar.bz2、.tgz 等。为什么压缩包一定要写扩展名呢?很简单,如果不写清楚扩展名,那么管理员不容易判断压缩包的格式,虽然有命令可以帮助判断,但是直观一点更加方便。另外,就算没写扩展名,在 Linux 中一样可以解压缩,不影响使用。
  • 二进制软件包:CentOS 中所使用的二进制安装包是 RPM 包,所有的 RPM 包都用".rpm"扩展名结尾,目的同样是让管理员一目了然。
  • 程序文件:Shell 脚本一般用 “.sh" 扩展名结尾,其他还有用 ".c” 扩展名结尾的 C 语言文件等。
  • 网页文件:网页文件一般使用 “*.php” 等结尾,不过这是网页服务器的要求,而不是 Linux 的要求。

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值