前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux文件

Linux文件

作者头像
zy010101
发布2022-05-05 15:53:52
6.8K0
发布2022-05-05 15:53:52
举报
文章被收录于专栏:程序员程序员

在Linux下,一切皆文件。这是我们嵌入式Linux开发与应用这门课的老师经常挂在嘴边的一句话。足以体现出在Linux操作系统中,对于一切资源的管理都是对文件的操作。

Linux系统中每一个分区都是一个文件系统,都有自己的目录层次。Linux会将这些在不同分区的,单独的文件系统按一定的方式形成一个系统的总目录层次结构。

Linux下可以通过shell命令来操作文件,但是功能有一定限制;我们也可以通过系统调用或者C语言的库函数对文件进行操作。

  1. Linux下的文件主要包括两方面的数据:文件本身所包含的数据,以及文件属性,也称为元数据。 文件属性包含文件大小,文件类型,文件所有者,文件权限以及文件最后修改时间。
  2. 目录在Linux下也是文件,称为目录文件。目录文件的内容是该目录的目录项,目录项是该目录下的文件和目录相关的信息。每当创建一个新目录的时候,OS会自动创建两个目录项——“.”和“..” “.”指向当前目录,“..”指向父目录。在根目录下,“.”和“..”指向的都是根目录。
  3. Linux采用的是标准的目录结构——树形结构(B树家族)

Linux既然采用了树形结构的目录形式,整个OS只有一棵文件树,这样方便OS对文件进行统一管理。Linux操作系统中的这颗文件树的树根叫做根文件系统,用“/”表示,可以通过使用cd /命令直接到达根目录。各个磁盘是通过挂载以文件夹的形式访问

文件名中不能出现/和空格,因为/是用来划分路径的,而空格是用来终止一个路径名的。

根文件系统:

  • /bin:该目录下存放供用户使用的完成基本维护任务的命令.
  • /boot:该目录下存放着和OS启动时使用的一些核心文件。
  • /dev:该目录中包含所有的系统设备文件。从该目录可以访问各种系统设备,它还包含了创建设备文件的MAKEDEV.
  • /home:该目录存储普通用户的个人文件,每个用户的主目录均在/home下以用户名命名的文件夹。
  • /etc:该目录包含系统和应用软件的配置文件。
  • /lib:该目录存放着系统最基本的共享链接库(相当于Windows下的DLL)和内核模块。
  • /lib64:如果是64位系统,它会有这个,存放64程序的共享链接库,同时也会有一个lib32.
  • /media:可移动设备的挂载点,OS通常把U盘等设备自动挂载到该目录下。在Ubuntu下,你的磁盘会被挂载在这里。
  • /opt:第三方的软件默认安装到这个位置。并不是每个Linux发行版都会创建这个目录。
  • /mnt:临时用于挂载文件系统的。一般情况下这个目录下是空的,在我们挂载分区的时候会在该目录下创建目录。
  • /proc:存在于内存中的虚拟文件系统,里面保存了内核和进程的状态信息。
  • /root:这是root(超级管理员)用户的主目录,于/home下的普通用户目录类型。
  • /sbin:供root用户使用的可执行文件,多是系统管理命令。
  • /usr:静态的用户级应用程序。
  • /tmp:该目录用于保存临时文件。

Linux文件分类:

  1. 普通文件:用户和OS的数据,程序等信息文件
  2. 目录文件:Linux文件系统将文件索引节点号和文件名同时保存在目录中,所以目录就是一张表。OS可以修改目录文件,用户只能读目录文件
  3. 设备文件:Linux下一切皆文件,设备也是文件。每一种I/O设备对应一个设备文件,存放于/dev下。
  4. 管道文件:这是Linux用于进程之间通信的文件,一个进程在管道这一段写入数据,另一个进程在管道的另一端读取数据。管道文件一般是FIFO文件。
  5. 链接文件:又被称作符号链接文件,它提供了一种共享文件的方式。它包含了指向文件的指针。

通过ls -l可以查看文件类型和属性

结果分多行显示,距离说明一下每行显示的意义。例如第一行exec这个文件的信息行。首先,我们看到这行以“-”开头,表示exec是一个普通文件。同时注意到第三行以d开头,这说明new是一个目录文件。

  • -:表示普通文件
  • d:表示目录文件
  • l:表示链接文件
  • c:表示字符设备
  • b:表示块文件
  • p:表示管道文件
  • f:表示堆栈文件

接着看第一个符号后面的信息,注意到后面仍旧有9个字符。这9个字符分成3组,即每3个一组,”w"表示可写,“r”表示可读,“x”表示可执行。第一组3个符号表示的是文件拥有者对该文件的权限;第二组3个符号表示该文件拥有者所在组的其他用户对该文件的权限;第3组表示系统其他用户对该文件的权限。

之后,可以看到有个数字,对于普通文件,这个数字表示硬链接计数,对于目录文件来说这个数字表示第一级子目录数。接下来的两组信息分别是文件拥有者和拥有者所在组,然后是文件大小(单位是字节,其中目录文件的大小就是4096),接着是文件最后的修改日期,最后就是文件名。

对目录文件的读权限,意味着可以查看目录下的所有文件列表;对目录的写权限意味着具有删除和移动目录的权限。

所有的目录文件都具有可执行权限,否则我们无法进行搜索,因此执行权限位也被称为搜索位。

另外,可以看到,文件的颜色是不同的。其实不同的颜色就代表了文件的类型是什么。

绿色:文件是绿色代表文件是可执行文件,例如上图中的cat。

白色:白色表示文件是普通文件。

红色:红色代表文件是压缩文件。

灰色:其他文件。

蓝色:蓝色代表这是一个目录文件。

青色:青色代表的是连接文件。

黄色:黄色代表设备文件。

在Linux下以"."开始的文件是隐藏文件,例如上图的.swm就是一个隐藏压缩文件。

l表示是一个链接文件,当使用ls -l命令列举当前目录下文件以及文件属性的时候,就会显示软链接真正的位置,如上图所示。我们可以看到ping4和ping6都是ping命令的链接。 当然了,ping是红色的,代表它是压缩文件,但是它同时也是可执行文件。它就是我们在command下使用的ping命令。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档