基础总结
Linux历史
操作系统:用来管理计算机硬件与软件资源;也用来提供一个让用户与计算机能够交互的操作界面。
Linux:Linux是一个操作系统,全称是‘GNU'linux’,它是由托瓦兹开发的内核与GNU项目的组件结合而成的一个支持多用户、多线程、多CPU的操作系统。
* Linux主要发行版本:
* Red het ——企业版,收费,有问题有红帽工程师技术支持
* CentOS ——社区版,免费,就是去掉Redhat里的收费组件和logo然后发行,但有问题自己解决
* Ubuntu ——内核版本高
* Debian ——安全性高
* Fedora ——有新的组件和新功能都会在Fedora上试运行
GNU:全称是'GNU is not unix' ,是斯托曼1983年发起的组织,又称‘革奴计划’,其目的是开发一个能够替代‘unix’的能够自由传播的操作系统。
GPL:‘GNU通用公共许可协议’,并非是自由软件基金会发表;GPL是一个开源协议,以GPL协议发表的程序,任何人有任意修改,任意传播,任意发布的权利,但修改后必须开放源代码。
目录结构
/bin:二进制可执行文件的保存目录,普通用户命令保存目录(软链接,指向/usr/bin)
/sbin:管理员可用的系统相关命令存储目录(软链接,指向/usr/sbin)
/lib:系统启动与运行时所需的库文件(软链接,指向/usr/lib)
/lib64:系统启动与运行时所需的64库库文件(软链接,指向/usr/lib64)
/usr:系统文件目录(第二层次目录)
/usr/local:软件安装的目录
/usr/bin
/usr/sbin
/usr/lib
/usr/lib64
/boot:存放系统启动的相关文件
/dev:设备文件的保存目录,比如硬盘分区 光驱等
/dev/sd:硬盘分区 sda sdb sdc
/dev/null:黑洞设备,只进不出 /dev/random:生成随机数的设备
/dev/zero:能取出源源不断的数据
/etc:配置文件的保存目录
/etc/sysconfig/network-scripts/ifcfg-:网络配置文件
/etc/hostname:主机名称的配置文件
/etc/resolv.conf: dns客户端配置文件
/etc/hosts:本地域名解析的配置文件
/etc/fstab:设备开机自动挂载文件
/etc/rc.local:开机自启动文件
/etc/profile.d:放置开机加载的脚本
/etc/motd:系统登陆提示信息
/home:普通用户的家目录
/media:可移动媒体的挂载点
/mnt:临时挂载点
/opt:第三方软件程序存储目录
/srv:存储为用户提供服务的数据
/proc:存放系统正在运行的程序 进程信息
meminfo:内存情况
cpuinfo: cpu情况
loadavg:查看负载情况
mounts:挂载信息
/root :管理员家目录
/run:正在运行的程序的pid和锁文件存储目录
/sys:虚拟的文件系统,存放进程和内核信息
/tmp:临时文件存储目录
/var:存放系统执行过程中经常变化的文件,如日志和邮件等
/var/tmp:进程产生的临时文件
/var/log:messages: 系统运行行为记录文件
secure: 用户登录信息
dmesg:硬件加载情况日志文件
Linux shell
bash shell:bash shell 就是命令解释器,是操作系统的最外层,负责将用户输入的命令翻译给内核,内核处理后将结果再返回到窗口显示给用户。
-
bash shell 的作用:
文件管理
用户管理
权限管理
磁盘管理
软件管理
网络管理
等等...
-
bash shell 使用:
单条命令:效率低,适合少量简单的工作
shell script :shell 脚本,效率高,适合复杂重复性的工作
bash shell 基础语法:
* command [-option] [arguments]
* 选项以'-'引导
* 选项和参数位置可以发生变化
- bash shell 常用的特性:
* 命令补全:可以在输入命令时用'TAB'键进行命令或路径补全
* yum install -y bash-completion(下载软件包)
* 快捷键:
* ctrl+l ——清屏
* ctrl+c ——终止当前前台程序
* ctrl+z ——暂停当前前台程序并转入后台
* ctrl+w ——以单词向前删除
* ctrl+a ——光标移动到命令开头
* ctrl+e ——光标移动到命令结尾
* ctrl+u ——删除光标前的所有内容
* ctrl+k ——删除光标后的所有内容
* ctrl+b ——光标向前移动一位
* ctrl+f ——光标向后移动一位
* ctrl+r ——搜索历史命令
* ESC+. ——复制上一条命令的结尾
* 命令别名:可以将较长的命令简写,可以将危险的命令重新定义
* 临时设置:alias 别名='命令'
* 永久设置:将命令写入配置文件
* 临时取消别名:unalias 命令 或 \命令
* 查看历史命令:history
* !编号:可以调取指定编号的历史命令
* -c ——可以清除历史命令
* -w ——可以将历史记录保存到.bash_history
* -d 编号 ——删除指定编号的历史命令记录
* bash shell 帮助:可查看命令的详细信息
* command --help
* man command
文件操作
- 查看文件:
* ls ——查看目录【例:ls dir】
* -l ——以长格式显示文件信息
* -d ——查看目录的信息而不查看目录下内容
* -h ——以人性化显示文件信息,与-l 配合使用
* -t ——按修改时间排序
* -i ——显示文件inode
* tree ——以树形显示目录结构 【例:tree -L 2 dir】
* -L ——指定显示的层数
* -d ——只显示目录
* cat ——查看文件的内容 【例:cat file】
* -n ——显示行号
* -A ——显示特殊符号(tab)
* less ——查看大文件的内容,上下键以行上下翻,空格下翻一页,b上翻一页,q退出 【例:less file】
* more ——查看大文件的内容,显示百分比;空格下翻一页,b上翻一页,q退出 【例:more file】
* head ——查看文件内容的前几行,默认十行 【head -5 file】
* -5 ——查看文件前五行内容
* tail ——查看文件内容的后几行,默认十行 【tail -5 file】
* -5 ——查看文件后五行内容
* stat ——查看文件详细属性【例:stat file】
* file ——查看文件的类型 【例:file file】
- 创建文件:
* mkdir ——创建目录 【例:mkdir dir】
* -p ——递归创建目录
* -v ——显示创建过程
* touch ——创建文件 【touch file】
* ln ——创建硬链接 【例:ln 源文件 链接】
* -s ——创建软连接
- 移动文件:
* mv ——移动文件或目录 【例:mv 文件 路径】
* -i ——覆盖前询问
* -n ——不覆盖已存在文件
* -t ——移动到指定目录【例:mv -t 路径 文件】
- 复制文件:
* cp ——复制文件或目录 【例:cp 文件 路径】
* -r ——递归复制
* -a ——等于 -dpr
* -p ——复制文件属性
* -d ——目标为链接文件时,复制为链接文件,指向相同文件
* -t ——指定路径
* -v ——显示过程
* -i ——覆盖前询问
- 删除文件:
* rm ——删除文件 【例:rm file】
* -r ——递归删除,删除目录
* -f ——强制删除,不询问
* -i ——删除前询问
- 搜索文件:
* find ——按条件查找文件 【例:find 路径 选项】
* -name ——按文件名称查找
* -type ——按文件类型查找
* -mtime ——按修改时间查找
* -user ——按属主查询
* -group ——按属组查询
* -maxdepth ——最多查找几层
* -mindepth ——从第几层开始查找
- 排序、统计
* sort ——对文件内容进行排序 【例 :sort file】
* -n ——按数字进行排序
* -r ——倒序
* -t ——指定间隔符
* -k——指定列
* -u ——去除重复行
* uniq ——去重,与sort组合使用【例:sort file | uniq -c】
* -c ——统计重复项
* wc ——统计 【例:wc -l file】
* -l ——统计行数
- 截取字符
* cut ——截取文件中的字符串 【cut -d ':' -f 3 file]
* -d ——指定间隔符
* -f ——指定列
- 压缩文件:
* zip ——将文件压缩为zip压缩包 【zip 压缩包名 源文件】
* -r ——递归,压缩目录
* -q ——不显示压缩过程
* gzip ——只能压缩文件,压缩后删除源文件【gzip 压缩包名 源文件】
* tar ——将文件归档压缩 【tar zcf 压缩包名 源文件】
* -c ——创建新的压缩包
* -v ——显示压缩过程
* -f ——指定包名
* -h ——压缩链接文件的真实文件
* -z ——以gzip方式压缩归档文件
* -j ——以bz2方式压缩归档文件
* -J ——以xz压缩归档文件
* -P ——留根
* --exclude ——压缩时排除某个文件
* 【例:tar test.tar.gz --exclude file1.txt /dir】
* -X ——排除多个文件
- 解压文件
* unzip ——解压zip包 【例:unzip test.zip】
* -l ——不解压查看压缩包内容
* -d ——指定解压路径
* -t ——查看压缩包文件是否OK
* -T ——查看压缩包是否完整
* gzip ——解压gzip包 【gzip -d test.gzip】
* -d ——解压gzip包
* tar ——解压tar包 【tar -xf test.tar.gz】
* -tf ——不解压查看压缩包内容
* -xf ——解压tar包
* -C ——指定解压路径
VIM
vim:文本编辑器
普通模式:
* gg:光标移动到文件首行
* G:光标移动到文件尾行
* r:替换光标所在的位置
* R:进入连续替换
* yy:复制光标所在行
* P:粘贴
* dd:删除光标当前行
* dG:删除光标所在行到结尾的所有内容
* ^:光标移动到行首
* $/0:光标移动到行尾
* x:删除光标后一个字符
* u:撤销
* ctrl+r:取消撤销
* ctrl+b:上翻一页
* ctrl+f:下翻一页
- 编辑模式:
* i:光标所在处进入编辑
* I:光标移动到行首进入编辑
* a:光标所在后一位字符进入编辑
* A:光标移动到行尾进入编辑
* o:光标所在行下插入一行进入编辑
* O:光标所在行上插入一行进入编辑
* cc:删除光标所在行所有内容进入编辑
* C:删除光标之后的内容进入编辑
- 命令模式:
* set ic:忽略大小写
* set nu:显示行号
* set ai :自动缩进
* set list:显示制表符
* nohl:取消高亮
* %s###g:替换整个文本
* n,ms###g:替换n行到m行
* q:退出不保存
* wq:保存并退出
* w!:强制保存状态
* q!:强制退出
* wq!:强制保存退出
* w /root :文件另存
- 视图模式:
* shift+v :进入行模式
* d:删除
* y:复制
* ctrl+v :进入块模式
* d:删除
* y:复制
* shift+i :进入编辑 ESC退出
- VIM编辑文件时意外退出,可用-r恢复,恢复后删除.file.swp文件。
用户管理
- 查看切换用户:
* id ——查看用户信息【例:id name】
* su ——切换用户 【例:su - name】
- 添加用户:
* useradd:添加用户 【useradd name】
* -u ——指定UID(默认组)
* -g ——指定GID
* -G ——指定用户附加组
* -d ——指定家目录
* -s ——指定登录bash
* -r ——创建系统用户,默认没有家目录
* -M ——不创建家目录
* -c ——备注信息
- 修改用户信息:
* usermod:修改用户信息 【例:usermod name -s /sbin/nologin】
* -u ——修改UID(默认组)
* -g ——修改GID
* -G ——修改用户附加组
* -aG ——追加用户附加组
* -s ——修改登录bash
* -c ——修改备注信息
* -d ——修改家目录
* -m ——移动用户家目录与-d一起使用
* -l ——修改用户登录名
* -L ——锁定用户
* -U ——解锁用户
- 删除用户:
* userdel ——删除用户 【例:userdel name】
* -r ——连同用户家目录一起删除
- 添加组:
* newgrp ——用户可切换基本组 【例:newgrp root】
* groupadd ——添加用户组 【例:groupadd name】
* -g ——指定GID
* -r ——添加系统组
- 修改组信息:
* groupmod ——修改组信息 【groupmod name -g 1234】
* -g ——修改组GID
* -n ——修改组名
- 删除组:
* groupdel ——删除用户组 【groupdel name】
- 修改密码:
* passwd ——更改用户密码(只有root可以更改其他用户的密码)【例:passwd name】
* echo '123' | passwd --stdin name ——非交互修改密码
* gpasswd ——组添加密码
* -d ——把用户从指定组中删除
- 修改密码的属性:
* chage ——修改密码的属性
* -d ——设置最近一次更改密码时间, 0下次登陆系统强制修改密码
* -m ——设置用户两次改变密码之间使用"最小天数"
* -M ——设置用户两次改变密码之间使用"最大天数"
* -W ——设置密码更改警告时间 将过期警告天数设为“警告天数”
* -I ——设置密码过期天数后, 密码为失效状态
* -E ——设置用户过期时间, 账户失效后无法登陆
* -l ——显示用户信息
权限管理
- 修改文件属组属主:
* chown ——修改文件的属主和属组 【例:chown root.root file】
* chgrp ——修改文件属组 【chgrp root file】
- 修改文件权限:
* chmod ——修改文件的权限 【chmod 644 file】
* -r ——递归修改目录下所有文件
- 文件特殊权限与特殊属性:
* chmod ——修改文件特殊权限
* u+s ——所有用户使用命令默认以属主身份运行
* g+s ——目录下创建所有文件属组都与主目录一致
* o+t ——粘滞位目录下的文件只有属主和root可以删除
* chattr ——给文件添加特殊属性
* +i ——文件不可更改,不可移动,不可删除;可复制
* +a ——文件内容只能追加,不可以移动,不可删除;可复制
- acl访问控制:
* getfacl ——查看文件的acl权限
* setfacl ——修改文件acl权限 【例:setfacl -m u:root:rwx file】
* -m ——更改文件的访问列表
* -R ——递归操作目录
* -b ——清除文件所有acl权限
* -x ——删除文件指定的acl权限
* -k ——删除默认的acl
-
提权:
- sudo ——(visudo)可分配权限
通配符和重定向
-
通配符:
^:以什么开头
$:以什么结束
. :匹配任意一个字符
*:匹配任意字符
\: 转义
-
:注释
&&:前一个命令执行成功再执行后一个命令
|| :前一个命令执行失败再执行后一个命令
| :管道:将前一个命令执行的结果传递给下一个命令当作参数
``或$():引用命令执行后的结果
?:任意一个字符
&:将程序转入后台
-
重定向:
1>:标准输出重定向--将程序的正确信息输入到指定文件中,并覆盖文件原内容
1>>:标准输出追加重定向--将程序的正确信息追加输入到指定文件中
2>:错误输出重定向--将程序的错误信息输入到指定文件中,并覆盖文件原内容
2>>:错误输出追加重定向--将程序的错误信息追加输入到指定文件中
&>:错误和正确都重定向到一个文件,并覆盖原内容
&>>:错误和正确都追加重定向到一个文件
三剑客基础应用
- awk:
* awk ——取列
* -F ——指定分隔符
* NR==3 ——指定取行
* NF ——最后一列
* {print $2} ——指定第几列
* '/ /' ——筛选行
- sed:
* sed ——替换
* -i ——写入文件
* 's###g' ——全局替换
* 's###' ——替换每行第一个
* -n ——取消默认输出,与p组合
* sed -n '10,20p'(10-20行)
* sed -n '10p;20p' (第10行和20行)
* p ——取行
- grep:
* grep ——筛选
* -n ——显示行号
* -v ——取反
* -i ——忽略大小写
* -E ——多条件筛选
* -o ——只打印过滤的内容
* -A ——显示过滤行的下两行
* -B ——显示过滤行的上两行
* -C ——显示过滤行的上下两行
下载安装
-
wget下载:
-
wget ——下载网络资源 【wget -O ~/file www.aliyum.com】
- -O ——指定下载路径
-
-
curl下载:
-
curl ——下载网络资源,可在线查看网络资源
【curl -o ~/file www.aliyum.com】
- -o ——指定下载路径
-
-
文件上传下载:
rz ——文件上传,只能上传文件,不能上传目录,不能上传4G以上的大文件,不支持断点续传
sz ——文件下载,只能下载文件,不能下载目录
rpm:
* rpm ——下载安装软件包
* -i ——安装软件包
* -v ——显示安装过程
* -h ——显示进度
* -q ——查看软件包的版本
* -ql ——查看软件所有文件的路径
* -qc ——查看软件的配置文件路径
* -qa ——查看所有已安装软件包
* -qf ——查看命令属于那个软件包(已安装)
* -qi ——查看软件包详细属性
* -U ——软件升级
* -e ——卸载
- yum:
* yum :安装软件,自动解决软件包依赖问题
* yum install packages ——安装软件包
* yum localinstall ——本地安装(依赖自动联网下载)
* yum check-update ——列出所有可更新的软件包
* yum update packages ——升级软件包
* yum update ——更新所有
* yum provides command ——查询命令属于哪个软件包
* yum list ——列出可安装的软件包
* yum list installed ——列出所有已安装的软件包
* yum remove packages ——卸载软件包
* yum repolist ——列出已启用的yum源
* yum repolist all ——列出所有可用的yum源
* yum-config-manager --enable/disable repo ——关闭/开启yum源
* yum clean ——清除缓存
* yum group list ——查看可安装的组包
* yum groups install -y ‘base' ——安装组包
* yum groupsremove -y ‘base' ——安装组包
yum仓库
-
本地yum仓库:
-
配置本地仓库
'gzip *'关闭所有网络仓库(进入/etc/yum.repos.d)
连接光盘,挂载光盘(monut /dev/cdrom /mnt)
添加一个repo的仓库文件
[cdrom-local]
name = CentOS Local CD-ROM
baseurl = file:///mnt
(file://是一个查看本地资源的协议)
enable = 1
gpgcheck = 0
-
-
局域网yum仓库:
- 服务端
安装ftp和createrepo(启动ftp服务)
准备软件包——拷贝光盘或同步网上,到/var/ftp目录下
执行createrepo /var/ftp/dir,将共享目录生成仓库
- 客户端:
关闭其他所有的网络源
为服务器配置repo文件;将baseurl指向本地仓库
[cdrom-local]
name = CentOS Local
baseurl = ftp://10.0.0.201/nginx
enable = 1
gpgcheck = 0
磁盘管理:
磁道:每个盘片有两个面,都可记录信息。盘片表面以盘片中心为圆心,用于记录数据的不同半径的圆形磁化轨迹就称为磁道。磁化轨迹是磁化区域,肉眼不可见,磁道看起来是一个平面圆周形。
柱面:磁盘中,不同的盘片相同相同半径的磁道轨迹从上到下所组成的圆柱形区域就称为柱面,看起来是一个圆柱形。
扇区:盘面由圆心向四周画直线,不同的磁道被直线分成许多扇形的区域,每个弧形的区域就叫做扇区,每个扇区大小一般为512字节,扇区看起来就是圆弧或扇形。
-
磁盘接口:
IDE / SCSI ——已淘汰
SATA ——传输速率6Gbps/s
SAS ——企业级,传输速率6~8Gbps/s
-
SSD ——纯电子,抗震
M.2
SATA
-
磁盘分区规则:
主分区最多只能分四个
扩展分区和主分区组合,分区最少两个,最多四个。拓展分区可以没有;最多只能有一个。扩展分区编号最小从5开始。
-
磁盘分区工作原理
磁盘分区登记的地点:磁盘分区表
磁盘分区表存放分区结果信息
分区表位置:0磁头0柱面1扇区(512字节)
一扇区:前446字节(系统引导信息MBR);后64字节(分区表);剩余两字节是分区结束标志(55AA)
磁盘分区表的容量是有限的,64字节,一个分区固定占16字节(所以最多只能分四个)
-
磁盘分区:
-
小于2T的硬盘可用fdisk进行分区
- fdisk ——MBR分区
-
大于2T的硬盘建议用gdisk进行分区(可分128个主分区;与fdisk操作一致)
- gdisk ——GPT分区
-
磁盘格式化:
* mkfs ——格式化磁盘
* -t ——指定格式(xfs/swap)
- 磁盘挂载:
* mount ——挂载设备
* -t ——指定挂载设备的类型
* -o ——指定挂载的参数(rw,ro)
* umount ——卸载设备
* -l ——强制卸载设备
- swap:
* 内存不足时,系统会用swap分区临时充当内存,但会很卡;如果没有swap分区,系统会随机kill进程
* swapoff -a ——关闭swap分区
* swapon -a ——开启swap分区
- RAID:
raid简称磁盘阵列,将多块磁盘组合在一起用来提高磁盘的性能和冗余能力
raid常见模式:
raid | 优点 | 缺点 | 适用场景 |
---|---|---|---|
0 | 条带卷,读写速度最快,成本低,1块以上 | 没有冗余,一块损坏,数据丢失。 | web |
1 | 镜像卷,冗余100%,只能是两块盘 | 读写性能一般,成本高 | 单独的,数据重要,且不能宕机的业务,监控,系统盘 |
5 | 校验卷,具备一定的性能和冗余,可以也最多损坏一块盘。读写性能不错 | 需要奇偶校验,因此写入性能不高,至少三块盘,损失一块盘的容量 | 对性能和安全要求不是很高的业务都可以用 |
10 | raid0与raid1组合,读写性能好,100%冗余,可坏两块盘。至少四块盘 | 成本极高 | 性能和冗余要求都很高的业务,数据库和存储的主节点 |
- RAID1和RAID5需做热备盘
进程管理:
-
进程:正在运行的程序就是进程
程序成为进程后系统或自动分配内存和运行用户
进程运行中,系统会有各种指标来表示当前运行的状态
-
进程生命周期:
父进程接收任务调度,通过fock派子进程来处理,子进程会继承父进程属性
子进程在处理任务代码后,会执行推出,然后唤醒父进程来回收进程信息
如果子进程处理任务过程中,父进程退出,子进程会成为僵尸状态
查看进程:
* ps ——静态查看
* aux ——查看进程详细的信息
* axo ——可指定查看列【例:ps axo pid,command,nice】
* top ——动态查看
* -p ——指定pid
* -u ——指定用户名
* -d ——指定间隔时间
* 1 ——监控每个CPU的状态
* i ——忽略闲置和僵死的进程,开关式命令
* M ——根据使用内存大小排序
* P ——根据CPU使用百分比大小排序
-
STAT状态:
- 基本状态
* R:进程运行
* S:可中断的睡眠状态
* T:进程被暂停
* D:不可中断的睡眠状态
* Z:僵尸进程
* **符号状态**
* s:进程是控制进程,Ss表示父进程
* <:表示运行在高优先级上,S<优先级较高的
* N:表示进程运行在低优先级上
* +:表示进程运行在前台
* l:进程是多线程的
-
中断:中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求
-
Linux软中断与硬中断:
Linux 中的中断处理程序分为上半部和下半部
上半部对应硬件中断,用来快速处理中断
下半部对应软中断,用来异步处理上半部未完成的工作
-
停止进程:
* kill + PID ——正常杀死进程
* kill -1 + PID ——平滑加载配置文件
* kill -9 + PID ——强制杀死进程(对有状态的慎用,例Mysql)
* pkill Name ——批量杀死进程
* killall Name ——批量杀死进程
- 后台进程:
* &——将进程放入后台
* jobs ——查看后台进程
* bg %进程编号 ——让后台进程继续运行
* fg %进程编号 ——将进程从后台调出
*screen ——管理后台进程,窗口退出,后台也不会停止(推荐使用)*
* -S ——指定后台进程的名称
* crtl+a+d ——平滑退出screen,不会终止任务(exit;可停止该后台)
* -list ——列出后台进程
* -r ——调出后台进程
* -wipe ——检查当前所有的screen作业,并删除已经无法使用的
-
进程优先级:
nice 值越高:表示优先级越低
nice 值越低:表示优先级越高
设置优先级:
nice -n number naem——启动一个进程配置优先级
renice -n number -p PID ——调整一个已启动的进程的优先级。
-
负载:
- 负载:单位时间内活动的进程数,(包括处于进行的+处于等待运行+不可中断的进程),平均负载高于CPU数量的%70(不是绝对),应开始排查负载高的问题
过载的三种场景,需关注三个数值,综合评估
CPU密集型进程,使用大量CPU或导致负载升高
I/O密集型进程,等待I/O也会导致负载升高,但CPU使用率不一定高
大量等待CPU的进程调度也会导致负载升高,此时CPU使用率也会很高
系统运行级别与单用户,救援模式
- CentOS6 系统启动流程
1\. 开机BIOS自检
2\. 读取MBR引导(读硬盘的引导程序)
3\. 硬盘上的空间,位于0柱面0磁道1扇区(数据在硬盘上的三维地址),共512字节,前446字节为引导程序,后66字节为分区表
4\. 加载GRUB菜单(要启动什么操作系统);读取文件展现grup菜单
5\. 加载内核(kernel)
6\. 运行INIT进程
1\. 读取/etc/inittab文件:系统运行级别
2\. 读取/etc/init/rcS.conf:执行/etc/re.d/rc.sysinit 脚本,挂载程序等
3\. 读取/etc/init/rcS.conf:执行/etc/re.d/rc 3 脚本
4\. 读取/etc/rc.local文件:开机自启动的程序
5\. 读取/etc/init/tty.conf文件:启动
* **init进程顺序启动**
- CentOS7 系统启动流程
1\. 开机BIOS自检
2\. 读取MBR引导(读硬盘的引导程序)
- 硬盘上的空间,位于0柱面0磁道1扇区(数据在硬盘上的三维地址),共512字节,前446字节为引导程序,后64字节为分区表,剩余两字节是分区结束标志
3\. 加载内核(kernel)
4\. 运行systemd进程
1\. 加载initrd.target文件 :包含挂载fstab中文件系统
2\. 加载default.target文件 :设定target模式加载脚本
3\. 加载sysinit.target文件: 初始化系统加载basic
4\. 读取/etc/rc.local文件 :设定用户开机自启程序
5\. 读取getty.target文件 启动mingetty进程
* **systemd进程并行启动**
- 运行级别:
* 0 ——关机级别
* 1 ——单用户级别
* 2 ——多用户无网络
* 3 ——多用户有网络
* 4 ——预留,未使用
* 5 ——图形化级别
* 6 ——重启级别
**runlevel ——查看用户当前级别(centos6)**
**init number ——设置当前运行级别(centos6)**
**systemctl get-default ——查看当前运行级别**
**systemctl set-default graphical ——设置运行级别,永久**
-
单用户作用:
-
能正常引导进入系统
但配置文件错误导致无法启动
忘记root密码
-
-
救援模式作用:
无法正常启动系统
没有内核文件,救援加载
系统崩溃,保留重要数据
没有引导文件,修复MBR