> For the complete documentation index, see [llms.txt](https://phper.shujuwajue.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://phper.shujuwajue.com/linux/linuxyuan-li.md).

# Linux原理与基础

## Linux 的启动过程

1. BIOS 检查硬件，读取主启动磁盘MBR区的系统装载程序（Boot Loader，CentOS中一般为GRUB）并执行，显示给用户一个选择界面x
2. 用户选择要启动的系统，即选定了相应的内核（vmlinuz）, Boot Loader 通过 initrd 在内存中建立一个供内核使用的临时文件系统，然后由内核程序接管后续启动流程。
3. 内核开始初始化系统中的各部分硬件。此时操作系统的基本环境已建立，但还没有用户程序可供人使用，于是内核继续执行，启动Linux世界中的造物主 —— /sbin/init&#x20;
4. /sbin/init 进程启动后，自然成为 Linux 中所有进程的父/爷进程。它会首先调用 /etc/rc.d/rc.sysinit 脚本，完成设置环境变量，交换分区，初始化系统时钟等工作。然后调用/etc/inittab，执行相应运行级别下的程序脚本（/etc/rc.d/rc\<x>.d/\* ）启动或杀掉相应进程。
5. 各启动脚本执行完毕后，init 按/etc/inittab 中的配置启动相应的控制台交互界面，提示用户登录（字符界面下默认有6个虚拟控制台，Alt+Fx 切换）

**设置程序自动启动的三种方法：**

1. `/etc/rc.d/rc.local` 中写启动命令；
2. `/etc/rc.d/init.d/*`  写shell脚本，然后在 /etc/rc\*.d 中建立软连接。
3. 使用 chkconfig 工具， 如 `chkconfig --level 2345 auditd on`

## Linux 中的文件及权限

```
-rwxr-xr-x 1 cat animal    68 03-31 21:47 sleep.sh
```

**三种用户角色：**

* user ，文件的所有者
* group，所属的用户组
* others，其他人

**每个文件或目录有三种基本权限类型：**

| 权限      | 数字 | 文件含义    | 目录含义                   |
| ------- | -- | ------- | ---------------------- |
| read    | 4  | 可读取文件内容 | 可列出目录内容                |
| write   | 2  | 可修改文件内容 | 可修改目录内容，包括删除、移动目录中的文件等 |
| execute | 1  | 可作为程序执行 | 可切换到目录中，如 cd x         |

示例:

```
-rwxr-xr-x 1 root root  68 03-31 21:47 test.php
```

![](/files/-LfnTHxXTS8xFbaDdJom)**为什么普通用户可以执行passwd，修改/etc/passwd?**

```
-rwsr-xr-x 1 root root 47032  7月 16  2015 /usr/bin/passwd*
```

s位

* setuid(4)：该位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令。
* setgid(2): 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.
* sticky bit(1): 该位可以理解为防删除位 。如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件

[linux权限补充：rwt rwT rws rwS 特殊权限 ](http://blog.sina.com.cn/s/blog_6e8f9abf0100saql.html)

**想让普通用户只能追加写文件，无法删除文件，如何做?**

```
chattr +a /var/log/access_log
```

**想让用户只能读不能改PHP的配置文件，如何做？**

```
chattr +i /etc/php.ini
```

**Ext2,Ext3,Ext4文件系统对比**

|               | Ext2  | Ext3  | Ext4  |
| ------------- | ----- | ----- | ----- |
| 日志系统          | 无     | 有     | 增强    |
| 最大文件          | 2T    | 2T    | 16T   |
| 最大文件系统        | 32T   | 32T   | 1E    |
| 文件夹内文件数       | 32000 | 32000 | 64000 |
| 切换成本(tune2fs) | 底     | 低     | 低     |

查看命令`df -T`

## raid

磁盘阵列中针对不同的应用使用的不同技术，称为RAID 等级

[RAID详解\[RAID0/RAID1/RAID10/RAID5\]](http://blog.chinaunix.net/uid-639516-id-2692517.html)
