返回文章列表

文件相关的说明

本文档涵盖了 Linux(特别是 Ubuntu)系统管理的多个核心概念。首先介绍了软件包管理,包括 apt 工具的工作原理、官方软件源与 PPA 的区别,以及如何更换国内镜像源以加速下载。其次讲解了用户权限管理命令 sudo 和 su,用于执行超级用户任务和切换用户。最后深入剖析了 Linux 文件系统,详细说明了 FHS 目录标准、绝对与相对路径、文件元信息与权限表示法(rwx 及数字表示)、索引节点(Inode)概念,以及用户账户信息文件 /etc/passwd 的结构。

Tyverse
10 分钟阅读
2 次阅读
最后编辑于 2026-06-23 09:31
文件相关的说明

1. Linux文件系统层级标准 (FHS)

Linux遵循文件系统层级标准(Filesystem Hierarchy Standard, FHS),它定义了主要目录的用途,确保了不同Linux发行版之间的一致性。

目录全称/别名核心作用
/root根目录,文件系统的顶级起点。
/root-超级用户(root)的主目录。
/home-普通用户的个人主目录,每个用户在此目录下拥有自己的子目录。
/binBinaries存放所有用户(包括普通用户)都可使用的基本可执行命令(如 ls, cp)。
/sbinSystem Binaries存放只有系统管理员(root)才能使用的系统管理命令(如 ifconfig, reboot)。
/lib, /lib64Libraries存放系统和应用程序所需的共享库文件。
/usrUnix System Resources存放用户安装的应用程序、文档和库文件,是系统中最大的目录之一。
/etcEtcetera存放系统及应用程序的全局配置文件。
/varVariable存放经常变化的文件,如日志文件 (/var/log)、缓存等。
/tmpTemporary存放临时文件,系统重启后通常会清空此目录。
/devDevices存放硬件设备对应的设备文件,Linux将硬件抽象为文件进行访问。
/mntMount临时手动挂载文件系统的挂载点。
/media-可移动介质(如U盘、光驱)的自动挂载点。
/optOptional用于存放第三方可选的、大型的软件包。
/boot-存放Linux内核及系统启动过程中所需的文件。
/procProcesses一个虚拟文件系统,存放系统内核和进程的实时信息,内容在内存中。

2. 文件路径 (Path)

路径是用于定位文件系统中文件或目录的字符串。

  • 绝对路径 (Absolute Path)

    • 从根目录 / 开始的完整路径。
    • 示例: /home/user/documents/report.txt
  • 相对路径 (Relative Path)

    • 从当前工作目录开始的路径,不以 / 开头。
    • 示例: 如果当前在 /home/user,则 documents/report.txt 指向与上面相同的文件。

2.1 特殊路径字符

字符含义示例
.表示当前目录 (Current Directory)。./script.sh
..表示上一级目录(父目录, Parent Directory)。cd ../
~表示当前登录用户的主目录 (Home Directory)。cd ~/documents
/路径分隔符,以及根目录的标识。/home/user
*通配符:匹配0个或多个任意字符。ls *.txt
?通配符:匹配正好1个任意字符。ls file?.log

注意:路径分隔符在 UNIX/Linux 系统中是正斜杠 /,而在 Windows 系统中是反斜杠 \

3. 文件元信息 (Metadata) 与 ls -l 详解

ls -l 命令可以显示文件的详细元信息,这些信息存储在文件的索引节点 (Inode) 中。

示例输出:

code
-rwxr-xr-- 1 user staff 4096 Jul 31 10:30 my_script.sh
drwxr-xr-x 2 user staff 4096 Aug 01 12:00 my_folder

下面逐列解析其含义:

3.1 第一列:文件类型与权限

这一列共10个字符,第一个字符表示文件类型,后面九个字符表示文件权限

  • 文件类型:
字符类型描述
-普通文件(Regular File) 如文本、二进制程序。
d目录(Directory)
l符号链接(Symbolic Link) 指向另一个文件或目录。
c字符设备文件(Character Device) 如终端、串口。
b块设备文件(Block Device) 如硬盘、U盘。
s套接字文件(Socket) 用于进程间网络通信。
p命名管道文件(Pipe / FIFO) 用于进程间通信。
  • 文件权限 (字符表示法): 后面9个字符,每3个为一组,分别代表 所有者 (User)所属组 (Group)其他用户 (Others) 的权限。
权限字符含义文件的作用目录的作用
r读 (Read)可读取文件内容。可读取目录中的文件名列表,通常需要配合 x 才能正常 ls
w写 (Write)可修改文件内容。可修改目录项,如创建、删除、重命名文件,通常需要配合 x
x执行 (Execute)可作为程序运行。可进入 (cd) 该目录,或访问目录中的已知文件。
-无权限--

示例: rwxr-xr-- - rwx: 所有者 拥有读、写、执行权限。 - r-x: 所属组 拥有读、执行权限,但没有写权限。 - r--: 其他用户 仅拥有读权限。

文件权限 (数字表示法 - Octal Notation) 这是 chmod 命令常用的权限表示方法。每种权限用一个数字代表: - r (读) = 4 (二进制 100) - w (写) = 2 (二进制 010) - x (执行) = 1 (二进制 001)

一组权限(如 rwx)的数字是其包含权限的数字之和。

数字权限组合 (rwx)二进制描述
7rwx111读、写、执行 (4+2+1)
6rw-110读、写 (4+2)
5r-x101读、执行 (4+1)
4r--100只读 (4)
3-wx011写、执行 (2+1)
2-w-010只写 (2)
1--x001只执行 (1)
0---000无任何权限

常用权限组合示例:

  • chmod 755 my_script.sh
    • 7 (所有者): rwx
    • 5 (所属组): r-x
    • 5 (其他人): r-x
    • 含义: 脚本所有者可读可写可执行,其他人只能读取和执行。通常用于可执行脚本和程序。
  • chmod 644 config.txt
    • 6 (所有者): rw-
    • 4 (所属组): r--
    • 4 (其他人): r--
    • 含义: 文件所有者可读可写,其他人只能读取。通常用于普通文本文件。
  • chmod 777 temporary_folder
    • 含义: 所有人都有读、写、执行权限。安全风险高,请谨慎使用!

3.2 其他列的含义

名称描述
2硬链接数指向此文件Inode的硬链接数量。对于目录,是其包含的子目录数量+2(...)。
3所有者 (Owner)拥有此文件的用户。
4所属组 (Group)拥有此文件的用户组。
5文件大小 (Size)文件内容的大小,单位是字节(Byte)。
6-8最后修改时间文件内容最后一次被修改的时间。
9文件名/目录名文件的名称。如果为符号链接,会显示 link_name -> target_path

4. 文件构成:索引节点 (Inode) 与数据块 (Data Block)

在Linux文件系统中,一个文件由两部分组成:

  1. 索引节点 (Inode):

    • 存储文件的元信息,如:文件类型、权限、所有者、大小、时间戳、硬链接数以及指向数据块的指针。
    • 不包含文件名。文件名存储在目录文件的数据块中,与Inode编号对应。
  2. 数据块 (Data Block):

    • 实际存储文件内容的地方。

这种分离设计使得文件可以有多个名字(硬链接),并且可以高效地获取文件属性而无需读取文件内容。

5. 用户账户信息 (/etc/passwd)

该文件存储系统用户的基本信息,每行代表一个用户,字段之间用冒号 (:) 分隔。

格式: username:password:UID:GID:GECOS:home_directory:shell

  1. 用户名: 登录时使用的名称。
  2. 密码占位符: x 表示密码被加密并存储在 /etc/shadow 文件中。
  3. 用户ID (UID): 用户的唯一数字标识。0 代表root用户,1-999 通常为系统用户,1000+ 为普通用户。
  4. 组ID (GID): 用户所属主组的ID。
  5. 用户信息 (GECOS): 用户的描述信息,如全名、电话等。
  6. 主目录: 用户登录后默认所在的目录路径。
  7. 登录Shell: 用户登录后启动的命令解释器程序,如 /bin/bash

发表评论

未登录评论需提供昵称和联系邮箱,提交后默认进入审核。

0/1000