Linux——文件与目录

一、Linux的目录

1、Linux的树状目录结构

可以在终端中输入命令

ls /

列出 / 下面的子目录:

对于不同的Linux发布版本,/ 下的子目录可能不同。

2、对于这些目录的解释

  •  /

在Linux中,所有文件和目录都挂载在根目录下,根目录用 / 符号表示。

  •  /home 

用户的私人存储空间,每个用户都有一个自己的目录,通常位于 /home/username(对于root用户则通常是 /root)。

  •  /bin

存放标准系统命令的二进制文件。

  •  /sbin

存放系统管理命令的二进制文件。这些命令通常由系统管理员使用。

  •  /etc

etc 是 Etcetera(等等) 的缩写,通常包含系统配置文件。

  •  /dev

dev 是 Device(设备) 的缩写, 包含所有的设备文件,例如 /dev/sda(硬盘), /dev/tty(终端)。

  •  /proc

proc 是 Processes(进程) 的缩写,一个虚拟文件系统,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。包含了系统运行时的信息和内核参数,例如 /proc/cpuinfo。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件。

  •  /var

var 是 variable(变量) 的缩写,存放经常变动的文件,如日志文件、邮件队列等,例如 /var/log, /var/mail

  •  /tmp

用于存储临时文件,通常在系统重启时被清空。

  •  /usr

usr 是 unix shared resources(共享资源) 的缩写,用户级的程序和数据(非系统级),如用户文档、图形界面元素、游戏等。

  •  /lib

存放系统和程序使用的共享库文件,如 /lib, /usr/lib

  •  /run

一个临时文件系统,存储自系统启动以来的信息。在早期的Linux发行版中,这部分信息存储在/var/run中,但现在/run是一个标准位置,用于存放运行时数据,比如进程ID文件和锁文件。

  •  /srv

该目录用来存储服务特定的数据。根据FHS(文件系统层次结构标准),/srv目录包含由系统提供的服务所需要的数据。实际上,这个目录的内容由用户决定,根据服务来组织。

  •  /media

linux 系统会自动识别一些设备,如USB驱动器、CD-ROMs等,当识别后,Linux 会把识别的设备挂载到这个目录下。这个目录下通常会有子目录,每个子目录对应一个挂载的设备。

  •  /opt

opt 是 optional(可选) 的缩写,用于安装“可选”的软件和第三方应用程序,默认是空的。通常,较大的软件包会将自己安装在这里,每个软件包占用一个子目录。

  •  /boot

这里存放的是启动 Linux 时使用的一些核心文件,包含启动Linux系统时所需的文件,比如Linux内核文件(vmlinuz),引导加载程序的配置文件(如GRUB),以及引导加载程序所需的其他文件。

  •  /mnt

mnt 是 mount (挂载) 的缩写,传统上用作临时挂载文件系统的挂载点。管理员可以在此目录下创建子目录,用于挂载临时文件系统或远程文件系统。

在Linux和Unix-like系统中,"挂载"(Mounting)是一种将存储设备或文件系统连接到文件系统树的特定点的过程。简单来说,挂载使得操作系统可以访问、读取和写入存储设备上的文件和目录。挂载过程将设备或分区整合到目录树中,之后,这个挂载点就像是访问这个设备或分区内容的入口。

  •  /sys

是一个虚拟文件系统,提供了内核和运行中的系统信息的接口。它允许用户空间的应用程序获取和设置与设备、内核参数相关的信息。

  •  /usr/src

内核源代码默认的放置目录。

  •  /usr/bin

系统用户使用的应用程序。

  •  /usr/sbin

超级用户使用的比较高级的管理程序和系统守护程序。

二、Linux的文件

1、Linux文件的种类

  1. 普通文件
    普通文件包含文本、二进制数据或程序数据。它们可以是文本文件,如配置文件、代码文件,或者是二进制文件,如编译后的程序和数据文件。

  2. 目录文件
    目录文件是一种特殊类型的文件,用来存储其他文件和目录的信息。目录是一个文件系统的组成部分,它们的结构形成了一个层次化的文件组织方式。

  3. 链接文件
    链接文件分为两种类型:符号链接(soft link)(symbolic link)和硬链接(hard link)。硬链接是指向文件数据的多个名字(入口点),而符号链接则类似于Windows的快捷方式,它是指向另一个文件名的链接。

  4. 设备文件
    在Linux中,设备文件使得硬件设备看起来像文件一样。它们存在于 /dev 目录下,可以分为字符设备文件和块设备文件。字符设备文件如终端或打印机以字符流的方式处理数据,而块设备文件如硬盘或DVD驱动器则以数据块的方式处理数据。

  5. 管道文件
    管道文件用于进程间的通信,它们在文件系统中不是以文件的形式出现,但逻辑上可以当做文件来处理。它们可以是命名管道(有路径名的文件),或无名管道(仅在内存中存在)。

  6. 套接字文件
    套接字是另一种形式的IPC(进程间通信)机制,用于提供网络服务。套接字文件可以用于进程间的网络通信及本地通信。

2、文件的基本信息

在Linux系统中,每个文件都包含了一系列的基本信息,这些信息帮助系统和用户管理和访问文件。以下是一些主要的文件基本信息:

  1. 文件类型:Linux支持多种类型的文件,包括普通文件(regular file)、目录(directory)、链接(link)、设备文件(device file,分为字符设备和块设备)、管道(pipe)、套接字(socket)等。文件类型决定了系统如何处理文件。

  2. 权限(访问控制):Linux文件权限决定了谁可以读取、修改或执行文件。权限分为三组:文件所有者的权限、与文件所有者同一组的用户的权限,以及其他所有用户的权限。每组权限可以是读(r)、写(w)和执行(x)的任意组合。

  3. 所有者和组:每个文件都有一个所有者和一个所属组。文件的访问权限可以根据所有者和所属组来设置。文件所有者通常是创建文件的用户,而文件组通常是该用户所属的主要组。

  4. 大小:文件的大小通常以字节为单位。它表示了文件占用的存储空间量。

  5. 时间戳:Linux系统为每个文件维护三种时间戳:

    • 修改时间(mtime):文件最后一次内容修改的时间。
    • 访问时间(atime):文件最后一次被访问(即读取)的时间。
    • 改变时间(ctime):文件的元数据(例如权限或所有权)最后一次改变的时间。
  6. 链接数:对于目录来说,链接数代表了它直接包含的子目录数(加上它自己和它的上级目录)。对于普通文件,链接数表示有多少文件名指向该文件的inode(索引节点)。每当为文件创建一个硬链接时,其链接数增加。

  7. Inode:每个文件都有一个与之对应的inode,它是文件系统中的一个数据结构,包含了文件的元数据(如文件类型、权限、所有者、大小、时间戳、数据块位置等),但不包括文件名。文件名存储在目录中,指向inode。

3、获取文件的信息

1)利用 ls -l 查看文件信息

可以使用ls -l命令查看目录中文件的详细信息:

这里的具体信息:

2)文件信息解释

对于第一列,表示文件的类型,有下面几种情况:

  1. -:普通文件(regular file)。这是最常见的文件类型,用于存储数据,如文本、二进制文件等。

  2. d:目录(directory)。目录是一种特殊的文件,它包含了其他文件和目录的列表。

  3. l:符号链接(symbolic link)。符号链接是指向另一个文件的引用。

  4. c:字符设备文件(character device file)。这种类型的设备文件提供对硬件设备的非缓冲访问,如键盘或串口。

  5. b:块设备文件(block device file)。块设备文件提供对硬件设备的缓冲访问,如硬盘。

  6. s:套接字文件(socket)。套接字用于进程间通信,它们可以用于不同计算机之间的网络通信以及同一台计算机上不同进程之间的通信。

  7. p:管道文件(pipe or FIFO)。管道用于进程间的通信,允许一个进程的输出直接作为另一个进程的输入。

对于后面紧接着的九列是对于不同用户的权限描述:

其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。

这九列,以三个为一组,且均为 rwx 的三个参数的组合。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 -。

这九个字符,可以转换成二进制序列,有这个权限则为1,没有则为0,例如 rw- 转换为二进制序列就是 110 ,再转换为八进制就可以描述这里的三列,就可以将九列简化为三列。

每组用户的权限分别代表:

  • 读(r):4
  • 写(w):2
  • 执行(x):1

每组权限可以表示为一个3位的二进制数,然后转换为一个八进制数来简化记录。

例如:

  • rwx 权限转换为二进制 111,等于八进制的 7
  • rw- 权限转换为二进制 110,等于八进制的 6
  • r-- 权限转换为二进制 100,等于八进制的 4
  • --- 权限转换为二进制 000,等于八进制的 0

举例来说,如果一个文件的权限为rw-rw-r--,换成二进制是110110100,换成三组八进制分别是6110)、6110)和4100), 所以该文件的数值权限表示为664

3)利用 stat 查看文件更多具体信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2981398.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

51-44 Generating Long Videos of Dynamic Scenes,生成动态场景长视频

22年6月,NVIDIA, UC Berkeley联合发布Generating Long Videos of Dynamic Scenes,这也是Sora技术报告中提及的32篇论文之一。 作者的主要贡献是提出了分层生成器架构Hierarchical Generator Architecture,该架构采用了巨大的时间感受野和创新…

量子密钥分发系统的设计与实现(四):量子密钥的产生过程分析

在之前的文章中,我们讨论了QKD系统的光路系统,我们对整个系统最基础的部分有了初步的了解,从本文开始,我们就要往上层出发了,一起探讨下光电信号如何变成最终的密钥。 1.关于QKD后处理 在光路子系统中,Alic…

【大数据】LSM树,专为海量数据读写而生的数据结构

目录 1.什么是LSM树? 2.LSM树的落地实现 1.什么是LSM树? LSM树(Log-Structured Merge Tree)是一种专门针对大量写操作做了优化的数据存储结构,尤其适用于现代大规模数据处理系统,如NoSQL数据库&#xff…

电商API采集的优势、使用场景,如何实时获取主流电商API数据

电商API采集简介 随着电子商务行业的快速发展,电商API采集成为了许多电商平台和企业的重要工具。API(应用程序接口)是不同软件系统之间进行数据交互的协议,通过API采集,电商平台可以方便地获取其他电商平台的商品信息…

如何在Facebook上发布广告?

在广告管理工具中创建广告 创建广告系列和广告组。在广告名称文本框中输入描述性名称。选择代表您业务的Facebook 公共主页和Instagram 帐户。 所有广告都必须具有关联的Facebook 公共主页。选择广告格式。 选择素材。 您可能还会看到其他选项,具体取决于您先前所做…

coredns部署

coredns部署 coredns部署 一:coredns-rbac.yaml apiVersion: v1 kind: ServiceAccount metadata:name: corednsnamespace: kube-systemlabels:kubernetes.io/cluster-service: "true"addonmanager.kubernetes.io/mode: Reconcile --- apiVersion: rbac…

2024年阿里云轻量应用服务器最低61元,云服务器最低仅需99元(附购买教程)

2024年阿里云最便宜的云服务器多少钱?目前阿里云最便宜的轻量应用服务器价格为61元1年,最便宜的云服务器价格为99元1年,有的新手用户不是很清楚具体的购买教程,本文为大家展示详细的购买教程,以供参考。 注册或者登陆…

创建钉钉审批流实例

1、依赖 <!--钉钉 api --> <dependency><groupId>com.aliyun</groupId><artifactId>dingtalk</artifactId><version>2.0.14</version> </dependency> <!--钉钉 事件订阅--> <dependency><groupId>co…

32 信号入门

重点 1.掌握linux信号的基本概念 2.掌握信号产生的一般方式 3.理解信号递达和阻塞的概念&#xff0c;原理 4.掌握信号捕捉的一般形式 5.重新了解可重入函数的概念 6.了解竞态条件的情景和处理方式 7.了解SIGCHLD信号&#xff0c;重新编写信号处理函数的一般处理机制 目录 1.…

网络研讨会 | 数据中心中的人工智能

人工智能&#xff08;AI&#xff09;是嵌入式开发人员必须解决的最复杂的技术之一。将其集成到您的系统中会带来很多问题而不是很多答案。行业媒体Embedded Computing Design特地推出“工程师的人工智能集成指南”月度网络研讨会系列&#xff0c;目的是尽可能地简化嵌入式计算设…

[SWPUCTF 2022 新生赛]ez_ez_unserialize

要绕过wakeup函数&#xff0c;只要序列化的中的成员数大于实际成员数&#xff0c;即可绕过。 <?php class X {public $x fllllllag.php; }$anew X(); echo serialize($a); O:1:“X”:1:{s:1:“x”;s:13:“fllllllag.php”;} 修改为 O:1:“X”:3:{s:1:“x”;s:13:“flllll…

自动化立体库安全使用管理制度

导语 大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 完整版文件和更多学习资料&#xff0c;请球友到知识星球 【智能仓储物流技术研习社】自行下载 关于自动化立体库安…

如何看待AIGC技术

介绍 AIGC技术&#xff08;人工智能、互联网、物联网、大数据和云计算&#xff09;是指结合人工智能、互联网、物联网、大数据和云计算等技术&#xff0c;形成一个综合的技术体系。以下是一些观点&#xff0c;可供参考&#xff1a; • 创新和发展&#xff1a; AIGC技术…

北京筑龙当选中招协第二届招标采购数字化专业委员会执行主任单位

4月18-19日&#xff0c;中国招标投标协会&#xff08;以下简称中招协&#xff09;2024年年会在宁波召开&#xff0c;北京筑龙作为中招协理事会员单位受邀出席会议。会议期间举行了“电子招标采购专业委员会换届会议暨第二届第一次工作会议”&#xff0c;北京筑龙当选第二届招标…

MySQL--对于库的操作对于表的操作

一、库的查看创建删除 库的查看 show databases; 库的创建&#xff08;创建一个test1数据库&#xff09; create database test1; 同样&#xff0c;我们另起一个root会话&#xff0c;并执行 cd /var/lib/mysql 然后发现多了一个test1目录 删除库&#xff08;删除test1数…

消息队列 Kafka 入门篇(二) -- 安装启动与可视化工具

一、Windows 10 环境安装 1、下载与解压 首先&#xff0c;访问Apache Kafka的官方下载地址&#xff1a; https://kafka.apache.org/downloads 在本教程中&#xff0c;我们将使用kafka_2.13-2.8.1版本作为示例。下载完成后&#xff0c;解压到您的工作目录的合适位置&#xff…

操作系统—系统调用(实验)

文章目录 系统调用1.实验目标2.实验过程记录(1).理解系统调用接口(2).阅读argraw、argint、argaddr和argstr(3).理解系统调用的解耦合实现方式(4).wait系统调用的非阻塞选项实现(5).yield系统调用的实现 3.存在的问题及解决方案实验小结 系统调用 1.实验目标 阅读并了解xv6内核…

酷开科技逐步为用户构建健全的智慧家庭生活场景

大规模与精细化人群技术则是通过大量的计算能力和精细化的运营能力&#xff0c;建立用户专属数据储存区域&#xff0c;使得用户在使用不同电视的观影偏好和兴趣能够能够得以延续。 不拘泥于自有品牌终端数量&#xff0c;酷开系统除了集成在创维电视上&#xff0c;还服务于飞利…

http是什么?http的基础知识教程详解(2024-04-24)

1、http的概念 HTTP&#xff08;超文本传输协议&#xff0c;HyperText Transfer Protocol&#xff09;是一种用于分布式、协作式、超媒体信息系统的应用层协议。 HTTP 是万维网&#xff08;WWW&#xff09;的数据通信的基础&#xff0c;设计目的是确保客户端与服务器之间的通…

CUDA的开发框架

CUDA的开发框架主要提供了一系列工具和库&#xff0c;使得开发者可以充分利用NVIDIA GPU进行高效的并行计算。以下是CUDA开发框架的一些关键组成部分。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.CUDA核心库&#xff1a;这些是构…