Linux系统中目录的内容详解
Linux不像windows是多根的系统,有CDEF磁盘,每个盘里有一个根目录。Linux就只有一个根目录/,其他的所有文件都在这个根目录下:
了解Linux文件系统的目录结构,是学好Linux的至关重要的一步,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统很重要,下面就先了解一下linux目录结构的相关知识。
目录 | 内容 |
/ | 根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。 |
/bin,/usr/bin | 这两个目录为命令文件目录,也称为二进制目录。包含了供系统管理员及普通用户使用的重要的linux命令和二进制(可执行)文件,包含shell解释器等。 |
/boot | 包含Linux内核、最初的RAM磁盘映像,以及启动加载程序。常用的文件:/boot/grub/grub.conf或menu.lst,用来配置启动加载程序;/boot/vmlinuz为linux的内核文件。一般情况下都是单独分区,分区大小200M即可。 |
/dev | 设备(device)文件目录,存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件,包括字符设备和块设备等,常用的是挂载光驱: mount /dev/cdrom /mnt。 |
/etc | 包含了所有系统层面的配置文件,同时也包含了一系列shell脚本,系统的每次启动时,这些shell脚本都会打开每个系统服务。该目录中包含的内容都应该是可读的文本文件。1)/etc/crontab,该文件定义了自动化任务运行的时间;2)/etc/fstab,存储设备以及相关挂载点的列表 ;3)/etc/passward,用户账号列表。etc的含义是Et cetera,表示一些相关的其他东西,/etc从UNIX早期开始就被用来存放配置文件,一直沿用至今。需要注意的是,/etc中存放的是系统配置文件,特定用户的配置文件放在每个用户的/home目录下。 |
/home | 通常的配置下,每个用户都会在/home目录中拥有一个属于自己的目录。普通用户只能在自己的主目录中创建文件。这一限制可以保护系统免遭错误的用户行为的破坏。 |
/lib,/usr/lib,/usr/local/lib | 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,该目录下存放了各种编程语言库。典型的linux系统包含了C、C++和FORTRAN语言的库文件。/lib目录下的库映像文件可以用来启动系统并执行一些命令,目录/lib/modules包含了可加载的内核模块,/lib目录存放了所有重要的库文件,其他的库文件则大部分存放在/usr/lib目录下。这与Windows系统中的DLL类似。 |
/lost+found | 当系统意外崩溃或关机时,会产生一些文件碎片,这个目录就是用来存放这些文件碎片的。当系统启动时,fsck工具会对这个文件夹进行检查,并且会对损坏的文件系统进行修复。这个目录只在每个分区中出现,比如/lost+found就是根分区的备份恢复目录,/boot/lost+found就是在/boot分区的备份恢复目录。 |
/media | 当你将一些可删除媒介挂(比如CD,U盘,光驱等)载到计算机上时,系统会在/media下自动创建子目录,之后就可以通过访问这个子目录来访问媒介。比如你在电脑上插入CD,在/media目录下就会自动生成一个子目录,你可以通过访问这个子目录来访问CD的内容。 |
/mnt | mnt是mount的缩写,各种设备挂载到系统后,会在/mnt目录下生成相应设备的目录,比如挂载光驱、文件系统、CD等。 |
/opt | opt是Optional的意思,系统中安装的可选软件包被存放在/opt目录中。 |
/proc | 该目录很特殊。从文件角度来讲,它不是存储在硬盘中的真正的文件系统,反而是一个Linux内核维护的虚拟文件系统。它包含的文件是内核的窥视孔。该文件是可读的,从中可以看到内核是如何监管计算的。 |
/root | root账户的主目录。 |
/run | /run目录用来存放应用程序在运行期间需要的一些短暂存在的文件,比如socket和pid文件,这些文件对这些应用程序的运行很重要,因此不能把他们放在/tmp目录下,因为/tmp目录下的文件有可能会被系统清空。 |
/sbin,/usr/sbin,/usr/local/sbin | 放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能”查看”而不能设置和使用。 |
/srv | /srv目录主要用来存放一些系统提供的网络服务的数据,如果你在机器上运行一个HTTP服务器来对外提供静态文件时,/srv/http目录将存放这些静态文件,如果你运行一个FTP服务器对外提供文件,则/srv/ftp目录将存放这些文件。 |
/sys | 虚拟文件系统,类似于/proc,都是保存在内存当中,主要是保存一些和内核相关的信息。挂载sysfs 虚拟文件系统,我们可以通过sysfs 文件系统访问 Linux 内核。 |
/tmp | 供用户存放各类程序创建的临时文件的目录。某些配置使得每次系统重启时都会清空该目录。 |
/usr | /usr目录下存放的是用户使用的程序,可以很明显地发现,Linux将普通用户和系统使用的程序分开存放,比如上面提到过,系统使用的一些重要程序存放在/bin,而那些不重要的程序就被放在/usr/bin。不太重要的系统管理程序存放在/usr/sbin而不是/sbin。usr也被称为UNIX Software Resource,这是比较早期的说法。下面是/usr目录下常见的几个子目录的含义。 |
/usr/local | 这是系统预设的让你安装你后来升级的套件的目录。例如,当你发现有更新的 Web 套件(如 Apache )可以安装,而你又不想以 rpm 的方式升级你的套件,则你可以将 apache 这个套件安装在 /usr/local 底下。安装在这里有个好处,因为目前大家的系统都是差不多的,所以如果你的系统要让别人接管的话,也比较容易上手!也比较容易找的到数据!因此,如果你有需要的话,通常都会将 /usr/local/bin 这个路径加到 path 中。 |
/usr/include | 存放编程语言的头文件和包含文件 |
/usr/share | 包含了/usr/bin中的程序所使用的的全部共享数据,这包含默认配置文件、图标、屏幕背景、音频文件等。 |
/usr/src | 存放源码 |
/usr/share/man,/usr/local/man | 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容,建议单独分区,设置较大的磁盘空间。这两个目录为放置各类套件说明档的地方,如果执行 man man,则系统会自动去找这两个目录下的所有说明文件。 |
/var | 除了/tmp和/home目录之外,目前看到的目录相对来说都是静态的;也就是说,包含的内容是不变的。而那些可能改变的数据存储在/var目录树里。/var/cache 存放应用程序运行产生的临时文件;/var/lib 存放程序在执行过程中需要使用到的数据文件,每个软件在此目录下都有自己独自的目录;/var/lock 存放程序的锁状态;/var/mail 存放个人电子邮箱;/var/run 有些程序在运行后,会将他们的pid、socket文件放置到这个目录中。 |
/var/log | 包含的日志文件,记录了各种系统活动。这些文件非常重要,并且应该时不时监控它们。其中最有用的文件是/var/log/messages。安全起见,只有超级用户才能查看日志文件。 |