Linux原理与基础

Linux 的启动过程

  1. BIOS 检查硬件,读取主启动磁盘MBR区的系统装载程序(Boot Loader,CentOS中一般为GRUB)并执行,显示给用户一个选择界面x

  2. 用户选择要启动的系统,即选定了相应的内核(vmlinuz), Boot Loader 通过 initrd 在内存中建立一个供内核使用的临时文件系统,然后由内核程序接管后续启动流程。

  3. 内核开始初始化系统中的各部分硬件。此时操作系统的基本环境已建立,但还没有用户程序可供人使用,于是内核继续执行,启动Linux世界中的造物主 —— /sbin/init

  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
-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 特殊权限

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

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]

Last updated