Linux 目录树
在 Linux 中解决许多问题的关键是理解文件在目录结构中的位置。然而,没有“绝对”或“完美”的目录结构;由于 Linux 具有高度的可配置性,相同的文件可以放在任何地方,一切仍然可以正常工作。用户 joebob 的主目录通常是 /home/joebob,但也可以设置为 /.joebob。然而,为了防止每个人总是感到困惑,形成了一个通用标准。
与其他一些操作系统不同,Linux 并非将其所有文件都放在一个庞大而混乱的目录中。这些文件分布整齐,一旦您有了基本的了解,就很容易找到和修改您想要的任何文件。本文将按目录名称的字母顺序遍历目录树,并参考其他目录。
第一个目录是 /bin,它是 binary(二进制)的缩写,是大多数可执行文件的文件格式。命令的基本可执行文件,例如 ls、sync、rm 和 cat,都包含在 /bin 中。其他包含二进制文件的目录是 /usr/bin/、/usr/X11R6/bin、/usr/local/bin 和 ~/bin。
下一个目录是 /boot。并非所有发行版都有此目录。如果存在,它通常包含用于启动的内核和引导映射。我将内核保存在 / 目录中。
接下来是 /cdrom,在某些发行版中,CD-ROM 驱动器挂载在此处。其他发行版可能会将其挂载在 /mnt/cdrom 中。
接下来是 /dev 目录,其中包含许多文件(ls 在我的机器上显示 1041 个)。这些文件是设备文件(有时是 FIFO 和其他文件,例如文本 /dev/sndstat),允许您访问设备。这些不是实际的驱动程序;它们只是设备的接口。重要的文件,例如 /dev/mixer 和 /dev/fd0 都存储在这里。
接下来是目录 /etc,这是一个非常重要的目录。它包含许多程序的数据文件,包括 LILO 的配置文件。内核可能会将声音设备配置保存到 /etc/soundconf。Linux 启动时运行的脚本通常保存在 /etc/rc.d 中。rc.d 中文件的设置方式在不同的发行版中有所不同。另一个重要的文件是 /etc/inittab,其中包含一些系统设置,例如运行级别以及按下 ctrl+alt+del 时会发生什么。为了防止任何人重启我的机器,我将 ctrl+alt+del 设置为运行 amp 并播放 mp3 文件。许多服务器注释掉了该行,以防止机器被未经授权的用户重启。另一个重要的地方是 /etc/X11,其中可能包含您的 XF86Config 文件;但是,此文件可能位于许多其他位置。此目录中还有子目录 /etc/xdm,您可以在其中自定义 XDM 登录界面,以获得一些惊人的外观。(有关更多信息,请参阅 http://torment.ntr.net/xdm/。)
接下来是目录 /home。此目录包含用户的主目录。子目录 /home/ftp 和 home/http 可能在此处供其各自的守护程序连接使用。
目录 /lib,像 /bin 一样,包含基本的可执行文件和基本库。目录 /usr/X11R6/lib、/usr/lib 和 /usr/local/lib 是库的其他存储库。
有时您会看到目录 /lost+found。此目录可能包含 inode,它们以某种方式在文件系统中“丢失”,并且没有其他位置可以放置。 inode 是磁盘上的数据结构,其中存储了文件属性的描述。
某些块设备,例如软盘和 CD-ROM 驱动器,都挂载在 /mnt 目录中。某些发行版使用 /cdrom 作为 CD-ROM,/mnt 作为软盘,而另一些发行版则使用 /mnt/cdrom 作为 CD-ROM,/mnt/floppy 作为软盘。
接下来是 /proc,一个非常奇怪的目录。请注意,作为 root 用户,您无法编辑其任何文件。(如果您可以,那是一件坏事。)此目录包含内核数据,并具有自己的文件系统 (/proc),而且奇怪的是,在 /proc 中键入 du 返回值 0。内核在此目录中存储各种数据,这就是为什么您不应该编辑它的原因。
/root 目录是 root 用户的主目录。通常,在 /root 中,您会找到 root 用户编写的程序或脚本,用于为机器执行某些任务。
/sbin 目录包含普通用户通常不需要的二进制文件——专为超级用户设计的二进制文件。其他 sbin 目录是 /usr/sbin、/usr/local/sbin 等,其中包含 ldconfig、mke2fs、quotaon 和其他普通用户不需要的程序。
/tmp 目录的独特之处在于它为每个人都设置了写入权限。此目录包含许多程序的临时文件和 FIFO。
现在我们来到 /usr,可能是您计算机上最大的目录。 /usr 包含许多用户(顾名思义)及其程序的文件。它具有类似于根目录中的子目录。目录 /usr/X11R6 包含 X 的文件。在这里,您将找到 X 的 man 页面、可执行文件、库和包含文件。(顺便说一句,/usr/include 中的 X 包含文件链接到 /usr/X11R6/include/X11。)在 /usr/bin 中,还有更多可执行文件,例如 passwd、nice 和 zgrep。 /usr/doc 目录可能包含系统的帮助文件。 /usr/lib 目录包含更多库,以及用于不同程序的目录,这些目录不包含这些程序的库,而是数据文件。下一个子目录是功能强大的 /usr/local。如果您编译并安装程序,则很可能会将其安装在 /usr/local 中。那些没有升级发行版并希望手动安装 glibc 的人(我),发现 glibc 安装在 /usr/local/include 中,而不是像新安装的系统那样安装在 /usr/include 中。许多程序,包括我们最喜欢的 GIMP,都将在 /usr/local/share 中安装一些数据文件。由于它包含您安装的程序,/usr/local 可能会成为您最喜欢的目录。 /usr/src 是应该保留内核源代码的地方。
最后,还有 /var 目录,您将在其中找到电子邮件假脱机、打印机假脱机、包含游戏分数的文件,以及其他不太有趣的内容。
显然,Linux 中的目录树并没有那么复杂。Linux 最好的功能之一是,如果出现问题,您可以修复它们。重新启动并重新安装操作系统不是您唯一的选择。说实话,我从未这样做过。了解文件在 Linux 中的位置,系统维护变得更加容易。
Matus Telgarsky 是一名高中生,多年来一直愉快地运行 Linux 并将其用于所有与计算机相关的任务。他希望每个人都能体验 Linux,喜欢演奏小提琴,并等待 Enlightenment .14 的发布。请通过 matusa@nmsu.edu 向他发送电子邮件。