FAQ?
Linux的目录结构
-
/usr(Unix Software Resources):包含用户相关的应用程序、库和数据。
- /usr/bin:用户可执行命令。
- /usr/lib:用户共享库文件。
- /usr/include:C/C++头文件。
- /usr/share:共享数据文件。
- /usr/local:本地安装的软件。
-
/var(Variable):包含变量数据,如日志文件、数据库文件等。
- /var/log:系统日志文件。
- /var/spool:打印队列、邮件等临时数据。
- /var/www:Web服务器数据目录。
- /var/cache:应用程序缓存数据。
-
/etc(Etcetera):包含系统和应用程序的配置文件。
- /etc/network:网络配置文件。
- /etc/apache2:Apache Web服务器配置文件。
- /etc/mysql:MySQL数据库配置文件。
-
/home:用户的主目录,每个用户都有一个子目录。
- /home/user1:用户"user1"的主目录。
- /home/user2:用户"user2"的主目录。
-
/opt(Optional):用于安装可选的第三方软件包。
- /opt/application:第三方应用程序安装目录。
-
/media:用于挂载可移动介质的挂载点。
- /media/cdrom:CD/DVD设备挂载点。
- /media/usb:USB设备挂载点。
-
/srv(Service):用于存放服务数据的目录。
- /srv/www:Web服务数据目录。
-
/run:在系统运行时存放临时文件和运行时数据。
- /run/user:用户运行时数据。
-
/tmp(Temporary):用于存放临时文件的目录。
-
/bin(Binary):包含基本系统命令的二进制文件。
-
/sbin(System Binary):包含系统管理命令的二进制文件。
-
/boot:包含启动系统所需的文件。
- /boot/grub:存放GRUB引导加载程序的配置文件。
- /boot/vmlinuz:内核镜像文件。
-
/proc(Process):虚拟文件系统,提供有关内核和进程的信息。
-
/root:超级用户root的主目录。
-
/lib(Library)和**/lib64**:包含共享库文件,支持系统和应用程序的运行。
-
/dev(Devices):包含设备文件,用于访问硬件设备。
-
/lost+found:用于 存放文件系统修复时恢复的文件碎片。
-
/snap:用于存放使用Snap包管理器安装的应用程序。
linux 文件权限
在Linux系统中,文件和目录的权限是非常重要的概念,它们用于控制用户对文件和目录的访问和操作权限。每个文件和目录都有三种基本权限(读取、写入、执行),并且这些权限可以分别应用于文件的所有者、同组用户和其他用户。以下是Linux权限的详细解释:
每个文件和目录都有三组权限:
- 所有者权限:文件或目录的所有者可以对其执行不同的操作。
- 同组权限:与文件或目录属于相同组的用户的权限。
- 其他用户权限:除了所有者和同组用户外的其他用户的权限。
每个权限组可以分为三种权限:
- 读取权限:允许用户查看文件内容(对于目录,则允许列出其内容)。
- 写入权限:允许用户修改文件内容(对于目录,则允许在目录中创建、删除文件)。
- 执行权限:对于文件,允许用户执行它作为脚本或程序;对于目录,允许用户进入该目录。
权限用字符表示:
- r:读取权限。
- w:写入权限。
- x:执行权限。
权限设置用数字表示,每个权限组用一个数字表示(r=4,w=2,x=1):
- 4:读取权限。
- 2:写入权限。
- 1:执行权限。
以下是权限的常见表示方式:
-rw-r--r-- 1 user group 1024 Aug 1 12:34 myfile.txt
解释:
-rw-r--r--
:权限字符串,分别表示所有者、同组用户和其他用户的权限。1
:文件的链接数(硬链接数)。user
:文件的所有者。group
:文件所属的组。1024
:文件大小。Aug 1 12:34
:文件的修改日期和时间。myfile.txt
:文件名。
要更改文件或目录的权限,可以使用chmod
命令。例如,要将文件的所有者权限设置为读写,可以使用以下命令:
chmod u+rw myfile.txt
要更改目录或文件的所有三组权限,可以使用类似的语法。权限对于保护文件和数据的安全性和隐私至关重要,务必谨慎管理。
硬连接和软连接的区别
硬链接(Hard Link)和软链接(Symbolic Link,也称为符号链接)是Linux文件系统中用于创建文件链接的两种不同方式。它们有一些重要的区别:
-
物理特性:
- 硬链接:硬链接创建了一个与原始文件相同的新文件入口,它们共享相同的inode(文件索引节点)。在文件系统中,原始文件和硬链接之间没有明显的区别,它们都是独立的文件入口,删除其中一个不会影响其他。
- 软链接:软链接创建了一个指向原始文件或目录的新文件入口。软链接是一个特殊类型的文件,其中包含指向目标文件的路径。如果原始文件或目录被删除,软链接将变得无效。
-
跨文件系统:
- 硬链接:硬链接只能在同一文件系统中创建,不能跨文件系统创建链接。
- 软链接:软链接可以跨越文件系统创建,可以指向不同文件系统中的目标。
-
文件类型:
- 硬链接:只能链接到文件,不能链接到目录。
- 软链接:可以链接到文件或目录。
-
文件大小:
- 硬链接:多个硬链接共享相同的inode,因此它们的文件大小相同,占用相同的磁盘空间。
- 软链接:软链接本身是一个小文件,只包含指向目标的路径信息,因此它的文件大小较小。
-
更新和权限:
- 硬链接:原始文件和硬链接之间的更改是同步的,因为它们共享相同的inode。权限、属性和数据的更改会反映在所有链接之间。
- 软链接:软链接只是一个指向目标的路径,目标的更改不会自动反映在链接上。删除目标文件后,软链接将变为“坏链接”。
-
用途:
- 硬链接:适用于在同一文件系统上创建多个文件入口,可以节省磁盘空间。
- 软链接:适用于创建指向文件或目录的快捷方式,也可以跨越文件系统使用。
总之,硬链接和软链接在文件链接方面具有不同的特点和用途。选择使用哪种链接类型取决于您的需求和预期的行为。
文件类型
-
普通文件(Regular File):
- 描述:普通文件是最常见的文件类型,用于存储文本、二进制数据、图像、音频等内容。
- 在权限中的表示:在权限字符串中,普通文件用
-
表示。例如,-rw-r--r--
表示一个可读写的普通文件。
-
目录文件(Directory):
- 描述:目录文件用于组织和存储其他文件和子目录。
- 在权限中的表示:在权限字符串中,目录文件用
d
表示。例如,drwxr-xr-x
表示一个可读写执行的目录。
-
软链接(Symbolic Link):
- 描述:软链接是一个指向另一个文件或目录的引用。
- 在权限中的表示:软链接本身在权限字符串中表示为普通文件,没有特殊的标识。软链接的权限和目标文件的权限无关。
-
块设备文件(Block Device File):
- 描述:块设备文件用于随机访问数据块,如硬盘和SSD。
- 在权限中的表示:在权限字符串中,块设备文件用
b
表示。例如,brw-rw----
表示一个可读写的块设备文件。
-
字符设备文件(Character Device File):
- 描述:字符设备文件用于顺序访问字符流,如终端和串口。
- 在权限中的表示:在权限字符串中,字符设备文件用
c
表示。例如,crw-rw----
表示一个可读写的字符设备文件。
-
管道(FIFO):
- 描述:管道用于进程间通信,数据从一个进程流向另一个进程。
- 在权限中的表示:在权限字符串中,管道用
-p-
表示。例如,-p-rw-r--r--
表示一个可读写的管道。
-
套接字(Socket):
- 描述:套接字用于网络通信。
- 在权限中的表示:在权限字符串中,套接字用
s
表示。例如,srwxrwxrwx
表示一个可读写执行的套接字。
符号链接
符号链接(Symbolic Link),也被称为软链接(Soft Link),是计算机中用于创建指向其他文件或目录的特殊类型的文件。符号链接允许你在一个位置创建一个指向另一个文件或目录的引用,而不是实际复制文件的内容。
符号链接有以下特点:
-
指向性:符号链接本身只是一个指向另一个文件或目录的路径,它并不包含实际的数据。
-
独立性:创建符号链接并不会复制原始文件或目录,因此它们可以跨越文件系统边界和物理存储设备。
-
轻量级:符号链接占用很少的磁盘空间,因为它们只是包含了目标路径的字符串。
-
可读性:你可以打开一个符号链接并查看它指向的路径,这使得它们在组织文件和目录结构时非常有用。
-
可修改性:你可以随时更改符号链接的目标,使其指向不同的文件或目录。
在命令行中,使用 ln
命令来创建符号链接。以下是创建符号链接的基本语法:
ln -s 源文件 目标符号链接
例如,如果要创建一个指向文件 file.txt
的符号链接 link.txt
,可以使用以下命令:
ln -s file.txt link.txt
这将在当前工作目录下创建一个名为 link.txt
的符号链接,指向 file.txt
文件。在文件系统中,link.txt
会显示为一个文件,但实际上它只是一个指向 file.txt
的引用。
需要注意的是,符号链接可能会在文件被删除后变为“坏链接”,即指向不存在的路径。删除原始文件不会影响符号链接本身,但如果你尝试打开一个坏链接,系统会报告找不到目标文件。
总之,符号链接是一种非常有用的方式,可以帮助你在文件系统中创建灵活的引用关系,方便文件和目录的管理和组织。