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 .

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

工程项目管理软件怎么选?推荐7款实用工具

本文提及的有主流7款工程项目管理系统软件有: 1. Worktile;2. 广联达BIM5D;3. 泛普软件;4. 明源云工程;5. 飞书;6. Smartsheet;7. Procore。 很多工程项目管理人员常常头疼如何有效地管理多个项目&#xff…

保研考研机试攻略:python笔记(1)

🐨🐨🐨宝子们好呀 ~ 我来更新欠大家的python笔记了,从这一篇开始我们来学下python,当然,如果只是想应对机试并且应试语言以C和C为主,那么大家对python了解一点就好,重点可以看高分篇…

【机器学习】——numpy教程

文章目录 1.numpy简介2.初始化numpy3.ndarry的使用3.1numpy的属性3.2numpy的形状3.3ndarray的类型 4numpy生成数组的方法4.1生成0和1数组4.2从现有的数组生成4.3生成固定范围的数组4.4生成随机数组 5.数组的索引、切片6.数组的形状修改7.数组的类型修改8.数组的去重9.ndarray的…

接口测试(七)jmeter——参数化(RandomString函数)

一、RandomString函数 需求:模拟10个用户注册 1. 【工具】–>【函数助手对话框】 2. 选择RandomString函数 假设手机号码前3位设置为固定数值136,后8位可用RandomString函数随机产生数值 ① Random string length:8(随机长度…

记录element-ui改造select显示为table,并支持多查询条件

最近遇到的一个需求 , 很有趣,是需要一个select组件,要求显示工号,员工姓名,以及区域 三个字段,并且要支持三个字段的查询。显然element原生的组件不适用,这时候我们需要改造一下,把…

基于大数据 Python Vue 美食推荐可视化系统(源码+LW+部署讲解+数据库)

!!!!!!!!! 会持续一直更新下去 有问必答 一键收藏关注不迷路 源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwdjf1d 提取码: jf1d &#…

Java后端面试题:Java基础篇

目录 Java基础 1.请你说说Java中基本数据类型的bit长度? 2.switch支持哪些数据类型?支持long么? 3.讲一下常见编码方式? 4.char能不能存储中文? 5.为什么数组索引从0开始呢?假如从1开始不行吗&#xf…

w003基于Springboot的图书个性化推荐系统的设计与实现

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…

Git 课程任务

破冰和创建项目 https://github.com/WangXiuhao/loveailab

CORE 安全与身份认证《1》 UseRouting 、UseEndpoints

认证、授权、确权与鉴权 路由 web的请求到达后端服务时,controller(控制器)会处理传入的http请求并响应用户操作, 请求的url会被映射到控制器的操作方法上。 此映射过程由应用程序中定义的路由规则完成。 》》》net core 在中间件中的鉴权授权的位置一…

rtp协议:rtcp包格式和传输间隔

RTP Control Protocol -- RTCP-rtp控制协议 实时传输控制协议(RTCP)基于对会话中的所有参与者定期传输控制包,使用与数据包相同的分发机制。底层协议必须提供数据包和控制包的多路复用,例如使用UDP时使用不同的端口号。RTCP执行四…

Golang | Leetcode Golang题解之第501题二叉搜索树中的众数

题目: 题解: func findMode(root *TreeNode) (answer []int) {var base, count, maxCount intupdate : func(x int) {if x base {count} else {base, count x, 1}if count maxCount {answer append(answer, base)} else if count > maxCount {ma…

一站式学习 Shell 脚本语法与编程技巧,踏出自动化的第一步

文章目录 1. 初识 Shell 解释器1.1 Shell 类型1.2 Shell 的父子关系 2. 编写第一个 Shell 脚本3. Shell 脚本语法3.1 脚本格式3.2 注释3.2.1 单行注释3.2.2 多行注释 3.3 Shell 变量3.3.1 系统预定义变量(环境变量)printenv 查看所有环境变量set 查看所有…

RK3568平台(基础篇)预编译命令原理

一.宏定义(#define)是什么 #define 可以将一对文本进行替换,在编译器读到需要被替换的文本的时候,会将这些文本全部替换成我们给定的文本。 如下是一个宏的定义: #define A 100 二.预编译 预处理命令 #if、#endif、#undef、#ifdef、#else、#elif 在接触#if、#undef这…

图片尺寸怎样能快速修改?图片改尺寸的4款在线工具

图片怎么压缩调整大小呢?现在的图片随着质量或者尺寸都会比较大,在很多平台上传时会导致无法使用,需要按照要求调整图片大小后才能够正常使用,那么如何操作能够快速修改图片大小呢?下面来给大家分享图片改大小的4款在线…

使用virtualenv/Anaconda/Miniconda创建python虚拟环境

自带venv 免安装直接使用 虚拟环境是创建一种隔离的工作空间,在该工作空间中可以安装不同的库,而不影响其他的项目。其中,python自带的venv,就可以很好的创建虚拟环境了。 # 创建虚拟环境 python -m venv venv# windows系统激活…

Linux -- 共享内存(2)

目录 命令 ipcs -m : 命令 ipcrm -m shmid: 共享内存的通信: 为什么共享内存更高效? 代码: ShmClient.cc: ShmServer.cc: 结果: 如何让共享内存实现同步? 代码&a…

119.WEB渗透测试-信息收集-ARL(10)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:118.WEB渗透测试-信息收集-ARL(9) 释放完成后,点击创…

[mysql]子查询的概述和分类及单行子查询

子查询引入 查询的基本结构已经给大家了,子查询里面也是有一些新的内容,子查询其实就是在查询中嵌套另一个查询,叫嵌套查询可能大家更容易理解一点..,类似与FOR循环和FOR循环的嵌套,这一章是我们查询的最难的部分,大家 难度是查询的顶峰,多表查询和子查询是非常重要,SQL优化里…

2024年AR游戏市场分析:创业指南

自从2016年《Pokmon GO》横空出世以来,增强现实(AR)游戏已经成为移动游戏领域的一大亮点。然而,随着时间的推移,AR游戏市场是否仍然充满机遇?本文将对当前市场上成功的AR游戏进行分析,并为有意进入这一领域的创业者提供一些启示。 一、市场领导者分析 《Pokmon GO》自…