优麒麟目录结构简介
Linuxer 2019年8月4日
评论已关闭 阅读 12,276 次
对于Linux爱好者来说,深入了解Linux文件目录结构的标准和每个目录的详细功能,对于我们用好Linux系统至关重要,下面就由小编给大家介绍下优麒麟系统的目录结构,PS: 同样适用于其他Linux发行版。
查看系统的全部目录:
* 在终端中进入 / ,执行命令ls。
* 在文件浏览器中,通过左侧导航中的“文件系统”,进入根目录。如图1所示。
1 系统目录概述
Linux目录类似一棵树,以根目录出发,含有多个子目录或文件,子目录中又可含有更下级的子目录或者文件,分层衍生出多个分叉。如图2所示。
图2 目录结构一般来说,根目录下只存放目录,除了vmlinuz和initrd.img两个链接文件。其中,vmliuz是Linux内核的镜像文件,initrd.img是RAM disk的镜像文件,都是用于启动Linux系统。下面将对每一个目录的用途及内容进行介绍。
2 目录详解
2.1 /bin、/sbin、/usr/bin、/usr/sbin
表1 bin与sbin
文件目录 |
|
|
放置一些系统必备的可执行文件,比如bash、cat、chmod、cp、ls、mv等,普通用户和root用户都可以使用。 |
|
放置一些系统管理必备的可执行文件,比如e2fsck、ethtool、fdisk、mount等,只有root用户才能使用。
|
|
放置一些必备应用软件的可执行文件,比如vim、ssh、file、c++等。
|
|
放置一些系统管理必备软件的可执行文件,比如gparted、cron、tcpdump等,只有root用户使用。 |
可以理解为:如果是用户和管理员必备的命令,则会放在/bin;如果是系统管理员必备的命令,则会放在/sbin。同理,/usr/bin和/usr/sbin对应的是系统额外的应用软件。
图3 /bin目录
2.2 /boot
存放的是系统的内核文件、引导加载程序文件和grub开机管理。根目录下的两个链接(vmlinuz和initrd.img)就是指向/boot目录下对应的文件。在系统安装时,会为boot单独创建一个分区。
图4 /boot目录
图5 根目录下的启动链接文件
2.3 /dev
在Linux系统中,任何设备都是以文件的形态存在于/dev目录中。访问该目录下某个文件,相当于访问某个设备。比较重要及常用的文件说明如表 2所示。
表2 /dev子目录介绍
|
|
|
SCSI磁盘,sd后面的字母表示第几块磁盘,数字表示该磁盘的第几分区。比如:sda1,表示第一块磁盘的第一个分区。一般来说,系统盘为sda,后续外接的磁盘,则从b开始递增。
|
|
TTY(终端)设备。比如:tty0,表示当前虚拟终端;ttyS0,表示当前UART串口;当串口为USB外接的时候,则会有ttyUSB0,表示当前USB串口。
|
|
回环设备,通常被用于光盘或是磁盘镜像,以循环挂载的方式来挂载包含文件系统的文件,使得在这个文件系统中的内容得以被访问。比如:loop0,表示第一个回环设备。
|
|
空设备。它会丢弃一切写入其中的数据,并且没有任何可以读取的内容。可当作垃圾站,清除文件中的内容。
|
|
零流源。与/dev/null相似,任何写入都将被直接丢弃,读取会得到无限多的二进制零流。通常用于创建一个指定长度(大小)、用于初始化的空文件。
|
|
随机数设备,提供永不为空的随机字节数据流。差别在于:/dev/random依赖于系统中断,产生的速度比较慢,有时候还会出现较大的停顿,数据随机性更高;/dev/urandom不依赖系统的中断,产生速度很快,相比而言数据随机性低。
|
2.4 /etc
用于存放配置文件,包含系统配置和应用软件的配置。该目录下的文件由root用户使用,普通用户大都只有读取的权限。比较重要的文件说明如表3所示。
|
|
|
域名解析文件,即ip地址与域名的对应关系,网络访问时,可快速解析。
|
|
用户数据库,存放了系统中所有的用户信息,包括系统或服务正常运行所必需的用户(系统用户)。
用户名:密码:UID:GID:用户信息:用户主目录:Shell
其中,用户名在同一系统中是唯一的,限制在8个字符(字长度之内,并且区分大小写;UID是用户标识,也是用于区分用户,常用于系统内部管理进程;GID是组标识,一个用户可以存在多个组;Shell是指用户登录系统时运行的程序名称,通常是一个Shell程序的全路径名。
密码在passwd文件中,一般以一个“x”符号来代替,shadow文件为真正的密码文件,只有root用户才有读取的权限。
|
|
用户名:加密后的密码:最近改动日期:不可更改天数:需要重设天数:过期提醒天数:过期后的宽限时间:账号失效日期
其中,密码最近的改动日期,是从1970年1月1日算起的天数;不可更改的天数为0表示没有限制;需要重设天数为99999表示没有限制;失效日期也是从1970年1月1日算起的天数。
|
|
系统用户的分组信息。文件中每一行各字段的含义为——
与passwd相似,组密码以“x”代替,gshadow文件为真正的组密码文件;组ID与passwd中的GID是对应的。
|
|
组密码字段为空或是“!”号,表示没有密码;若有多个组管理员、组成员,用“,”分隔。
|
|
存放系统各种服务的启动和停止脚本。使用该目录下的脚本,需要有root权限。比如需要重启网络,可以使用命令——
/etc/init.d/networking restart
|
|
|
|
在这些目录中,包含了控制进程进行的脚本。以K开头的脚本(存放在*为0-6的目录下)运行在以S开头的脚本(存放在rcS.d目录下)之前。脚本放置的地方,决定开始运行的层级。
|
|
在系统初始化级别脚本运行之后(即系统启动之后)再执行的脚本。
|
|
其中,挂载状态比如是ro(只读)、rw(读写)等;DUMP功能指在系统DUMP时是否需要BACKUP,默认为0;开机检查除了root除了有必要为1,其余可根据需要调整,默认为0。
|
|
getty在登录提示符前的输出信息,通常包括系统的一段短说明或欢迎信息。
|
|
|
|
存放的是一些应用程序所需的启动脚本,包括一些命令的附加设置。
|
|
|
|
新建用户时,把该目录下的内容拷贝到用户的家目录下。
|
2.5 /home
用户主目录的位置,每创建一个用户,该目录下就会生成名字为该用户的文件夹,用于存放用户的各种文件、数据。
2.6 /lib
库文件目录,包含了所有对系统有用的库文件。在/bin或/sbin目录中的命令的动态库文件,就在此目录中,内核模块同样也在这里。
|
|
|
这两个目录与/lib是一样的,包含的是特殊架构的库文件。
|
|
包含硬件、固件代码。硬件运行在系统中分为两个部分:固件(加载到实际硬件的代码)和驱动程序(用于固件和内核之间的通讯)。
|
|
包含所有可加载的内核模块,如果有多个内核,则该目录下会有代表每个内核的目录。
|
|
modprobe命令的配置。该命令的作用是在linux内核中,添加或删除模块。
|
|
|
|
udev是一种工具,能够根据系统中硬件设备的状态,动态更新设备文件(创建,删除和刷新)。该目录存放了所有的 udev 相关的文件和文件夹,比如rules.d就设定了udev规范。
|
2.7 /media、/mnt
/media ——可移除的外置设备(比如U盘、光盘等)自动挂载的位置。
/mnt ——文件系统挂载点。当进行手动挂载移动介质、其它文件系统的分区、可安装文件系统时,挂载点的优先选择。
2.8 /opt
存放系统额外软件安装的文件和程序,一般是大型第三方软件,比如WPS办公,Firefox等。
2.9 /proc
一个虚拟文件系统,是正在运行的内核信息映射,也是内核和内核模块用来向进程发送消息的机制。它可以让用户和内核内部数据结构进行交互,获取有关进程的信息,并且可以在运行中改变设置。
/proc运行在内存之中(不占用外部存储空间),以文件的形式向用户空间提供了访问接口。主要包含了进程信息、内存资源信息、磁盘分区信息等。
2.10 /root
系统管理员(root)的主目录。
2.11 /run
进入/run目录后,执行命令“df -k .”,可以看到它被识别为“tmpfs”,即临时文件系统。与/var/run相同,该目录下是程序或者服务启动后的PID,重启后会重/srv新生成对应的目录数据。
2.12 /srv
主要用来存储本机或本服务器提供的服务或数据(用户主动产生的数据、对外提供的服务)。
2.13 /sys
/sys是sysfs的挂载点。sysfs是一个虚拟的、基于内存的文件系统,它与/proc相似,可以查看和设定内核参数,并且,还能以更好的方式导出内核数据。
|
|
|
所有在总线上被发现的物理设备,比如网卡、显卡、ACPI、虚拟设备(tty、bonding等),是内核对系统中所有设备的分层次表达模型。
|
|
字符设备(block)和块设备(char),里面均是以主次设备号(major:minor)命名的链接文件,指向/sys/devices。
|
|
包含所有注册在kernel里面的设备类型,每个设备类型表达具有一种功能的设备。每个设备类型子目录下是链接文件,指向/sys/devices/目录下的具体设备。
|
|
按总线类型分类设备。其中,每个子目录下都包含devices和drivers两个子目录:devices ——该总线类型下的所有设备,均为链接文件,指向(/sys/devices/;drivers ——该总线类型下的驱动,参数可查看和修改。
|
|
所有被载入内核的模块,包括编译到内核中的模块,和编译为.ko文件的外模块。
|
|
描述系统中所有文件系统,包括文件系统本身和按文件系统分类存放的已挂载点(一些传统虚拟文件系统控制参数仍然在/proc/sys/fs中)。
|
|
内核中所有可调整的参数(一些传统内核可调整参数仍然位于/proc/sys/kernel中)。
|
|
对固件对象和属性进行操作和观察的接口,即系统加载固件机制时对用户空间的接口。
|
|
|
2.14 /tmp用户和程序的临时目录。该目录中的内容会被系统定时自动清空。
2.15 /usr
/usr目录下放置的是系统中软件的资源,而不是用户数据(usr≠user);所有系统默认的软件都会放置到/usr。
|
说明 |
|
|
|
开发和编译应用程序所需要的头文件。编译时,可以通过头文件来使用某些库函数。
|
/usr/lib |
目标库文件(包括动态连接库),以及通常不是直接调用的可执行文件。
|
|
安装本地程序的默认路径。当下载一个程序源代码进行编译安装时,如果不特别指定安装路径,那么程序相关的文件将会默认放置到这个目录对应的子目录下。
|
|
存放了同一个操作系统在不同构架下工作时,特定应用程序的共享数据,比如背景图、程序文档信息、语言设置等。
|
|
|
2.16 /var常态性变动的文件,包括缓存、日志信息以及某些运作所产生的文件。
|
|
|
|
|
|
|
|
|
锁定文件。比如,某些资源一次只能被一个应用程序使用时,如果同时被两个及以上程序使用,就会产生错误,于是,就需要对该资源进行锁定操作。
|
|
|
|
|
|
|
|
|
|
|
|
wtmp记录了谁正在登录进入系统,使用命令显示这个文件信息等。
|
|
|
|
|
|
|
|
其中,日期格式为MM dd hh:mm:ss;进程的PID通常是一个数字,也可以为空。
syslog是Linux系统默认的日志守护进程,任何希望生成日志信息的程序都可以通过syslog提供的接口,在该文件中生成信息。它对于系统、软件调试,定位问题有很大作用。
|
|
|
|
|
|
放置一些队列数据,即排队等待其他程序使用的数据。这些数据被使用后,通常都会被删除。比如系统收到新邮件会放置到/var/spool/mail/中,当用户收下后,该邮件就会被删除。除了邮件以外,还有打印队列、周期执行任务队列等。
|
2.17 /lost+found
在系统修复过程中,恢复的文件所在目录。
以上就是目录结构简介的全部内容,小编欢迎各位多多砸问题,下期见!
评论
为您推荐
请支持IMCN发展!
谁在捐赠
评论功能已经关闭!