Linux 文件基本属性学习笔记

在 Linux 系统中,每个文件都有一套基本属性,这些属性决定了该文件的访问权限、所有者以及其他与文件相关的信息。本文将介绍 Linux 文件的基本属性,并提供一些实例来说明如何使用它们。

文件类型

Linux 中的文件可以是以下类型之一:

  • 普通文件(Regular file):包含文本、图像、程序等数据。
  • 目录(Directory):包含其他文件或目录。
  • 符号链接(Symbolic link):指向另一个文件或目录。
  • 设备文件(Device file):表示系统硬件设备,例如磁盘驱动器、打印机、串行端口等。
  • 命名管道(Named pipe):用于在进程间传输数据。
  • 套接字(Socket):用于在网络上进行通信。
  • 字符设备文件(Character device file):与块设备文件类似,但是以字符为单位进行操作。

要查看一个文件的类型,请使用 ls -l 命令。该命令的输出中的第一个字符标识了文件的类型。例如,如果一个文件以 -rw-r--r-- 开头,则它是一个普通文件。如果一个文件以 d 开头,则它是一个目录。

文件权限

每个文件都有一组权限,用于确定谁可以读取、写入或执行该文件。文件权限分为三个类别:所有者权限、组权限和其他用户权限。每个类别都包括读取(r)、写入(w)和执行(x)的权限。

要查看一个文件的权限,请使用 ls -l 命令。第一列的后九个字符表示文件的权限,其中前三个字符是所有者权限,中间三个字符是组权限,最后三个字符是其他用户权限。

例如,如果一个文件的权限为 -rw-r--r--,则所有者可以读取和写入该文件,但不能执行它;组成员可以读取该文件,但不能写入或执行它;其他用户也只能读取该文件,不能写入或执行它。

要更改文件的权限,请使用 chmod 命令。该命令接受一个数字参数,表示新的权限设置。例如,如果您想将文件的权限设置为 -rwxr-x---,请使用以下命令:

Copy Code
chmod 750 file.txt

文件所有者和组

每个文件都有一个所有者和一个组。所有者是创建文件的用户,而组是该文件的访问控制组。默认情况下,文件的所有者和组是创建该文件的用户的当前用户和当前组。

要查看一个文件的所有者和组,请使用 ls -l 命令。第一列中的第三个和第四个字段分别表示所有者和组。

要更改文件的所有者,请使用 chown 命令。例如,如果您想将文件的所有者更改为 user1,请使用以下命令:

Copy Code
chown user1 file.txt

要更改文件的组,请使用 chgrp 命令。例如,如果您想将文件的组更改为 group1,请使用以下命令:

Copy Code
chgrp group1 file.txt

文件时间戳

Linux 中的每个文件都有三个时间戳:

  • 访问时间(Access time):文件最后一次被访问的时间。
  • 修改时间(Modification time):文件最后一次被修改的时间。
  • 变化时间(Change time):文件的元数据最后一次被修改的时间。

要查看一个文件的时间戳,请使用 ls -l 命令。输出的第一列中包含了这三个时间戳的信息。

例如,输出 Jun 3 10:44 表示文件最后一次被访问或修改的时间是今天的早上10点44分。

实例

下面是一些实例,演示如何使用 Linux 文件的基本属性:

实例1:创建目录并设置访问权限

要创建一个名为 docs 的目录,并将其权限设置为 rwxr-xr--,请使用以下命令:

Copy Code
mkdir docs chmod 754 docs

实例2:查看文件类型

要查看一个名为 file.txt 的文件的类型,请使用以下命令:

Copy Code
ls -l file.txt

输出的第一个字符标识了文件的类型。例如,如果它是一个普通文件,则首字母为 -

实例3:更改文件的所有者和组

要将一个名为 file.txt 的文件的所有者更改为 user1,组更改为 group1,请使用以下命令:

Copy Code
chown user1 file.txt chgrp group1 file.txt

实例4:查看文件时间戳

要查看一个名为 file.txt 的文件的时间戳,请使用以下命令:

Copy Code
ls -l file.txt

输出的第一列包含了访问时间、修改时间和变化时间的信息。