返回

Linux 文件操作命令与基本知识 (一)

后端

探索 Linux 文件系统:文件结构、链接和权限

一、Linux 文件系统概述

1. 根目录:

想象一下 Linux 文件系统像一棵枝繁叶茂的大树,根目录就是这棵大树的树根。所有文件和目录都从根目录(用 "/" 表示)开始。根目录是文件系统的核心,包含了许多重要的目录,例如:

  • /bin: 存放常用命令,比如 ls、cp 和 mv。
  • /boot: 存放启动文件,在计算机启动时使用。
  • /dev: 存放设备文件,允许程序与硬件交互。
  • /etc: 存放系统配置文件,决定了系统的行为方式。
  • /home: 存放用户的主目录,包含他们的文件和设置。

2. 一切皆文件:

在 Linux 中,一切皆文件。这意味着目录、设备,甚至正在运行的进程都被视为文件。每个文件都有一个唯一的 inode,其中包含有关文件属性和内容位置的信息。

目录本质上也是文件,它们包含指向其他文件和目录的指针。设备文件是一种特殊类型的文件,允许程序与硬件设备进行交互。

3. 路径:

在文件系统中定位文件或目录时,我们使用称为路径的地址。绝对路径从根目录开始,而相对路径从当前工作目录开始。

要查看当前工作目录的绝对路径,可以使用 pwd 命令。要切换到另一个目录,可以使用 cd 命令,后跟目录名称。

二、硬链接与软链接

1. 硬链接:

想象一下硬链接就像文件或目录的副本。它与原始文件或目录指向同一个 inode。这意味着删除其中一个链接不会影响另一个链接。硬链接只能在同一文件系统中创建。

2. 软链接:

软链接与硬链接不同,它是指向另一个文件或目录的符号链接。与硬链接不同,软链接依赖于原始文件或目录的存在。如果原始文件或目录被删除,软链接将失效。软链接可以在不同的文件系统之间创建。

三、文件权限与属性

1. 文件权限:

文件权限控制谁可以读取、写入或执行文件。它分为三类:

  • 用户权限:文件所有者的权限。
  • 组权限:文件所属组的成员的权限。
  • 其他权限:不属于文件所有者或组的其他用户的权限。

文件权限可以通过 chmod 命令修改。

2. 文件属性:

文件属性提供有关文件的信息,例如文件类型、大小和上次修改时间。可以使用 ls -l 命令查看文件属性。文件属性可以通过 touch 命令修改。

四、Linux 目录简介

1. 目录结构:

Linux 目录结构是分层的,类似于一棵倒置的树。根目录位于顶部,其他目录按功能和用途分层排列。

一些最常见的目录包括:

  • /bin: 存放二进制可执行文件,用于执行命令。
  • /boot: 存放启动文件,在系统启动时使用。
  • /dev: 存放设备文件,允许程序与硬件交互。
  • /etc: 存放系统配置文件,控制系统行为。
  • /home: 存放用户的主目录,包含他们的文件和设置。
  • /lib: 存放共享库,包含应用程序运行所需的代码。
  • /media: 存放可移动媒体,例如 USB 驱动器和 CD-ROM 的挂载点。
  • /mnt: 存放临时挂载的目录,用于挂载其他文件系统。
  • /opt: 存放可选软件的安装目录。
  • /proc: 存放有关正在运行进程的信息。
  • /root: 存放系统管理员的主目录。
  • /sbin: 存放系统管理员命令,用于系统管理任务。
  • /srv: 存放服务数据,例如 Web 服务器或邮件服务器的数据。
  • /sys: 存放有关系统内核的信息。
  • /tmp: 存放临时文件,在系统重启时被删除。
  • /usr: 存放用户应用程序和数据,包括可执行文件、库和文档。
  • /var: 存放可变数据,例如日志文件、缓存和数据库。

2. 目录命令:

可以使用以下命令管理目录:

  • ls:列出目录中的文件和子目录。
  • cd:更改当前工作目录。
  • pwd:显示当前工作目录的绝对路径。
  • mkdir:创建新目录。
  • rmdir:删除空目录。
  • rm:删除文件或目录(请小心使用)。

结论

Linux 文件系统是一个复杂但强大的系统,了解它的基础知识对于有效使用 Linux 操作系统至关重要。通过理解文件结构、链接、权限和目录,您可以轻松地在 Linux 中查找、管理和操作文件。

常见问题解答

  1. 如何创建硬链接?

    ln file1 file2
    
  2. 如何创建软链接?

    ln -s file1 file2
    
  3. 如何查看文件权限?

    ls -l file
    
  4. 如何修改文件权限?

    chmod ugo+rwx file
    
  5. 如何创建新目录?

    mkdir directory_name