Ubuntu系统目录结构

本文介绍了Ubuntu系统的基本目录结构,包括关键目录如boot、dev、etc等的作用,以及系统从启动到用户登录的详细流程,涉及BootManager、内核加载、服务管理和运行级别的概念。

https://www.jianshu.com/p/0ae245cfe1cf
Ubuntu系统简介

Ubuntu系统目录结构

以下为Ubuntu目录的主要目录结构,您稍微了解它们都包含了哪些文件就可以了,不需要记忆。

/ 根目录
│
├boot/ 启动文件。所有与系统启动有关的文件都保存在这里
│ └grub/ Grub引导器相关的文件
│
├dev/ 设备文件
├proc/ 内核与进程镜像
│
├mnt/ 临时挂载
├media/ 挂载媒体设备
│
├root/ root用户的$HOME目录
├home/
│ ├user/ 普通用户的$HOME目录
│ └.../
│
├bin/ 系统程序
├sbin/ 管理员系统程序
├lib/ 系统程序库文件
├etc/ 系统程序和大部分应用程序的全局配置文件
│ ├init.d/ SystemV风格的启动脚本
│ ├rcX.d/ 启动脚本的链接,定义运行级别
│ ├network/ 网络配置文件
│ ├X11/ 图形界面配置文件
├usr/
│ ├bin/ 应用程序
│ ├sbin/ 管理员应用程序
│ ├lib/ 应用程序库文件
│ ├share/ 应用程序资源文件
│ ├src/ 应用程序源代码
│ ├local/
│ │ ├soft/ 用户程序
│ │ └.../ 通常使用单独文件夹
│ ├X11R6/ 图形界面系统
│
├var/ 动态数据
│
├temp/ 临时文件
├lost+found/ 磁盘修复文件

启动流程

Linux系统主要通过以下步骤启动:

1.读取MBR的信息,启动Boot Manager

Windows使用NTLDR作为Boot Manager,如果您的系统中安装多个版本的Windows,您就需要在NTLDR中选择您要进入的系统。

Linux通常使用功能强大,配置灵活的GRUB作为Boot Manager,我们将在启动管理章节中向您介绍它的使用方式。

2.加载系统内核,启动init进程

init进程是Linux的根进程,所有的系统进程都是它的子进程

3.init进程读取/etc/inittab文件中的信息,并进入预设的运行级别,按顺序运行该运行级别对应文件夹下的脚本。脚本通常以start参数启动,并指向一个系统中的程序。

通常情况下,/etc/rcS.d/目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。例如您设定的运行级别为3,那么它对应的启动目录为 /etc/rc3.d/

4.根据 /etc/rcS.d/文件夹中对应的脚本启动Xwindow服务器 xorg

Xwindow为Linux下的图形用户界面系统。

5.启动登录管理器,等待用户登录

Ubuntu系统默认使用GDM作为登录管理器,您在登录管理器界面中输入用户名和密码后,便可以登录系统。(您可以在/etc/rc3.d/文件夹中找到一个名为S13gdm的链接)

更改运行级别

/etc/inittab文件中找到如下内容:

# The default runlevel.

id:2:initdefault:

这一行中的数字 2 ,为系统的运行级别,默认的运行级别涵义如下:

0关机 1单用户维护模式 2~5多用户模式 6重启

服务管理

更改启动服务

在运行级别对应的文件夹中,您可以看到许多文件名以S##K##起始的启动脚本链接。例如:

/etc/rcS.d/S35mountall.sh 挂载文件系统

/etc/rcS.d/S40networking启用网络支持

/etc/rc2.d/S13gdm 启动登录管理器

/etc/rc2.d/S20makedev创建设备文件

/etc/rc2.d/S23xinetd 启动超级进程

init进程将以start为参数,按文件名顺序执行所有以 S##起始的脚本。脚本名称中的数字越小,它将被越早执行。例如在

/etc/rc2.d/文件夹中, S13gdm 文件名中的数字小于 S23xinetd ,S13gdm将比 S23xinetd先执行。

如果一个脚本链接,以K## 起始,表示它将以 stop参数被执行。如果相应服务没有启动,则不执行该脚本。例如:

/etc/rc2.d/K20powernowd 针对某种硬件的电源管理支持

如果您想禁止某一服务在启动时自动运行,您可以将相应运行级别中的脚本由S##xxx 重命名为 K##xxx

手动控制服务

您也可以手动运行带有以下参数的启动脚本,来控制系统服务。

- start启动 - stop停止 - restart重启

例如:

/etc/rc2.d/K20powernowd start

有时您并不清楚当前运行级别,该运行级别下未必有相应脚本;而且此类脚本的前三位字符并不固定,不便于记忆。这时,可以直接使用

/etc/init.d/文件夹中的启动脚本(/etc/rcX.d/中的启动脚本链接到 /etc/init.d/

文件夹下相应脚本),这也是推荐的方式。

例如:

/etc/init.d/powernowd start

Note:以上命令的位置并没有包含在环境变量的搜索路径中,所以要输入完整路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值