Linux 文件和目录
Linux 文件和目录
文章目录
- Linux 文件和目录
- Linux 目录
- Linux 目录配置的依据 --FHS
- 目录树
- 文件属性
- 文件的分类
- 一般权限 UGO
- 特殊权限 suid\sgid\sticky
- 隐藏属性 ATTR
- 文件访问控制列表 ACL
- 文件相关的命令
- 权限的修改 chmod chown chgrp umask
- chmod
- chgrp
- umask
- 相关文档 /etc/profile ~/.bash_profile
- ATTR 权限命令 chattr lsattr
- chattr
- lsattr
- ACL 权限命令
- ACL 权限概念
- getfacl
- 文件存储结构
- 软硬方式链接
- 指令和文件的搜索
- 肉眼查找 : ls -R
- 文件名的搜寻 :whereis, locate, find
- whereis
- locate
- find
- Linux 文件和目录作业
- UGO 权限作业
- 特殊权限作业
- ATTR 权限作业
- ACL 权限作业
Linux 目录
Linux 目录配置的依据 --FHS
因为利用 Linux 来开发产品或 distributions 的社区 / 公司或个人实在太多了 , 如果每个人都用自己的想法来配置文件放置的目录 , 那将可能造成很多管理上的困扰。 你能想象 , 你进入一个企业之后 , 所 接触到的 Linux 目录配置方法竟然跟你以前学的完全不同吗 ? 很难想象吧 ~ 所以 , 后来就有所谓的Filesystem Hierarchy Standard (FHS) 标准的出炉了 !
根据 FHS(http://www.pathname.com/fhs/) 的官方文件指出 , 他们的主要目的是希望让使用者可以了解到已安装软件通常放置在哪个目录下 , 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户 , 都能够遵循 FHS 的标准。 也就是说 ,FHS 的重点在于规范每个特定的目录下应该存放什么样子的数据而已。
亊实上 ,FHS 是根据过去的经验一直再持续的改版的 ,FHS 依据文件系统使用的频繁与否允许使用者随意更动 , 而将目录定义成为四种交互作用的形态 , 用表格来说有点像底下这样 :
| 可分享的 (shareable) | 不可分享的 (unshareable) | |
|---|---|---|
| 不变的 (static) | /usr ( 软件放置处 ) | /etc ( 配置文件 ) |
| /opt ( 第三方协力软件 ) | /boot ( 开机不核心档 ) | |
| 可变动的 (variable) | /var/mail ( 使用者邮件信箱 ) | /var/run ( 程序相关 ) |
| /var/spool/news ( 新闻组 ) | /var/lock ( 程序相关 ) |

目录树
在类 Unix 系统中并不存在 C/D/E/F 盘符,一切的文件都是从 “ 根 (/)” 目录开始的并按照文件系统目录标准 FHS 采用树形结构来存放文件并定义了每个区域的用途。
目录名称严格的区分大小写,例如 root 、 rOOt 、 Root 、 rooT 等等均代表是不同的独立目录,并且名称中不得包含反斜杠 (/) 。

主要常见的目录定义:
| 目录名称 | 应放置文件的内容 |
|---|---|
| /boot | 开机所需文件 —— 内核,开机菜单及所需配置文件等 |
| /dev | 任何设备与接口都以文件形式存放在此目录 |
| /etc | 配置文件 |
| /home | 用户主目录 |
| /bin | 单用户维护模式下还能够被操作的命令 |
| /lib | 开机时用到的函数库及/bin 与/sbin 下面命令要调用的函数 |
| /sbin | 开机过程中需要的 |
| /media | 一般挂载或删除的设备 |
| /opt | 放置第三方的软件 |
| /root | 系统管理员的主文件夹 |
| /srv | 一些网络服务的数据目录 |
| /tmp | 任何人均可使用的 “ 共享 ” 临时目录 |
| /proc | 虚拟文件系统,例如系统内核,进程,外部设备及网络状态等 |
| /usr/local | 用户自行安装的软件 |
| /usr/sbin | 非系统开机时需要的软件/命令/脚本 |
| /usr/share | 帮助与说明文件,也可放置共享文件。 |
| /var | 主要存放经常变化的文件,如日志。 |
| /lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里1.3 路径 |
另外一个重要的概念 “ 路径 ” ,这个路径指的是如何找到某个文件,分为 “ 绝对路径 ” 与 “ 相对路径 ” :
- 绝对路径 (absolute): 由根目录 (/) 开始写起的目录或文件名
- 相对路径 (relative): 相对于当前路径的写法
举例来说一个客人想找下厕所,你有两种回答的方法。
- 绝对路径:首先坐车来到你家,到了你家后,右手边第一个房间就是厕所。
- 相对路径:前面右拐第一个房间。
如果你说的是绝对路径,那么任何客人都可以按照这个提示找到你家的厕所,但缺点是过于繁琐,如果说的是相对路径,那么这个人并不是在每个路口右转都能找到厕所,缺点是不具备普遍性。
[root@rhel7 ~]# cd /etc/sysconfig/network-scripts/
[root@rhel7 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@rhel7 network-scripts]# cd ../modules
[root@rhel7 modules]# pwd
/etc/sysconfig/modules
文件属性
类 Unix 系统的设计初衷就是为让多用户同时工作,所以也迫使 Linux 系统有了极强的安全性。接下来我们一起来看看 linux 系统示如何实现安全性的。
[root@rhel7 tmp]# ll /
total 4148
lrwxrwxrwx. 1 root root 7 May 5 17:28 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 May 5 17:40 boot
drwxr-xr-x. 15 root root 4096 Aug 19 13:19 content
-rw------- 1 root root 2166784 Aug 8 05:24 core.2052
-rw------- 1 root root 19017728 Aug 8 05:27 core.2488
drwxr-xr-x 19 root root 3380 Oct 26 12:22 dev
drwxr-xr-x. 138 root root 12288 Oct 26 12:22 etc
drwxr-xr-x. 4 root root 31 Aug 23 17:32 home
lrwxrwxrwx. 1 root root 7 May 5 17:28 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 May 5 17:28 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 May 25 2015 media
drwxr-xr-x. 2 root root 6 May 25 2015 mnt
drwxr-xr-x. 4 root root 36 May 6 13:19 opt
dr-xr-xr-x 229 root root 0 Oct 26 2016 proc
dr-xr-x---. 26 root root 4096 Oct 12 14:11 root
drwxr-xr-x 39 root root 1200 Oct 26 12:24 run
lrwxrwxrwx. 1 root root 8 May 5 17:28 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 May 25 2015 srv
dr-xr-xr-x 13 root root 0 Oct 26 2016 sys
drwxrwxrwt. 31 root root 4096 Oct 26 12:42 tmp
drwxr-xr-x. 13 root root 4096 May 5 17:28 usr
drwxr-xr-x. 23 root root 4096 Oct 26 2016 var
第二字段,文件硬链接数或目录子目录数
文件的分类
| 文件 | 操作 | |
|---|---|---|
| 普通文件 | 纯文本档 (ASCII) | touch file |
| 二进制文件 (binary) | ||
| 数据格式文件 (data) | ||
| 目录 | (directory) | mkdir dire |
| 连结档 | (link) | ln file hfile |
| ln -s file sfile | ||
| ln -s ‘pwd’/file ssfile 绝对路径的软链接文件 | ||
| 设备与装置文件 | (device) | mknod bfile b 252 0 块设备 |
| mknod cfile c 4 2 字符设备 | ||
| 数据输送文件 | (FIFO, pipe) | mkfifo pfile 管道文件 |
相关文章:
Linux 文件和目录
Linux 文件和目录 文章目录 Linux 文件和目录Linux 目录Linux 目录配置的依据 --FHS目录树文件属性文件的分类一般权限 UGO特殊权限 suid\sgid\sticky隐藏属性 ATTR文件访问控制列表 ACL文件相关的命令权限的修改 chmod chown chgrp umaskchmodchgrpumask相关文档 /etc/profile…...
【大数据技术】本机DataGrip远程连接虚拟机MySQL/Hive
本机DataGrip远程连接虚拟机MySQL/Hive datagrip-2024.3.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本机的DataGrip连接虚拟机的MySQL数据库和Hive数据库,提高编程效率。 安装DataGrip 请按照以下步骤安装DataGrip软…...
Leetcode 3440. Reschedule Meetings for Maximum Free Time II
Leetcode 3440. Reschedule Meetings for Maximum Free Time II 1. 解题思路2. 代码实现 题目链接:3440. Reschedule Meetings for Maximum Free Time II 1. 解题思路 这一题某种意义上来说甚至是上一题Leetcode 3439的简化版本(关于这一题的解答可以…...
专门记录台式电脑常见问题
1、蓝屏死机,检查内存硬盘和cpu 2、拆内存条,用橡皮擦金手指 3、放主板静电,扣主板电池 4、系统时间不正确,主板电池没电 5、开机键坏了 6、电脑主机的风扇转,正常通电运行,但显示器没信号。看键盘的num键&…...
[操作系统] 进程终止
在计算机操作系统中,进程(Process)是程序在运行中的实例,而进程的生命周期始于创建,终于终止。进程终止不仅仅意味着程序执行结束,还涉及资源的回收、状态的传递、以及可能的错误处理。在 Linux 和 Unix 系…...
[x86 ubuntu22.04]进入S4失败
目录 1 问题描述 2 解决过程 2.1 查看内核日志 2.2 新建一个交换分区 2.3 指定交换分区的位置 1 问题描述 CPU:G6900E OS:ubuntu22.04 Kernel:6.8.0-49-generic 使用“echo disk > /sys/power/state”命令进入 S4,但是无法…...
12.外观模式(Facade Pattern)
定义 外观模式(Facade Pattern) 是一种结构型设计模式,它通过为复杂的子系统提供一个统一的接口,使得子系统的使用更加简化。外观模式通常隐藏了复杂的内部子系统,使得客户端可以通过一个简单的接口与这些子系统进行交…...
ES6 入门教程:箭头函数、解构赋值及其他新特性详解
ES6 入门教程:箭头函数、解构赋值及其他新特性详解 ES6 入门教程:箭头函数、解构赋值及其他新特性详解引言什么是 ES6?箭头函数(Arrow Functions)1. 基本语法2. 常见特点(1)没有自己的 this 上下…...
win编译openssl
一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…...
51单片机看门狗系统
在 STC89C52 单片机中,看门狗控制寄存器的固定地址为 0xE1。此地址由芯片厂商在硬件设计时确定,但是它在头文件中并未给出,因此在使用看门狗系统时需要声明下这个特殊功能寄存器 sfr WDT_CONTR 0xE1; 本案将用一个小灯的工作状况来展示看门…...
探索 paraphrase-MiniLM-L6-v2 模型在自然语言处理中的应用
在自然语言处理(NLP)领域,将文本数据转换为机器学习模型可以处理的格式是至关重要的。近年来,sentence-transformers 库因其在文本嵌入方面的卓越表现而受到广泛关注。本文将深入探讨 paraphrase-MiniLM-L6-v2 模型,这…...
2025最新软件测试面试大全(附答案+文档)
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里…...
Java语法进阶
目录: Object类、常用APICollection、泛型List、Set、数据结构、CollectionsMap与斗地主案例异常、线程线程、同步等待与唤醒案例、线程池、Lambda表达式File类、递归字节流、字符流缓冲流、转换流、序列化流、Files网络编程 十二、函数式接口Stream流、方法引用 一…...
UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK
UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK Neurips23 推荐指数:#paper/⭐⭐⭐#(工作量不小) 动机 在大多数分子表征学习方法中,分子被视为 1D 顺序标记或2D 拓扑图,这限制了它们为下游任务整合…...
笔记day7
文章目录 1 分页功能实现2 分页器的展示需要哪些数据(条件)?3 自定义分页器4 分页器存在问题5 分页器动态展示6 开发某一个商品的详情页面 1 分页功能实现 为什么很多项目采用分页功能,比如电商平台同时展示的数据有很多…...
106,【6】 buuctf web [SUCTF 2019]CheckIn
进入靶场 文件上传 老规矩,桌面有啥传啥 过滤了<? 寻找不含<?的一句话木马 文件名 123(2).php.jpg 文件内容 GIF89a? <script language"php">eval($_GET[123]);</script> 123即密码,可凭借个人喜好更换 再上传一个文…...
基于Ubuntu2404搭建Zabbix7.2
Zabbix 搭建zabbix zabbix7.2已推出:官网 增加的新功能如下: 1.使用新的热门商品小部件全面概览指标 数据概览小部件已转换为热门项目小部件使用项目模式可以实现细粒度的项目选择利用条形图、指标和迷你图来可视化您的数据定义价值阈值以动态地可视化…...
OPENGLPG第九版学习 - 着色器基础
文章目录 2.1 着色器与OpenGL2.2 0penGL的可编程管线2.3 OpenGL着色语言GLSL概述2.3.1 使用GLSL构建着色器变量的声明变量的作用域变量的初始化构造函数 、 类型转换聚合类型访问向量和矩阵中的元素结构体数组多维数组 2.3.2 存储限制符const 存储限制符in 存储限制符out 存储限…...
Android 使用ExpandableListView时,需要注意哪些细节
1. 布局属性设置 尺寸属性 宽度和高度:要合理设置 android:layout_width 和 android:layout_height 属性。如果设置为 match_parent,它会填满父容器;设置为 wrap_content,则会根据内容自动调整大小。例如,若想让 Exp…...
redis简介及应用
文章目录 1.redis简介2.安装配置2.1 单机部署2.2 配置 3 主从部署4 哨兵部署5.集群部署6.客户端工具 1.redis简介 某些网站出现的问题,如12306、淘宝等… 2.安装配置 2.1 单机部署 安装gcc、关闭防火墙、关闭selinux等 #安装gcc yum -y install gcc #关闭防火墙…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
