学习Linux,除了限于学习各类,了解整个Linux文件的目录结构以及各个目录的功能同样至关重要。使用Linux时,通过行输入ls-l/可以见到,在Linux根目录(/)下包含很
学习Linux,除了限于学习各类,了解整个Linux文件系统的目录结构以及各个目录的功能同样至关重要。
使用Linux时,通过命令行输入ls-l/可以见到,在Linux根目录(/)下包含好多的子目录(称为一级目录),比如bin、boot、dev等。同时,各一级目录下还富含好多子目录(称为二级目录),例如/bin/bash、/bin/ed等。Linux文件系统目录总体呈现树状结构,/根目录就相当于树枝。
因为Linux系统免费开源,致使Linux发行版本有好多,借助Linux开发产品的团队也有好多,假如任由每位人都根据自己的看法来配置Linux系统文件目录,后期可能会形成众多的管理问题。试想,假如你步入一家公司,所用Linux系统的文件目录结构与所学的完全不同linux 头文件,实在令人头晕。
为了防止众多使用者对Linux系统目录结构天马行空,Linux基金会发布了FHS标准。多数Linux发行版系统都遵守这一标准。
FHS(FilesystemHierarchyStandard),文件系统层次化标准,该标准规定了Linux系统中所有一级目录以及部份二级目录(/usr和/var)的用途。发布此标准的主要目的就是为了让用户清楚地了解每位目录应当储存哪些类型的文件。
Linux根目录(/)FHS觉得,Linux系统的根目录(/)最为重要(没有之一),其缘由有以下2点:所有目录都是由根目录衍生下来的;根目录与系统的开机、修复、还原密切相关;
为此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件,如表1所示。
表1Linux一级目录及其作用一级目录功能(作用)/bin/储存系统命令,普通用户和root都可以执行。置于/bin下的命令在单用户模式下也可以执行/boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等/dev/设备文件保存位置/etc/配置文件保存位置。系统内所有采用默认安装方法(rpm安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动、常用服务的配置文件等/home/普通用户的主目录(亦称为家目录)。在创建用户时,每位用户要有一个默认登陆和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在/home/下构建一个和用户名相同的目录。如用户liming的主目录就是/home/liming/lib/系统调用的函数库保存位置/media/挂载目录。系统建议拿来挂载媒体设备,如软驱和光碟/mnt/挂载目录。初期Linux中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如U盘、移动硬碟和其他操作系统的分区/misc/挂载目录。系统建议拿来挂载NFS服务的共享目录。即使系统打算了三个默认挂载目录/media/、/mnt/、/misc/,然而究竟在那个目录中挂载哪些设备可以由管理员自己决定。
比如,笔者在接触Linux的时侯,默认挂载目录只有/mnt/,所以养成了在/mnt/下构建不同目录挂载不同设备的习惯,如/mnt/cdrom/挂载光碟、/mnt/usb/挂载U盘,都是可以的/opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放在/usr/local/目录中,也就是说,/usr/local/目录也可以拿来安装软件/root/root的主目录。普通用房主目录在/home/下linux 头文件,root主目录直接在“/”下/sbin/保存与系统环境设置相关的命令,只有root可以使用这种命令进行系统环境设置,但也有些命令可以容许普通用户查看/srv/服务数据目录。一些系统服务启动以后,可以在这个目录中保存所须要的数据/tmp/临时目录。系统储存临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空
FHS针对根目录中包含的子目录仅限于表1,但除此之外,Linux系统根目录下一般还包含表2中的几个一级目录。
表2其他一级目录及功能一级目录功能(作用)/lost+found/当系统意外崩溃或意外死机时,形成的一些文件碎片会储存在这儿。在系统启动的过程中,fsck工具会检测这儿,并修补早已毁坏的文件系统。这个目录只在每位分区中出现,譬如,/lost+found就是根分区的备份恢复目录,/boot/lost+found就是/boot分区的备份恢复目录/proc/虚拟文件系统。该目录中的数据并不保存在硬碟上,而是保存到显存中。主要保存系统的内核、进程、外部设备状态和网路状态等。如/proc/cpuinfo是保存CPU信息的,/proc/devices是保存设备驱动的列表的,/proc/filesystems是保存文件系统列表的,/proc/net是保存网路合同信息的....../sys/虚拟文件系统。和/proc/目录相像,该目录中的数据都保存在显存中,主要保存与内核相关的信息Linux/usr目录usr(注意不是user),全称为UnixSoftwareResource,此目录用于储存系统软件资源。FHS建议所有开发者,应把软件产品的数据合理的放置在/usr目录下的各子目录中,而不是为她们的产品创建单独的目录。
Linux系统中,所有系统默认的软件都储存在/usr目录下linux 下载,/usr目录类似Windows系统中C:Windows+C:Programfiles两个目录的综合体。
FHS建议,/usr目录应具备表3所示的子目录。
表3/usr子目录及其功能子目录功能(作用)/usr/bin/储存系统命令,普通用户和超级用户都可以执行。这种命令和系统启动无关,在单用户模式下不能执行/usr/sbin/储存根文件系统毋须要的系统管理命令,如多数服务程序,只有root可以使用。/usr/lib/应用程序调用的函数库保存位置/usr/XllR6/图形界面系统保存位置/usr/local/手工安装的软件保存位置。我们通常建议源码包软件安装在这个位置/usr/share/应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录/usr/src/源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这儿。不过笔者更习惯把手工下载的源码包保存到/usr/local/src/目录中,把内核源码保存到/usr/src/linux/目录中/usr/includeC/C++等编程语言头文件的放置目录Linux/var目录/var目录用于储存动态数据,比如缓存、日志文件、软件运行过程中形成的文件等。一般,此目录下建议包含如表4所示的这种子目录。
表4/var子目录及其功能/var子目录功能(作用)/var/lib/程序运行中须要调用或改变的数据保存位置。如MySQL的数据库保存在/var/lib/mysql/目录中/var/log/登入文件放置的目录,其中所包含比较重要的文件如/var/log/messages,/var/log/wtmp等。/var/run/一些服务和程序运行后,它们的PID(进程ID)保存位置/var/spool/上面主要都是一些临时储存,随时会被用户所调用的数据,比如/var/spool/mail/储存新收到的电邮,/var/spool/cron/储存系统定时任务。/var/www/RPM包安装的Apache的网页主目录/var/nis和/var/ypNIS服务机制所使用的目录,nis主要记录所有网路中每一个client的联接信息;yp是linux的nis服务的日志文件储存的目录/var/tmp一些应用程序在安装或执行时redflag linux,须要在重启后使用的个别文件,此目录能将该类文件暂时储存上去,完成后再行删掉
按照以上各表列出的各目录及作用,假如我们要做一些实验和练习,须要创建一些临时文件,应当保存在哪儿呢?
答案是用户的主目录或/tmp/临时目录。并且要当心有些目录中不能直接更改和保存数据,例如/proc/fn/sys/目录,由于它们是保存在显存中的,假如在这儿写入数据,这么你的显存会越来越小,直到关机;/boot/目录也不能保存额外数据,由于/boot/目录会单独分区作为启动分区,假如没有空闲空间,则会造成系统不能正常启动。
其实,Linux要在合理的目录下进行操作和更改。
本文原创地址://gulass.cn/lfxbmljgtmxk.html编辑:刘遄,审核员:暂无