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文件类型和根目录结构_第1张图片

  • 主要目录及其用途:

目录 用途
/ Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录
/boot 存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动
/bin 存放基本的二进制可执行文件,这些文件对于系统的基本运行和恢复是至关重要的。
/sbin 包含系统管理相关的二进制可执行文件。
/lib 是库(library)英文缩写,存放系统的各种库文件
/lib64 存放系统本身需要用到64位程序的共享函数库(library)
/usr 一般用户程序安装所在的目录,用于安装各种应用程序
/opt 该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、CorelWordPerfect,这可避免将文件分散至整个文件系统。
/user 包含用户相关的程序和文件,是一个非常重要的目录。
/etc 存放系统配置文件。
/var 存放可变数据,如日志文件、邮件队列、打印队列等。
/run 保存自系统启动以来描述系统信息的文件
/home 每个用户在这个目录下都有一个自己的主目录,用于存放用户的个人文件和设置。
/root 管理员用户(root)的主目录。
/mnt和/media 以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点
/tmp 用来存放不同程序执行时产生的临时文件
/srv srv 是服务(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 .

你可能感兴趣的:(Linux学习笔记,linux,运维,服务器)