根目录
/ 根目录
│
├boot/ 启动文件。所有与系统启动有关的文件都保存在这里
│ └grub/ Grub 引导器相关的文件
│
├dev/ 设备文件目录,打印机,null,pts,...
├proc/ 内核与进程镜像
│
├mnt/ 临时挂载目录,挂载其他文件目录系统
├media/ 挂载媒体设备,如软盘和CD
│
├root/ root用户 的 $HOME 目录
├home/
│ ├user/ 普通用户 的 $HOME 目录
│ └.../
│
├bin/ 系统程序
├sbin/ 管理员系统程序
├lib/ 系统程序库文件
├lib64/ 系统程序64位库文件
├etc/ 系统程序和大部分应用程序的全局配置文件
│ ├init.d/ SystemV 风格的启动脚本
│ ├rcX.d/ SystemV 启动脚本的链接,定义运行级别
│ ├rc.d/ BSD 风格的启动脚本
│ ├rc.xxx BSD 风格启动脚本,定义运行级别
│ ├network/ 网络配置文件
│ ├X11/ 图形界面配置文件
│
├opt/ 可选目录
├run/ 运行时程序输出目录
├sys/ 系统文件目录
├usr/ 用户自己主动安装软件
│ ├bin/ 应用程序
│ ├sbin/ 管理员应用程序
│ ├lib/ 应用程序库文件
│ ├share/ 应用程序资源文件
│ ├src/ 应用程序源代码
│ ├local/
│ │ ├soft/ 用户程序
│ │ └.../ 通常使用单独文件夹
│ ├X11R6/ 图形界面系统
│
├var/
│ ├www/ 建站目录
│ ├log/ 日志
│ ├syslog 系统日志
│ ├last 登录日志
│ ├mail/ 系统通知
│ ├share/ 应用程序资源文件
│
├tmp/ 临时文件夹
启动流程
- 按开机键
- 加载BIOS(固件可刷,CMOS 芯片,纽扣电池供电)硬件信息,自检,并根据配置信息取得第一个可启动的设备
- 读取并执行第一个启动设备内MBR(主引导程序)的boot loader。(grub等)
- 根据boot loader的设置加载kernel,kernel开始检测硬件,并加载驱动(kernel接手BIOS的工作)
- boot loader加载虚拟文件系统,并加载启动过程中需要的内核模块(USB,RAID,LVM,SCSI)
- 启动第一个进程 /sbin/init
- 启动终端(使用getty)
- 运行图形界面系统
运行级别
运行级别即 run level,Linux通过不同的 run level 来使用不同的服务启动系统,run level 可以分为以下七种:
run level | 含义 | 描述 |
---|---|---|
0 | halt | 系统关机 |
1 | single user mode | 单用户模式,在系统出问题时维护用 |
2 | multi-user,without nfs | 多用户,纯文本模式,不包含NFS服务 |
3 | full multi-user mode | 完整的多用户纯文本模式 |
4 | unused | 系统保留 |
5 | X11 | 在 run level 3 的基础上加载 X windows |
6 | reboot | 重启 |
run level 机制的实现,现在有三种方式:
- System V init:在该方式下,init进程启动后第一时间就会读取文件
/etc/inittab
,该文件负责初始化系统。顺序启动。 - upstart:job是事件驱动的,系统服务的启动、停止等等均是由事件决定的,反过来,系统服务的启动、停止也可以作为事件源触发其他服务。
- systemd:提供了比 UpStart 更激进的并行启动能力,采用了 socket / D-Bus activation 等技术启动服务。
配置文件
文件系统
/etc/fstab | 开机时挂载的文件系统 |
---|---|
/etc/mtab | 当前挂载的文件系统 |
用户系统
/etc/passwd | 用户信息 |
---|---|
/etc/shadow | 用户密码 |
/etc/group | 群组信息 |
/etc/gshadow | 群组密码 |
/etc/sudoers | Sudoer 列表 |
Shell
/etc/shells | 可用 Shell 列表 |
---|---|
/etc/profile | bash 全局首选项 |
/etc/zsh/zprofile | zsh 全局首选项 |
/etc/zsh/zshrc | zsh 配置文件 |
/etc/inputrc | ReadLine 控件设定 |
zsh 加载顺序 env zprofile zshrc zlogin zlogout
,先全局后个人用户
/etc/environment 环境变量
系统环境
/etc/environment | 环境变量 |
---|---|
/etc/os-release | 系统发行信息 |
/etc/updatedb.conf | 文件检索数据库配置信息 |
/etc/issue.net | 发行信息 |
/etc/screenrc | 屏幕设定 |
PATH
可执行程序运行路径,which
可查询路径
locate
查找相关关键字,updatedb
更新关键字数据库
网络
/etc/iftab | 网卡 MAC地址绑定 |
---|---|
/etc/hosts | 主机列表,预先解析 |
/etc/hostname | 本主机名 |
/etc/resolv.conf | DNS 域名解析服务器地址 |
/etc/network/interfaces | 网卡配置文件 |
环境变量
环境变量是作用在整个系统中的变量,很多软件工作的时候都需要读取环境变量的值来确定其工作方式,比如cd ,环境变量命名通常使用大写字母。
相关命令:env
export ${PATH}:.
软件管理
源码安装
git clone XXXX cd XXX make make install #mysql
软件包管理系统
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list // 修改源
apt-get intstall *
apt-get remove *
apt-get update * // 软件源更新
apt-get upgrade * // 软件更新
apt-cache search * // 软件查询