Linux基础(五):linux目录配置

news2024/11/23 19:41:30

1.Linux系统目录

不同的Linux发布版本的目录都是类似的,这是因为Linux系统的目录配置有一个大概的标准——Filesystem Hierarchy Standard( FHS)。FHS规定了目录有4种交互形态:
①可分享的: 可以分享给其他系统挂载使用的目录, 所以包括可执行文件与使用者的邮件等数据, 是能够分享给网络上其他主机挂载用的目录
②不可分享的: 自己机器上面运行的设备文件或者是与程序有关的socket文件等, 由于仅与自身机器有关, 所以当然就不适合分享给其他主机了
③不变的:有些数据是不会经常变动的, 跟随着distribution而不变动。 例如函数库、 文件说明文档、 系统管理员所管理的主机服务配置文件等等
④可变动的: 经常改变的数据, 例如登录文件、 一般用户可自行收受的新闻群组等
FHS只对三个目录做出了规定:
①/ ( root, 根目录) : 与开机系统有关
②/usr ( unix software resource) : 与软件安装/执行有关(注意usr并不是用户的意思
③/var ( variable) : 与系统运行过程有关
Tips:其中/usr和/var是包含在/中的。

首先看一下CentOS7的根目录结构:

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

下面介绍各个目录的含义:
(1)/bin
系统有很多放置可执行文件的目录, 但/bin比较特殊。 因为/bin放置的是在单人维护模式下还能够被操作的指令。 在/bin下面的指令可以被root与一般帐号所使用, 主要有: cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。
单人维护模式(Single-User Mode)是 Linux 和 Unix 系统中的一种特殊运行模式,用于系统维护和故障排查。在这种模式下,系统不会启动所有的服务和多用户环境,而是只加载最基本的服务和功能,提供一个只有管理员(通常是 root 用户)可以访问的单用户环境。
(2)/dev
在Linux系统上, 任何设备与周边设备都是以文件的型态存在于这个目录当中的。 你只要通过存取这个目录下面的某个文件, 就等于存取某个设备。 比较要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/loop, /dev/sd等等。
(3)/home
这是系统默认的使用者主文件夹( home directory) 。 在你新增一个一般使用者帐号时, 默认的使用者主文件夹都会规范到这里来。 比较重要的是,主文件夹有两种代号喔:
①~: 代表目前这个使用者的主文件夹
②~dmtsai : 则代表 dmtsai 的主文件夹

[fle@CentOS7 ~]$ su
密码:
[root@CentOS7 fle]# cd /
[root@CentOS7 /]# cd ~
[root@CentOS7 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg
[root@CentOS7 ~]# cd ~fle
[root@CentOS7 fle]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面

(4)/lib64
用来存放与 /lib 不同的格式的二进制函数库, 例如支持 64 位的 /lib64 函数库等。
(5) /mnt
如果你想要暂时挂载某些额外的设备, 一般建议你可以放置到这个目录中。在古早时候, 这个目录的用途与/media相同啦! 只是有了/media之后, 这个目录就用来暂时挂载用了。
(6) /proc
/proc 目录是 Linux 系统中的一个虚拟文件系统,用来提供有关运行中的进程和系统状态的信息。它不是存储在硬盘上的实际文件系统,而是一个内存中的虚拟文件系统,其内容是由内核动态生成的。通过 /proc,用户和系统管理员可以查看内核和进程的运行时信息,并与之进行交互。这个目录本身是一个“虚拟文件系统( virtual filesystem) ”喔! 他放置的数据都是在内存当中, 例如系统核心、 行程信息( process) 、 周边设备的状态及网络状态等等。 因为这个目录下的数据都是在内存当中, 所以本身不占任何硬盘空间啊! 比较重要的文件例如: /proc/cpuinfo, /proc/dma,/proc/interrupts, /proc/ioports, /proc/net/* 等等。
(7) /run
早期的 FHS 规定系统开机后所产生的各项信息应该要放置到 /var/run 目录下, 新版的 FHS 则规范到 /run 下面。 由于 /run 可以使用内存来仿真, 因此性能上会好很多!
(8) /srv
srv可以视为“service”的缩写, 是一些网络服务启动之后, 这些服务所需要取用的数据目录。 常见的服务例如WWW, FTP等等。 举例来说, WWW服务器需要的网页数据就可以放置在/srv/www/里面。 不过, 系统的服务数据如果尚未要提供给网际网络任何人浏览的话, 默认还是建议放置到 /var/lib下面即可。
(9) /tmp
这是让一般使用者或者是正在执行的程序暂时放置文件的地方。 这个目录是任何人都能够存取的, 所以你需要定期的清理一下。 当然, 重要数据不可放置在此目录啊! 因为FHS甚至建议在开机时, 应该要将/tmp下的数据都删除唷
(10) /var
如果/usr是安装时会占用较大硬盘容量的目录, 那么/var就是在系统运行后才会渐渐占用硬盘容量的目录。 因为/var目录主要针对常态性变动的文件, 包括高速缓存( cache) 、 登录文件( log file) 以及某些软件运行所产生的文件, 包括程序文件( lock file, run file) , 或者例如MySQL数据库的文件等等。一般包含的目录如下:
①/var/cache/
应用程序本身运行过程中会产生的一些暂存盘;
②/var/lib/
程序本身执行的过程中, 需要使用到的数据文件放置的目录。 在此目录下各自的软件应该要有各自的目录。 举例来说, MySQL的数据库放置到/var/lib/mysql/而rpm的数据库则放到/var/lib/rpm去!
③/var/lock/
某些设备或者是文件资源一次只能被一个应用程序所使用, 如果同时有两个程序使用该设备时, 就可能产生一些错误的状况, 因此就得要将该设备上锁( lock) , 以确保该设备只会给单一软件所使用。 举例来说, 烧录机正在烧录一块光盘, 你想一下, 会不会有两个人同时在使用一个烧录机烧片? 如果两个人同时烧录, 那片子写入的是谁的数据? 所以当第一个人在烧录时该烧录机就会被上锁, 第二个人就得要该设备被解除锁定( 就是前一个人用完了) 才能够继续使用啰。 目前此目录也已经挪到 /run/lock 中!
④/var/log/
重要到不行! 这是登录文件放置的目录! 里面比较重要的文件如/var/log/messages, /var/log/wtmp( 记录登陆者的信息) 等。
⑤/var/mail/
放置个人电子邮件信箱的目录, 不过这个目录也被放置到/var/spool/mail/目录中! 通常这两个目录是互为链接文件啦!
⑥/var/run/
某些程序或者是服务启动后, 会将他们的PID放置在这个目录下喔! 至于PID的意义我们会在后续章节提到的。 与 /run 相同, 这个目录链接到 /run去了!
⑦/var/spool/
这个目录通常放置一些伫列数据, 所谓的“伫列”就是排队等待其他程序使用的数据啦! 这些数据被使用后通常都会被删除。 举例来说, 系统收到新信会放置到/var/spool/mail/中, 但使用者收下该信件后该封信原则上就会被删除。 信件如果暂时寄不出去会被放到/var/spool/mqueue/中, 等到被送出后就被删除。 如果是工作调度数据( crontab) , 就会被放置到/var/spool/cron/目录中!

(11) /boot
这个目录主要在放置开机会使用到的文件, 包括Linux核心文件以及开机菜单与开机所需配置文件等等。 Linux kernel常用的文件名为: vmlinuz, 如果使用的是grub2这个开机管理程序, 则还会存在/boot/grub2/这个目录喔。

[root@CentOS7 tmp]# cd /boot
[root@CentOS7 boot]# ls
config-3.10.0-1160.el7.x86_64
efi
extlinux
grub
grub2
initramfs-0-rescue-7bc5fdb34bf34ec2b918a46825779cfc.img
initramfs-3.10.0-1160.el7.x86_64.img
symvers-3.10.0-1160.el7.x86_64.gz
System.map-3.10.0-1160.el7.x86_64
vmlinuz-0-rescue-7bc5fdb34bf34ec2b918a46825779cfc
vmlinuz-3.10.0-1160.el7.x86_64

(12) /etc
系统主要的配置文件几乎都放置在这个目录内, 例如人员的帐号密码档、各种服务的启始档等等。 一般来说, 这个目录下的各文件属性是可以让一般使用者查阅的, 但是只有root有权力修改。 FHS建议不要放置可可执行文件( binary) 在这个目录中喔。 比较重要的文件有: /etc/modprobe.d/,/etc/passwd, /etc/fstab, /etc/issue 等等。 另外 FHS 还规范几个重要的目录(最好要存在 /etc/ 目录下):
①/etc/opt( 必要) : 这个目录在放置第三方协力软件 /opt 的相关配置文件。
②/etc/X11/( 建议) : 与 X Window 有关的各种配置文件都在这里, 尤其是 xorg.conf 这个 X Server 的配置文件。
③/etc/sgml/( 建议) : 与 SGML 格式有关的各项配置文件 /etc/xml/( 建议) : 与 XML格式有关的各项配置文件。
(13) /lib
系统的函数库非常的多, 而/lib放置的则是在开机时会用到的函数库, 以及在/bin或/sbin下面的指令会调用的函数库而已。 什么是函数库呢? 你可以将他想成是“外挂”, 某些指令必须要有这些“外挂”才能够顺利完成程序的执行之意。 另外 FSH 还要求下面的目录必须要存在: /lib/modules/: 这个目录主要放置可抽换式的核心相关模块( 驱动程序) 喔。
(14) /media
media是“媒体”的英文, 顾名思义, 这个/media下面放置的就是可移除的设备啦! 包括软盘、 光盘、 DVD等等设备都暂时挂载于此。 常见的文件名有: /media/floppy, /media/cdrom等等。
(15) /opt
这个是给第三方协力软件放置的目录。 什么是第三方协力软件啊? 举例来说, KDE这个桌面管理系统是一个独立的计划, 不过他可以安装到Linux系统中, 因此KDE的软件就建议放置到此目录下了。 另外, 如果你想要自行安装额外的软件( 非原本的distribution提供的) , 那么也能够将你的软件安装到这里来。 不过, 以前的Linux系统中, 我们还是习惯放置在/usr/local目录下呢!
(16) sbin
在这里插入图片描述
(17)sys
这个目录其实跟/proc非常类似, 也是一个虚拟的文件系统, 主要也是记录核心与系统硬件信息较相关的信息。 包括目前已载入的核心模块与核心侦测到的硬件设备信息等等。 这个目录同样不占硬盘容量喔
(18)usr
早期 Linux 在设计的时候, 若发生问题时, 救援模式通常仅挂载根目录而已, 因此有五个重要的目录被要求一定要与根目录放置在一起, 那就是 /etc, /bin, /dev, /lib, /sbin 这五个重要目录。 现在许多的 Linux distributions 由于已经将许多非必要的文件移出 /usr 之外了, 所以
/usr 也是越来越精简, 同时因为 /usr 被建议为“即使挂载成为只读, 系统还是可以正常运行”的模样, 所以救援模式也能同时挂载 /usr 喔! 例如我们的这个 CentOS 7.x 版本在救援模式的情况下就是这样。 因此那个五大目录的限制已经被打破了呦! 例如 CentOS 7.x 就已经将
/sbin, /bin, /lib 通通移动到 /usr 下面了哩!

[fle@CentOS7 bin]$ cd /
[fle@CentOS7 /]$ ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
[fle@CentOS7 /]$ cd usr
[fle@CentOS7 usr]$ ls
bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp

从上面可以看到,/目录下是有bin、sbin、lib、lib64的,而/usr目录下也是有bin、sbin、lib、lib64,这四个目录其实是链接目录。(在一些现代 Linux 系统中,/bin 和 /usr/bin 目录被相互链接的意思是,系统通过创建一个符号链接(Symbolic Link),将其中一个目录链接到另一个目录。这意味着它们实际上指向同一个物理位置,用户访问 /bin 和 /usr/bin 时,看到的是同一套命令和文件。)
注意,/etc 、/tmp和/usr/etc 、/usr/tmp并不一样。
/usr的一些目录如下所示:
①/usr/bin/
所有一般用户能够使用的指令都放在这里! 目前新的 CentOS 7 已经将全部的使用者指令放置于此, 而使用链接文件的方式将 /bin 链接至此!也就是说, /usr/bin 与 /bin 是一模一样了! 另外, FHS 要求在此目录下不应该有子目录!
②/usr/lib/
基本上, 与 /lib 功能相同, 所以 /lib 就是链接到此目录中的!
③/usr/local/
系统管理员在本机自行安装自己下载的软件( 非distribution默认提供者) , 建议安装到此目录, 这样会比较便于管理。 举例来说, 你的
distribution提供的软件较旧, 你想安装较新的软件但又不想移除旧版,此时你可以将新版软件安装于/usr/local/目录下, 可与原先的旧版软件有分别啦! 你可以自行到/usr/local去看看, 该目录下也是具有bin, etc,include, lib…的次目录喔!
④/usr/sbin/
非系统正常运行所需要的系统指令。 最常见的就是某些网络服务器软件的服务指令( daemon) 啰! 不过基本功能与 /sbin 也差不多, 因此目前 /sbin 就是链接到此目录中的。
⑤/usr/share/
主要放置只读架构的数据文件, 当然也包括共享文件。 在这个目录下放置的数据几乎是不分硬件架构均可读取的数据, 因为几乎都是文字文件嘛! 在此目录下常见的还有这些次目录:
/usr/share/man: 线上说明文档
/usr/share/doc: 软件杂项的文件说明
/usr/share/zoneinfo: 与时区有关的时区文件
⑥/usr/games/
与游戏比较相关的数据放置处
⑦/usr/include/
c/c++等程序语言的文件开始( header) 与包含档( include) 放置处,当我们以tarball方式 ( *.tar.gz 的方式安装软件) 安装某些数据时, 会使用到里头的许多包含档喔!
⑧/usr/libexec/
某些不被一般使用者惯用的可执行文件或脚本( script) 等等, 都会放置在此目录中。 例如大部分的 X 窗口下面的操作指令, 很多都是放在此目录下的。
⑨/usr/lib< qual>/
与 /lib< qual>/功能相同, 因此目前 /lib< qual> 就是链接到此目录中
⑩/usr/src/
一般源代码建议放置到这里, src有source的意思。 至于核心源代码则建议放置到/usr/src/linux/目录下。

链接的目录总结:
在这里插入图片描述
将CentOS7的目录结构总结为下图:
在这里插入图片描述

2.绝对路径与相对路径

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【优选算法】(第三十五篇)

目录 验证栈序列&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 N叉树的层序遍历&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 验证栈序列&#xff08;medium&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&#xff08;L…

校园网网页认证设备限制环境下基于OpenWRT的路由器选型与解决方案

校园网环境下基于OpenWRT的路由器选型与解决方案 网页认证(锐捷认证)解除校园网设备限制,路由器选型和解决方案 openwrt 我们学校校园网一个账号只能登录两台设备&#xff0c;多了直接就退出联网状态&#xff0c;然后校园网是基于锐捷认证进行认证的&#xff0c;然后通过ment…

【closerAI ComfyUI】爹妈都认不出的美女模糊照片,这个高清放大模型竟然能还原出来!这个AI模型我给满分

兄弟们&#xff0c;太离谱了&#xff0c;大家都知道FLUX模型的牛逼&#xff0c;现在基于FLUX的生态越发成熟&#xff0c;但一张模糊到五官都不能辨认的图片&#xff0c;通过AI模型的计算&#xff0c;竟然能还原出来。当然&#xff0c;这里我们的测试是过于极端。一般模糊一点的…

SpringCloud网关聚合knife4j方案

微服务开发中想将Spring-Cloud-Gateway网关聚合knife4j&#xff0c;形成一个统一入口方便查阅的开发辅助接口文档&#xff0c;并且将Swagger抽取成一个公共模块&#xff0c;那么我们可以参考以下的做法 约定&#xff1a; Java Version&#xff1a;11.0.24 Spring Boot&#xff…

一探究竟:全能型人体存在传感器如何革新全屋智能生活

如今&#xff0c;全屋智能家居已蔚然成风&#xff0c;亲历过个性化智能家居配置的用户无不深知传感器在其联动逻辑中扮演的关键角色。市场上主流的传感器类型多为移动监测型&#xff0c;此类设备通过探测区域内是否存在人员活动来触发相应的自动化操作。尽管它们在众多应用场景…

实用软件分享

文章路径 Pfolg_Source/实用软件记录.md at main Pfolg/Pfolg_Source (github.com)https://github.com/Pfolg/Pfolg_Source/blob/main/%E5%AE%9E%E7%94%A8%E8%BD%AF%E4%BB%B6%E8%AE%B0%E5%BD%95.md 注 这篇文章水的不得了&#xff0c;但我花了半小时来水……

谷歌-BERT-第四步:模型部署

1 需求 需求1&#xff1a;基于gradio实现大模型的WEB UI交互界面 2 接口 3 示例 import gradio as gr from transformers import *classifier pipeline("text-classification", model"./model", tokenizer"./model")gr.Interface.from_pipel…

c++(多态)

多态的定义 多态是⼀个继承关系的下的类对象&#xff0c;去调⽤同⼀函数&#xff0c;产⽣了不同的⾏为 ⽐如Student继承了Person。Person对象买票全价&#xff0c;Student对象优惠买票。 多态实现的条件 • 必须指针或者引⽤调⽤虚函数 第⼀必须是基类的指针或引⽤&#xff0c;…

【HarmonyOS NEXT】实现二个直角梯形按钮,拼接为矩形,斜边可以点击

【问题描述】 实现二个直角梯形按钮两梯形的斜边&#xff0c;对接再一起&#xff0c;组成一个矩形斜边附近的区域能点击 【原型图】 【方案】 canvas——斜边附近的区域无法点击Shape——斜边附近的区域无法点击clipShape——完美解决 【代码】 Entry Component struct …

Spring Task 使用详解

在应用开发中&#xff0c;定时任务扮演着至关重要的角色&#xff0c;例如定时数据同步、定时邮件发送、定时清理缓存等。Spring Framework 提供了一个强大而灵活的定时任务框架——Spring Task&#xff0c;它可以帮助我们轻松地实现各种定时任务&#xff0c;而无需依赖复杂的第…

光影魔术手 0.1.5 | 免费的修图神器,支持AI智能美颜、证件照制作等功能

光影魔术手是一款完全免费的修图软件、AI智能调色软件、证件照制作软件。支持的功能包括&#xff1a;AI智能美颜、AI人脸变清晰、AI智能调色、AI滤镜、拼图、证件照制作、图片裁剪。证件照制作功能提供了丰富的证件照尺寸&#xff0c;支持7种背景颜色切换。拼图功能支持横向长图…

XXl-JOB 安装使用,服务注册

一、下载源码 xxl-job源码地址&#xff1a; GitHub - xuxueli/xxl-job: A distributed task scheduling framework.&#xff08;分布式任务调度平台XXL-JOB&#xff09; 2.4.2版本为例&#xff1a;https://github.com/xuxueli/xxl-job/archive/refs/tags/2.4.1.tar.gz xx…

2013年国赛高教杯数学建模C题古塔的变形解题全过程文档及程序

2013年国赛高教杯数学建模 C题 古塔的变形 由于长时间承受自重、气温、风力等各种作用&#xff0c;偶然还要受地震、飓风的影响&#xff0c;古塔会产生各种变形&#xff0c;诸如倾斜、弯曲、扭曲等。为保护古塔&#xff0c;文物部门需适时对古塔进行观测&#xff0c;了解各种变…

【交通标志识别系统】Python+卷积神经网络算法+人工智能+深度学习+机器学习+算法模型

一、介绍 交通标志识别系统。本系统使用Python作为主要编程语言&#xff0c;在交通标志图像识别功能实现中&#xff0c;基于TensorFlow搭建卷积神经网络算法模型&#xff0c;通过对收集到的58种常见的交通标志图像作为数据集&#xff0c;进行迭代训练最后得到一个识别精度较高…

C语言中的文件操作(一)

目录 一、为什么要使用文件 二、什么是文件 1、程序文件 2、数据文件 文件名 三、文件打开和关闭 1、文件指针 2、文件打开关闭 &#xff08;1&#xff09;fopen 打开 &#xff08;2&#xff09;fclose 关闭文件 &#xff08;3&#xff09;路径 1.绝对路径 2.相对路…

子网掩码、网络地址、广播地址、子网划分及计算

1. IPV4地址分类及组成 IP地址网络地址主机地址&#xff0c;&#xff08;又称&#xff1a;主机号和网络号&#xff09; 由上图可见网络号和主机号之和是32&#xff0c;而且此多彼少。 例&#xff1a;IP地址为192.168.2.131&#xff0c;转换成二进制1111 1111.1010 1000.0000 00…

编译原理——扫描器设计与实现

非常详细&#xff08;包括跳过注释部分&#xff09;&#xff0c;不多说直接上代码&#xff08;结合代码讲解&#xff09; #include<bits/stdc.h>using namespace std;#define ARRAY_LENGTH(arr) (sizeof(arr) / sizeof(arr[0]))//关键词集合 string KEY_WORD[] {"…

vue+ant解决弹窗可以拖动的问题

通过自定义指令实现拖拽功能 在main.js里加入drag自定义指令 Vue.directive(drag, {bind(el) {// 获取弹窗头部const header el.querySelector(.ant-modal-header)const modal el.querySelector(.ant-modal)// 弹窗头部鼠标变为移动header.style.cursor move// 头部鼠标按…

心觉:别再让你的精力流浪,精准掌控每一刻

Hi&#xff0c;我是心觉&#xff0c;与你一起玩转潜意识、脑波音乐和吸引力法则&#xff0c;轻松掌控自己的人生&#xff01; 挑战每日一省写作197/1000天 昨天写了一篇文章心觉&#xff1a;生理欲望转化的奥秘&#xff1a;提升创造力的法则 核心观点是来自于拿破仑希尔的《…

ICML 2024 | 牛津提出合作图神经网络Co-GNNs,更灵活的消息传递新范式

引用次数:9 引用格式:Finkelshtein B, Huang X, Bronstein M, et al. Cooperative graph neural networks[J]. arXiv preprint arXiv:2310.01267, 2023. 一、摘要 本文提出了一种训练图神经网络的新框架“合作图神经网络”(Co-GNNs),其中每一个节点可以被看作一个独立的玩…