linux基础-----系统运行级别
1.开机启动流程
centos6
centos7
2.运行级别?
命令行界面 <--- 生产必用
图形化界面
3.systemd介绍、使用
4.单用户模式 (破解密码,配置文件修改错误造成无法启动系统)
5.救援模式 (系统出现了错误,无法启动,比如:删除了内核文件)
0. CentOS 6 CentOS 7开机流程
Upstart: init,CentOS 6, | 配置文件: /etc/inittab, /etc/init/*.conf。 |
---|---|
Systemd: systemd, CentOS 7, | 配置文件: /usr/lib/systemd/system (/etc/systemd/system) |
开机自检bios: 体检
MBR引导:炮捻子
Grub菜单
加载内核:kernel(托瓦兹开发)
init进程
inittab文件--->设定运行级别
rc.sysinit---->初始化系统
rc3.d ---->加载对应级下的所有脚本
rc.local ---->加载开机自启动程序
mintty ---->启动登录脚本
1.ContOS7 Linux运行级别
1.运行级别就是操作系统当前正在运行的功能级别
Linux系统有7个运行级别(runlevel):
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
System V init运行级别 systemd目标名称 作用
0 runlevel0.target, poweroff.target 关机
1 runlevel1.target, rescue.target 单用户模式
2 runlevel2.target, multi-user.target
3 runlevel3.target, multi-user.target 多用户的文本界面<--生产必用
4 runlevel4.target, multi-user.target
5 runlevel5.target, graphical.target 多用户的图形界面
6 runlevel6.target, reboot.target 重启
2.如何调整系统启动的运行级别?
1.临时
runlevel 查看当前级别
init Number 切换级别
2.永久 /etc/inittab
id:5:initdefault #开机启动什么级别
1.查看系统默认运行级别
[root@student ~]# systemctl get-default
2.要设置默认目标,请运行
[root@student ~]# systemctl set-default TARGET.target
systemd使用'targets'而不是runlevels。默认情况下,有两个主要目标:
multi-user.target:类似于运行级别3
graphical.target: 类似于运行级别5
3.Linux systemd
1.systemd的由来
Linux一直以来都是采用init进程作为祖宗进程,但是init有两个缺点:
1、启动时间长。Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
2、启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自的情况,这会让脚本多而复杂。
Centos5 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系。
Centos6 相对启动速度有所改进。有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动。
Centos7 所有进程无论有无依赖关系则都是并行启动(当然很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动。)
2.什么是systemd
systemd即为system daemon守护进程,systemd主要解决上文的问题而诞生,systemd的目标是,为系统的启动和管理提供一套完整的解决方案。
3.systemd的优势
1、最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15等)
2、Centos7支持开机并行启动服务,显著提高开机启动效率。
3、Centos7关机只关闭正在运行的服务,而Centos6全部都关闭一次。
4、Centos7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。
5、Centos7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。
3.systemd相关配置文件
/usr/lib/systemd/system/ #类似Centos6系统的启动脚本,/etc/init.d/
/etc/systemd/system/ #类似Centos6系统的/etc/rc.d/rcN.d/
/etc/systemd/system/multi-user.target.wants/
4.systemd管理服务相关命令
systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令
systemctl命令 作用
systemctl start crond.service 启动服务
systemctl stop crond.service 停止服务
systemctl restart crond.service 重启服务
systemctl reload crond.service 重新加载配置
systemctl status crond.servre 查看服务运行状态
systemctl is-active sshd.service 查看服务是否在运行中
systemctl mask crond.servre 禁止服务运行
systemctl unmask crond.servre 取消禁止服务运行
systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令
systemctl命令(7系统) 作用
systemctl enable crond.service 开机自动启动
systemctl disable crond.service 开机不自动启动
systemctl list-unit-files 查看各个级别下服务的启动与禁用
systemctl is-enabled crond.service 查看特定服务是否为开机自启动
systemctl daemon-reload 创建新服务文件需要重载变更
centos7在读取运行级别时,假设我们使用的是multi-user,那么则会加载该目录下的所有服务资源
/etc/systemd/system/multi-user.target.wants/
这一块,可以通过systemctl进行添加和删除:
systemctl enable ServiceName #加入开机自启
systemctl disable ServiceName #关闭开机自启
CentOS7系统, 管理员可以使用 systemctl 命令来管理服务器启动与停止
systemctl poweroff #立即关机
systemctl reboot #重启命令
systemctl的journalctl日志
journalctl -n 20 #查看最后20行
journalctl -f #动态查看日志
journalctl -p err #查看日志的级别
journalctl -u crond #查看某个服务的单元的日志
[root@container ~]# runlevel
N 3
N 上一次的级别是什么 N表示上一次没有的意思
3 当前正在使用的级别
############################################永久操作
查看当前的运行级别
[root@container ~]# systemctl get-default
multi-user.target
设置默认的运行级别
[root@container ~]# systemctl set-default graphical.target
当我们使用systemctl启动一个守护进程后,可以通过sysytemctl status查看此守护进程的状态
状态 描述
loaded 服务单元的配置文件已经被处理
active(running) 服务持续运行
active(exited) 服务成功完成一次的配置
active(waiting) 服务已经运行但在等待某个事件
inactive 服务没有在运行
enabled 服务设定为开机运行
disabled 服务设定为开机不运行
static 服务开机不启动,但可以被其他服务调用启动
4.单用户模式:找回密码
e---->> 添加enforcing=0 init=/bin/bash --->>挂载------>>修改密码----->>exec /sbin/init重新引导系统
mount -o是用loop设备, 在 linux挂载本地的(可能是硬盘上的) iso文件时, 使用的。
-o 就是loop回环设备的意思。
loop回路文件系统:
是: 用来在一个文件系统上实现另一个文件系统, 用于加载 虚拟磁盘、 光盘、 和数据加密的!
/boot
├── config-3.10.0-1127.10.1.el7.x86_64
├── config-3.10.0-957.el7.x86_64
├── efi
├── grub
├── grub2
linux关于 /etc/profile 、/etc/bashrc 、~/.bash_profile 、 ~/.bashrc 的区别
不同情况下 | /etc/profile | /etc/bashrc | ~/.bash_profile | ~/.bashrc |
---|---|---|---|---|
作用范围 | 系统全局所有用户 | 系统全局所有用户 | 针对单个用户有效, 如 /home/user1/.bash_profile 中设定了环境变量,只针对 user1 这个用户生效. |
针对单个用户有效 |
作用内容 | 设置全局系统环境参数 | 设置全局系统bash shell相关的配置 | 功能和 /etc/profile 类似 |
类似于/etc/bashrc |
是否login shell | login shell | non-loginshell | 交互式 login shell | non-loginshell |
生效时间 | 所有用户登入时 | 所有用户登入时 | 针对的用户,在登入的时候加载一次 | 针对的用户,每次执行shell脚本时都会使用它一次 |
即时生效命令: source 文件名称
例如: source /etc/profile
5.救援模式:
1.当系统坏了,无法登陆系统,但需要把里面的数据复制出来,怎么办?(作业)
/dev/sda /dev/sdb /dev/sdc
系统 数据盘 进入救援模式后,将sdc格式化并挂载,将sdb数据拷贝至sdc,然后取出sdc盘
2.修复MBR,主要出现在安装双系统时,后安装的系统把原来系统的MBR删除了,需要修复。
3.Centos7误删除grub文件如何进行修复。
pe <--载入真实有问题的系统,然后进行修复。
总结:
1.开机启动流程
centos6
centos7
2.运行级别 ( 3 multi-user.target)
centos6
centos7
3.systemd 管理
比如: 如何启动,停止、重启 服务
比如: 如何设置一个服务的 开机运行 关闭开机运行 ( 服务 建议安装后,先加入开机自启 )
systemd控制的文件所在的位置,在那里。
4.系统救援方式
单用户模式:破解root密码,修改错配置文件,通过单用户修复。( 重启 )
救援模式: 系统奔溃,无法通过grub、内核引导,通过挂载光盘
( 现在云主机变得多了,所以这种修复机会就不是那么多了,但是我们需要了解。)
https://www.processon.com/view/link/5bffde0ae4b0f012f2382181