Linux文件类型和根目录结构

Linux文件类型和根目录结构

1.文件类型

字符文件类型说明
~普通文件类似于Windows的记事本
d目录文件类似于windows文件夹
c字符设备文件串行端口设备,顺序读写,键盘
b块设备文件可供存储的接口设备,随机读写,硬盘
p管道文件用于进程间的通信
s套接字文件通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信
l符号链接又叫软链接,和原来文件不是同一个文件例如windows的快捷方式
硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也叫inode)

Linux系统中软链接与硬链接的区别

1.定义与原理

  • 硬链接
    • 硬链接是多个文件名指向同一个 inode(索引节点)。可以理解为同一个文件有多个不同的文件名,它们都直接指向文件的存储位置。
    • 当创建硬链接时,实际上是为文件增加了一个新的文件名,而不是创建一个新的文件副本。
    • 例如,文件 /home/user/original.txt 有一个硬链接 /home/user/link1.txt,这两个文件名指向同一个存储位置和 inode。
  • 软链接(符号链接)
    • 软链接是一个独立的文件,它包含了指向另一个文件或目录的路径。可以看作是 Windows 中的快捷方式。
    • 当访问软链接时,系统会自动重定向到它所指向的目标文件或目录进行操作。
    • 例如,创建一个软链接 /home/user/soft_link.txt 指向 /home/user/original.txt,访问软链接时实际上是在访问目标文件。

2.文件属性

  • inode 编号

    • 硬链接与原文件具有相同的 inode 编号,这表明它们在文件系统中是同一个文件的不同名称。
    • 软链接有自己独立的 inode 编号,与目标文件不同。
  • 文件大小

    • 硬链接的文件大小与原文件相同,因为它们指向同一个存储位置。
    • 软链接的文件大小通常较小,它只包含指向目标文件的路径信息。

3.创建方式

  • 硬链接:使用 ln 命令创建,语法为 ln 源文件 硬链接文件。例如:ln /home/user/original.txt /home/user/link1.txt
  • 软链接:使用 ln -s 命令创建,语法为 ln -s 源文件 软链接文件。例如:ln -s /home/user/original.txt /home/user/soft_link.txt

4.对源文件的依赖

  • 硬链接
    • 相对独立于源文件。即使源文件名被删除,只要还有一个硬链接存在,文件的数据仍然可以访问。
    • 例如,删除 /home/user/original.txt,但 /home/user/link1.txt 仍然可以访问文件内容。
  • 软链接
    • 依赖于目标文件。如果目标文件被删除或移动,软链接将变为无效。
    • 例如,如果删除 /home/user/original.txt/home/user/soft_link.txt 将无法访问到文件内容,会出现错误提示。

5.跨文件系统

  • 硬链接:不能跨文件系统创建硬链接。因为不同的文件系统有不同的 inode 编号分配方式,无法在不同文件系统中为同一个文件创建多个名称。
  • 软链接:可以跨文件系统创建软链接,因为软链接只是包含了一个指向目标文件的路径,与文件系统的 inode 结构无关。

2.Linux系统的目录结构

2.1 FHS层级结构标准

  • 定义:

​ Filesystem Hierarchy Standard(FHS,文件系统层次结构标准)定义了 Linux 操作系统中文件和目录的组织方式。其主要目的是为了让不同的 Linux 发行版在文件系统布局上有一个统一的标准,以便提高软件的可移植性和用户在不同系统之间的操作便利性。

  • Linux目录结构的特点

    • 使用树形目录结构来组织和管理文件。

    • 整个系统只有一个根目录(树根),Linux的根目录用“/”表示

    • 其他所有分区以及外部设备(如硬盘、光驱等)都是以根目录为起点,挂接在目录树的某个目录中的,通过访问挂载点目录,即可实现对这些分区的访问。

    在这里插入图片描述

  • 主要目录及其用途:

目录用途
/Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录
/boot存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动
/bin存放基本的二进制可执行文件,这些文件对于系统的基本运行和恢复是至关重要的。
/sbin包含系统管理相关的二进制可执行文件。
/lib是库(library)英文缩写,存放系统的各种库文件
/lib64存放系统本身需要用到64位程序的共享函数库(library)
/usr一般用户程序安装所在的目录,用于安装各种应用程序
/opt该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、CorelWordPerfect,这可避免将文件分散至整个文件系统。
/user包含用户相关的程序和文件,是一个非常重要的目录。
/etc存放系统配置文件。
/var存放可变数据,如日志文件、邮件队列、打印队列等。
/run保存自系统启动以来描述系统信息的文件
/home每个用户在这个目录下都有一个自己的主目录,用于存放用户的个人文件和设置。
/root管理员用户(root)的主目录。
/mnt和/media以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点
/tmp用来存放不同程序执行时产生的临时文件
/srvsrv 是服务(server)的简写,服务启动之后需要访问的数据目录
/sys本目录是将内核的一些信息映射文件,以供应用程序所用
/dev存放设备文件,代表系统中的硬件设备。
/proc这是一个虚拟文件系统,提供了关于系统运行状态和进程信息的接口。可以在这个目录下获取系统信息,详解网址:https://mp.weixin.qq.com/s/4WUJ
  • 注意:

    • 系统自带的目录不要随意删除

    • 目录的名称是区分大小写的

    • FHS标准并不是一种强制约束标准,但是一种经验的总结,应灵活使用

2.2 路径

路径是用于指定文件或目录在文件系统中的位置的一种表示方式

  • 路径的组成部分

    • 目录名称:

      • 路径中的每个部分都是一个目录名称,用斜杠(/)分隔。

      • 例如,在路径 /home/user/documents 中,home、user 和 documents 都是目录名称。

    • 文件名:

      • 在路径的最后部分可以是一个文件名,表示具体的文件。

      • 例如,在路径 /home/user/documents/file.txt 中,file.txt 是文件名。

  • 路径的类型

    • 绝对路径:
      • 绝对路径从根目录(/)开始,完整地描述了文件或目录在文件系统中的位置。
      • 例如,/home/user/documents/file.txt 是一个绝对路径,它明确指出了文件 file.txt 位于根目录下的 home 目录中的 user 目录下的 documents 目录中。
      • 无论当前工作目录在哪里,绝对路径都能准确地定位到目标文件或目录。
    • 相对路径:
      • 相对路径是相对于当前工作目录的位置来指定文件或目录的路径。
      • 例如,如果当前工作目录是 /home/user,那么相对路径 documents/file.txt 实际上指的是 /home/user/documents/file.txt。
      • 相对路径更加简洁,特别是当在与当前工作目录相关的位置进行操作时。

2.3 工作目录

  • 用户当前所处的位置,使用 pwd 命令查看
  • 更改当前的工作目录,即切换目录: cd 路径
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /
[root@localhost /]# pwd
/
# 回到当前用户的家(主)目录
[root@localhost /]# cd ~
[root@localhost ~]# pwd
/root
# 回到当前目录的上一级目录
[root@localhost ~]# cd ..
# 切换到之前的目录
[root@localhost /]# cd -
/root
# 回到当前目录
[root@localhost ~]# cd .

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jmeter中请求参数:Parameters、Body Data的区别

使用jmeter发送请求,常常要伴随传递参数。有两种请求参数: Parameters, Body Data, 它们的使用方式有很大不同。 先看下get和post请求的区别。 get请求:顾名思义是从服务器获取资源。 post请求:顾名思义是往服务器提交要处理的数据。 直观…

【算法刷题指南】双指针

🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据…

JavaSE要点 1】Java基础

目录 一、编译和运行 二、JDK,JRE和JVM 三、Java中的基本类型 1. 基本类型的大小 四、JVM内存模型 1. 内存模型 五、JVM虚拟机的组成 1. 虚拟机的5个组成部分 2. 虚拟机栈 3. 栈帧 六、值传递和引用传递 七、变量的默认值 八、String的不可变 九. 包装类和常量池(-…

基于SSM的网上购物系统的设计与实现

技术介绍 本系统运用了JSP技术、SSM框架、B/S架构和myspl数据库 MySQL 介绍 MySQL是一种关系型的数据库管理系统,属于Oracle旗下的产品。MySQL的语言是非结构化的,使用的用户可以在数据上进行工作。这个数据库管理系统一经问世就受到了社会的广泛关注…

【WebGis开发 - Cesium】三维可视化项目教程---图层管理拓展图层顺序调整功能

目录 引言一、为什么要开发图层顺序调整功能二、开发思路整理1. 拖拽库方案选择2. cesium图层api查询 三、代码编写1. 编写拖拽组件代码2. 修改原有图层管理代码2.1 图层加载移除的调整2.2 图层顺序与拖拽列表的矛盾 3. 编写图层移动代码 四、总结 引言 本教程主要是围绕Cesium…

深入理解InnoDB底层原理:从数据结构到逻辑架构

💡 无论你是刚刚踏入编程世界的新人,还是希望进一步提升自己的资深开发者,在这里都能找到适合你的内容。我们共同探讨技术难题,一起进步,携手度过互联网行业的每一个挑战。 📣 如果你觉得我的文章对你有帮助,请不要吝啬你的点赞👍分享💕和评论哦! 让我们一起打造…

ctfshow(259->261)--反序列化漏洞--原生类与更多魔术方法

Web259 进入界面,回显如下: highlight_file(__FILE__);$vip unserialize($_GET[vip]); //vip can get flag one key $vip->getFlag();题干里还提示了网站有一个flag.php界面,源代码如下: $xff explode(,, $_SERVER[HTTP_X…

常见的音视频格式介绍

目录 aac格式介绍(ADTS)h264格式分析FLV和MP4格式介绍 aac格式介绍(ADTS) aac的格式有两种:ADIF不常用,ADTS是主流,所以这里主要讲解ADTS。简单来说,ADTS可以在任意帧解码&#xff…

校园表白墙源码修复版

此校园表白墙源码基于thinkphp,因为时代久远有不少bug,经本人修复已去除大部分bug,添加了美化元素。 https://pan.quark.cn/s/1f9b3564c84b https://pan.baidu.com/s/1bb9vu9VV2jJoo9-GF6W3xw?pwd7293 https://caiyun.139.com/m/i?2hoTc…

多款云存储平台存在安全漏洞,影响超2200万用户

据苏黎世联邦理工学院研究人员Jonas Hofmann和Kien Tuong Turong的发现,端到端加密(E2EE)云存储平台存在一系列安全问题,可能会使用户数据暴露给恶意行为者。在通过密码学分析后,研究人员揭示了Sync、pCloud、Icedrive…

三维管线管网建模工具MagicPipe3D V3.5.3

经纬管网建模系统MagicPipe3D,本地离线参数化构建地下管网三维模型(包括管道、接头、附属设施等),输出标准3DTiles、Obj模型等格式,支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析&…

【Android】MVP架构

MVP架构简介 MVP(Model-View-Presenter)是一种常见的软件架构模式,尤其在Android应用开发中被广泛使用。它将应用程序分为三层:Model、View 和 Presenter,以实现职责分离,提高代码的可维护性和可测试性。 …

基于自适应VSG控制的光伏混合储能构网型逆变系统MATLAB仿真模型

模型简介 此模型源侧部分采用光伏发电系统与混合储能系统(蓄电池超级电容),并网逆变器采用虚拟同步发电机(VSG)控制,为系统提供惯量阻尼支撑。同时对VSG控制部分进行了改进,采用构造函数法对虚…

论文阅读(二十九):Multi-scale Interactive Network for Salient Object Detection

文章目录 Abstract1.Introduction2.Scale VariationProposed Method3.1Network Overview3.2Aggregate Interaction Module3.3 Self-Interaction Module3.4Consistency-Enhanced Loss 4.Experiments4.1Implementation Details4.2 Comparison with State-of-the-arts4.3Ablation …

【力扣】[Java版] 刷题笔记-21. 合并两个有序链表

题目: 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 解题思路 从题目和示例可以看出,应该是要循环遍历链表进行比较,然后组成新的链表。 第一种:递归…

存储过程(SQL)

1.存储过程 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 2.MySQL存储过程创建…

PostgreSQL的前世今生

PostgreSQL的起源可以追溯到1977年的加州大学伯克利分校(UC Berkeley)的Ingres项目。该项目由著名的数据库科学家Michael Stonebraker领导,他是2015年图灵奖的获得者。以下是PostgreSQL起源的详细概述: 一、早期发展 Ingres项目…

LabVIEW换流变换器智能巡检系统

基于LabVIEW的换流变换器智能巡检系统通过自动化检测和数据分析,提高换流变换器的运行效率和可靠性,降低人工维护成本。 项目背景: 换流变压器作为电力系统的重要组成部分,其性能的可靠性直接影响到整个电网的稳定运行。然而&…

完美解决phpstudy安装后mysql无法启动

phpstudy数据库无法启动有以下几个原因。 一、自己在电脑上安装了MySQL数据库,MySQL的服务名为MySQL,这会与phpstudy的数据库的服务名发生冲突,从而造成phpstudy中的数据库无法启动,这时我们只需要将自己安装的MySQL的服务名改掉就行。 但是&#xff0…

软件测试的重要一环:「性能测试」怎么做?

性能测试是软件测试中的重要一环,今天给大家介绍性能测试及如何使用RunnerGo完成性能测试任务。 性能测试是什么? 一句话概括:不断地通过不同场景的系统表现去探究系统设计与资源消耗之间的平衡,为开发人员提供消除瓶颈所需的诊…