当前位置: 首页 > news >正文

Linux文件与路径

Linux文件与路径

1、文件结构

​ Windows和Linux文件系统区别

​ 在windows平台下,打开“此电脑”,我们可以看到盘符分区

在这里插入图片描述

​ 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形

​ 但是在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):

在这里插入图片描述

​ Centos没有盘符这个概念,只有一个根目录/,所有文件都在它下面

[root@localhost ~]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

​ 当我们输入ls / 可以查看更目录下的文件查看根目录下的系统文件

目录说明备注
bin存放普通用户可执行的指令即使在单用户模式下也能够执行处理
boot开机引导目录包括Linux内核文件与开机所需要的文件
dev设备目录所有的硬件设备及周边均放置在这个设备目录中
etc各种配置文件目录大部分配置属性均存放在这里
lib/lib64开机时常用的动态链接库bin及sbin指令也会调用对应的lib库
media可移除设备挂载目录类似软盘 U盘 光盘等临时挂放目录
mnt用户临时挂载其他的文件系统额外的设备可挂载在这里,相对临时而言
opt第三方软件安装目录现在习惯性的放置在/usr/local中
proc虚拟文件系统通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来
root系统管理员主目录除root之外,其他用户均放置在/home目录下
run系统运行是所需文件以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
sbin只有root才能运行的管理指令跟bin类似,但只属于root管理员
srv服务启动后需要访问的数据目录
sys跟proc一样虚拟文件系统记录核心系统硬件信息
tmp存放临时文件目录所有用户对该目录均可读写
usr应用程序放置目录
var存放系统执行过程经常改变的文件

​ 在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

​ 值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录 下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

2、基本概念

用户目录:位于 /home/user,称之为用户工作目录或家目录,表示方式:

# 在home有一个user  这里就是之前创建的msb123用户
[root@localhost ~]# cd /home
[root@localhost home]# ls
msb123# 使用~回到root目录,使用/是回到根目录下
[root@localhost msb123]# cd ~
[root@localhost ~]# 

登录信息

[root@localhost /]#Linux的bash解析器终端用来显示主机名和当前用户的标识;# root表示bai当前用户叫root(系统管理员账户)
# localhost表示当前使用的主机名叫localhost(没有设置系bai统名字的时候默认名称是localhost)
# / 表示你当前所处的目录位置 (这里的'/'表示你当前在根目录下)

相对路径和绝对路径

绝对路径

​ 从/目录开始描述的路径为绝对路径,如:

[root@localhost /]# cd /home/msb123
[root@localhost /]# ls /usr

相对路径

​ 从当前位置开始描述的路径为相对路径,如:

[root@localhost /]# cd ../../
[root@localhost /]# ls abc/def

. 和 …

​ 每个目录下都有**.…**

. 表示当前目录.. 表示上一级目录,即父目录

​ 例如这里切换路径时候

# 从 / 根目录切换到 home目录
[root@localhost /]# cd home# 确认路径/home
[root@localhost home]# pwd
/home# 切换到当前目录cd .  目录无变化
[root@localhost home]# cd .# 切换到当前目录cd ..  目录回到上一级根目录
[root@localhost home]# cd ..[root@localhost /]# 

(注意 根目录下的 . 和 … 都表示当前目录

文件权限

​ 文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。

​ Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。

​ 在 Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

访问用户

​ 通过设定权限可以从以下三种访问方式限制访问权限:

- 只允许用户自己访问(所有者) 所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。
- 允许一个预先指定的用户组中的用户访问(用户组) 用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。
- 允许系统中的任何用户访问(其他用户) 用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类

访问权限

​ 用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

- ​        读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
- ​        写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
- ​        可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

​ 注意:通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。

[root@localhost /]# ls -l
总用量 20
lrwxrwxrwx.   1 root root    7 831 15:48 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 831 15:58 boot
...

​ 我们来拆解结构,这里面我只列了根目录下的一部分内容

​ 用到 ls -l 命令查看当前文件夹下详细信息,具体的命令和参数,后面会深入讲解

​ 我们需要关注的是文件或目录的权限情况

l  rwx  rwx  rwx
d  r-x  r-x  r-x# 首先第一个字母 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
[ d ] 表示目录
[ l ] 表示为链接文档(link file)
[ - ] 表示为文件
[ b ] 表示为装置文件里面的可供储存的接口设备(可随机存取装置)
[ c ] 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)# 其次接下来的字符中,以三个为一组,且均为 [ rwx ] 的三个参数的组合
[ r ]代表可读(read)
[ w ]代表可写(write)
[ x ]代表可执行(execute)
[ - ]# 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。此时问题来了那么这三组一样是有什么区分尼?
# 这里就涉及到刚才所描述的访问用户权限
# 所有者    所有者表示该文件的所有者
# 用户组    表示当前用户再同一组
# 其他用户  允许系统中的任何用户访问,系统内的其他所有用户就是 other 用户类# 可以将这个权限进行类比,如我的篮球,
# 所有者表示的是我可以玩 
# 用户组表示,我可以借给我同班同学玩
# 其他用户表示,我可以借给其他班的同学玩

文件属主与属组

​ 对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

​ 同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

​ 文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

​ 因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

[root@localhost /]# ls -l
总用量 20
...
dr-xr-xr-x.   5 root root 4096 831 15:58 boot
...[root@localhost /]# cd /home
[root@localhost home]# ls -l
总用量 0
drwx------. 2 msb123 msb123 83 92 15:54 msb123# 在以上实例中,msb123 文件是一个目录文件,属主和属组都为 msb123,属主有可读、可写、可执行的权限;与属主同组的用户无权限读写执行;其他用户也无权限读写执行# 对于 root 用户来说,一般情况下,文件的权限对其不起作用。
3、基本命令信息

​ 熟悉一些入门的命令

​ 1、ls

ls 命令作用:Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。语法: ls   [-alrtAFR](选项)    [name...](参数)参数:-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) 示例如下:
[root@localhost ~]# ls -a
.  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .tcshrc-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出  示例如下:
[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root root 1437 831 15:54 anaconda-ks.cfg-r 将文件以相反次序显示(原定依英文字母次序) 示例如下:
[root@localhost ~]# ls -ra
.tcshrc  .cshrc  .bashrc  .bash_profile  .bash_logout  .bash_history  anaconda-ks.cfg  ..  .-t 将文件依建立时间之先后次序列出   示例如下:
[root@localhost ~]# ls -lt
总用量 4
-rw-------. 1 root root 1437 831 15:54 anaconda-ks.cfg-A-a ,但不列出 "." (目前目录)".." (父目录)   示例如下:
[root@localhost ~]# ls -A
anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .tcshrc-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"   示例如下:
[root@localhost ~]# ls -F /home
msb123/-R 若目录下有文件,则以下之文件亦皆依序列出  示例如下:
[root@localhost ~]# ls -R /home
/home:
msb123/home/msb123:
常用组合
[1]查看文件详情:ls -l 或 ll
[2]增强对文件大小易读性,以人类可读的形式显示文件大小: ls -lh
[3]对文件或者目录进行从大到小的排序: ls -lhs
[4]查看当前目录下的所有文件或者目录,包括隐藏文件: ls -la
[5]只查看当前目录下的目录文件: ls -d .
[6]按照时间顺序查看,从上到倒下时间越来越近: ls -ltr
[7]查看文件在对应的inode信息:ls -li

​ 2、cd

cd 命令作用:变换当前目录到dir。默认目录为home,可以使用绝对路径、或相对路径。语法:cd [dir](路径)# 跳到用户目录下
[root@localhost ~]# cd /home/msb123
[root@localhost msb123]# # 回到home目录
[root@localhost msb123]# cd ~
[root@localhost ~]# # 跳到上次所在目录
[root@localhost ~]# cd -
/home/msb123
[root@localhost msb123]## 跳到父目录(也可以直接使用 cd ..)
[root@localhost msb123]# cd ./..
[root@localhost home]# # 再次跳到上次所在目录
[root@localhost home]# cd -
/home/msb123
[root@localhost msb123]# # 跳到当前目录的上两层
[root@localhost msb123]# cd ../..
[root@localhost /]## 把上个命令的最后参数作为dir
这里我们先将文件夹cd 到python2.7路径
[root@localhost /]# cd /usr/include/python2.7/
[root@localhost python2.7]## 这里使用cd ./..参数作为引子
[root@localhost python2.7]# cd ./..# 这里我们使用命令,重复最后一个命令参数,直到回到了根目录
[root@localhost include]# cd !$
cd ./..
[root@localhost usr]# cd ./..
[root@localhost /]# 

3、pwd

pwd  命令作用:可立刻得知目前所在的工作目录的绝对路径名称语法:pwd [--help][--version]参数说明:
--help 在线帮助。
--version 显示版本信息。查看当前所在目录:
[root@localhost /]# cd /home
[root@localhost home]# pwd
/home
[root@localhost home]# 

相关文章:

Linux文件与路径

Linux文件与路径 1、文件结构 ​ Windows和Linux文件系统区别 ​ 在windows平台下,打开“此电脑”,我们可以看到盘符分区 ​ 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形 ​ 但是在 Linux 下,我们是看不到这些…...

【Qt】获取当前系统用户名:9种获取方式

目的 有时&#xff0c;在项目开发中&#xff0c;需要显示或者用到当前系统用户名信息。以下是几种获取系统用户名解决方案&#xff1a; 解决方案 1. 使用QDir::home() #include <QApplication> #include <QDir> #include <QDebug>int main(int argc, cha…...

ECMAScript2023你学习了吗?

一、ES2023 Features 【Array find from last】 从头到尾搜索数组&#xff1a;findLast() 、findLastIndex()【Hashbang Grammar】Hashbang 语法【Symbols as WeakMap keys】Symbol 作为 WeakMap 的键【Change array by copy】通过副本更改数组&#xff1a;toReversed()、toSo…...

【从删库到跑路 | MySQL总结篇】数据库基础(增删改查的基本操作)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】&#x1f388; 本专栏旨在分享学习MySQL的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 重点放前面&am…...

【JMeter】配置元件

1. 元件的分类 HTTP Request Default 作用&#xff1a; 可以配置成通用的信息&#xff0c;可复用 ​​​​​​​ JDBC Connection Configuration 作用&#xff1a;连接数据库 前提&#xff1a; 下载好对应数据类型的jar包 ​​​​​​​ HTTP Header Manager信息头管理…...

数据采集静态存储SRAM芯片EMI7064

数据采集是利用一种装置&#xff0c;从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛应用在各个领域。比如摄像头&#xff0c;麦克风&#xff0c;都是数据采集工具。 ram工作时可以随时从任何一个指定的地址写入(存入&#xff09;或读出(取出)信息。RAM在计算…...

网络运维与网络安全 学习笔记2023.11.27

网络运维与网络安全 学习笔记 第二十八天 今日目标 OSPF基本原理、OSPF单区域配置、OSPF多区域配置 特殊区域之Stub、特殊区域之NSSA OSPF基本原理 项目背景 随着企业的发展&#xff0c;网络的规模越来越大&#xff0c;网段的数量越来越多&#xff0c;公司内部的路由器的…...

ansible学习

一文掌握 Ansible 自动化运维 - 知乎 ansible的安装与简单的使用_坚持到所有人都放弃!!!的技术博客_51CTO博客 Ansible中文权威指南 — 国内最专业的Ansible中文官方学习手册 (ansible-tran.readthedocs.io) 安装 # yum -y install epel-release //更新本地安装库 # yu…...

使用Kibana让es集群形象起来

部署Elasticsearch集群详细步骤参考本人&#xff1a; https://blog.csdn.net/m0_59933574/article/details/134605073?spm1001.2014.3001.5502https://blog.csdn.net/m0_59933574/article/details/134605073?spm1001.2014.3001.5502 kibana部署 es集群设备 安装软件主机名…...

机器学习调参指南:提升模型性能的关键步骤

诸神缄默不语-个人CSDN博文目录 文章目录 1. 理解模型的参数和超参数2. 使用网格搜索进行超参数调优3. 随机搜索4. 贝叶斯优化5. 使用交叉验证避免过拟合6. 考虑正则化7. 调整学习率和其他优化器参数8. 实验和记录9. 模型的早停法10. 总结 在机器学习和深度学习的领域中&#x…...

图书管理系统源码,图书管理系统开发,图书借阅系统源码四TuShuManager应用程序MVC视图View

Asp.net web应用程序MVC之View视图 .ASP.NET MVC页面也就是要说的视图基本被放在Views文件夹下&#xff1b; 2.利用APS.NET MVC模板生成框架&#xff0c;Views文件夹下的默认页面为.cshtml页面&#xff1b; 3.ASP.NET MVC默认页面为Razor格式的页面&#xff0c;因此默认页面为.…...

Visual Studio2010保姆式安装教程(VS2010 旗舰版),以及如何运行第一个C语言程序,超详细

安装前请关闭杀毒软件&#xff0c;系统防火墙&#xff0c;断开网络连接 参考链接&#xff1a;请点击 下载链接&#xff1a; 通过百度网盘分享的文件&#xff1a;VS2010.zip 链接:https://pan.baidu.com/s/1yQUUCxMJP7FMaistFX94SQ 提取码:96ga 复制这段内容打开「百度网盘APP …...

第四节HarmonyOS 熟知开发工具DevEco Studio

一、设置主体样式 默认的代码主题样式是黑暗系的&#xff0c;如下图所示&#xff1a; 如果你不喜欢&#xff0c;可以按照一下步骤进行修改&#xff1a; 左上角点击Flie->Settings->Appearance&Behavior->Appearance&#xff0c;点击Theme&#xff0c;在弹出的下拉…...

安防视频监控/视频融合/云存储EasyCVR页面数据显示不全该如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...

vatee万腾的数字化奇点:Vatee科技的前沿创新之路

随着科技迅猛发展&#xff0c;Vatee万腾在数字化领域创造了引人注目的新迹。Vatee以其独特的数字化力量&#xff0c;引领着科技创新的前沿&#xff0c;为未来的数字化社会描绘着崭新的画卷。 Vatee的数字化力量体现在其对技术的深刻理解和前瞻性思维上。通过持续的技术探索和创…...

C#,《小白学程序》第六课:队列(Queue)其二,队列的应用,编写《实时叫号系统》

医院里面常见的《叫号系统》怎么实现的&#xff1f; 1 文本格式 /// <summary> /// 下面定义一个新的队列&#xff0c;用于演示《实时叫号系统》 /// </summary> Queue<Classmate> q2 new Queue<Classmate>(); /// <summary> /// 《小白学程序…...

打造数字人偶像的意义与影响

在数字化时代&#xff0c;数字人偶像的兴起引发了广泛的关注和讨论。数字人偶像是通过人工智能技术生成真人形象1&#xff1a;1还原的数字人&#xff0c;拥有偶像的外貌、声音和个性。本文将探讨为什么要打造数字人偶像以及其意义与影响。 技术支持&#xff1a;zhibo175 一、…...

Spring加载Bean的多种方式

文章目录 1. XML方式定义2. 使用Component ComponentScan3. 使用Configuration Bean4. 使用FactoryBean的方式加载bean5. Import方式6. Import ImportSelector7. Import ImportBeanDefinitionRegistrar8. 实现接口BeanDefinitionRegistryPostProcessor9. 实现接口BeanFacto…...

minio分布式存储系统

目录 拉取docker镜像 minio所需要的依赖 文件存放的位置 手动上传文件到minio中 工具类上传 yml配置 config类 service类 启动类 测试类 图片 视频 删除minio服务器的文件 下载minio服务器的文件 拉取docker镜像 拉取稳定版本:docker pull minio/minio:RELEASE.20…...

Kafka 如何保证消息消费的全局顺序性

哈喽大家好&#xff0c;我是咸鱼 今天我们继续来讲一讲 Kafka 当有消息被生产出来的时候&#xff0c;如果没有指定分区或者指定 key &#xff0c;那么消费会按照【轮询】的方式均匀地分配到所有可用分区中&#xff0c;但不一定按照分区顺序来分配 我们知道&#xff0c;在 Kaf…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...