linux操作系统的开机引导过程:
1、开机自检:根据bios的设置,对cpu内存,显卡,键盘等等设备进行初步检测,如果以上设备工作正常,系统会把控制权移交到硬盘
- 总结:检测出包含系统启动操作系统的设备,硬盘,u盘,光驱
2、MBR引导/GPT引导:分区之后,需要创建文件系统,然后挂载,设备才能够正常使用,(操作系统文件都是保存在硬盘也就是系统的挂载点)
-
MBR和GPT是由分区表组成的----------映射到挂载
-
硬盘掌握系统控制权之后,根据分区表来找操作系统的引导文件
-
MBR的硬盘第一个扇区的主引导记录
-
GPT默认的guid是1
-
总结:根据硬盘的分区表,找到操作系统的文件。识别系统中的操作系统
-
控制权 ---------->grub引导程序
3、grub菜单:当计算机当中有一个以上的操作系统,就会有grub菜单,多个操作系统,用户可以自行选择需要的系统
- 控制权--------->linux的内核,加载了操作的文件,加载系统的内核
4、加载linux的内核:内核是一个可编译的二进制可执行文件,介于硬件和操作系统之间,负责资源分配和调度
- 总结:内核和镜像文件系统加载到内存,也就是把系统初始化需要的程序和资源放入内存当中。
5、systemd进程初始化
-
串行:按照顺序,一个一个的执行
-
并行:一起执行
-
systemd进程初始化:系统加载到内核的程序和资源并行处理,大大提高了系统的开机时间
服务控制以及系统的运行级别:
systemd是一个管理linux系统服务和进程的管理器 -------------> 使用单元UNIT,来描述和控制系统服务和资源
★★★★★★
service单元:管理和启动系统服务以及第三方服务的单元( .service)
★★★★★★
socket 单元:端口,监听网络的通信套接字
nginx:80
tomcat:8080
mysql:3306
ssh:22
端口号在主机上是唯一的,一旦被使用,其他程序就无法再使用
系统日志:★★★★★★
tail -f
↓
/var/log/syslog ------ ubuntu
/var/log/messages ------- centos
-
target单元:是一组服务的集合,用来描述系统或者服务的运行级别
-
path单元:用来监控文件系统的状态
-
mount单元:管理文件系统的挂在
-
Device单元:管理硬件设备的单元
-
Scope 单元(.scope):用于管理进程组,可以指定进程组的启动命令、资源限制等
-
Slice 单元(.slice):用于管理进程组的资源配额,可以限制进程组的 CPU、内存等资源使用
-
Automount 单元(.automount):用于按需挂载文件系统,可以在需要使用时自动挂载指定的文件系统
-
Snapshot 单元(.snapshot):用于创建和管理 Systemd 系统的快照,可以备份和还原整个系统状态
单元控制的命令:
-
systemctl ---- 控制
-
start —启动
-
stop —停止
-
restart —重启
-
reload —当修改了单元文件,需要reload重新加载单元文件
-
systemctl daemon-reload ----- 加载所有
-
systemctl reload nginx ----- 加载个别
status:查看服务的状态
runlevel :查看系统运行级别的命令
↓
N 5
N:表示当前系统没有切换过运行级别
5:表示当前的运行级别
运行级别 | systemd的单元类型 | 说明 |
0 | target | 关机 |
1 | rescue.target | 单用户模式,不需要验证密码就可以登陆系统系统维护 |
2 | multi-user.target | 字符串界面的多用户模式 |
3 | multi-user.target | 字符串界面的多用户模式 |
4 | multi-user.target | 字符串界面的多用户模式 |
5 | graphical.target | 图形化界面的多用户模式 |
6 | reboot.target | 重启 |
1、怎么调整 ---- init + 级别
-
init 0 / poweroff — 关机
-
init6 / reboot — 重启
2、为什么没意义:工作中的操作系统是没有图形化界面的,系统的默认级别都是3
修改root密码:
sudo passwd root
(赋予超级管理员权限)
系统的基本架构和sudo权限:
账号安全措施:
1、修改不需要登录的用户的shell
↓
usermod -s /sbin/nologin 用户名 ----- 禁止用户登录
2.锁定长期不使用的账户或者直接删除
↓
锁定:
usermod -L 用户名
passwd -l
解锁:
usermod -U 用户名
passwd -u
删除用户一并删除其家目录:
userdel -r 用户名
lsattr /etc/nginx/nginx.conf ------------显示e即为正常状态
(查看文件当前的状态)
★★★★★★
chattr +i /etc/nginx/nginx.conf
(锁定文件,不能再多文件进行编辑,只读模式,包括root)
chattr -i :解锁
3、用户密码的有效期控制:
①.适用与新建用户
- vim /etc/login.defs
↓
165行,修改密码的最长有效天数
②.适用于已用用户
- chage -M 30 dn:修改用户的密码最长有效期 30天
4、限制命令历史的记录
vim /etc/profile
↓
HISTSIZE=50~80
↓
source /etc/profile
↓
history -c ---- 清空历史记录
5、登录超时时间
远程连接的超时时间
↓
TMOUT=10
↓
10秒钟之内,如果远程连接方没有任何操作,自动断开远程连接
↓
60~120
推荐设置为120秒
sudo:
赋予 普通用户可以使用管理员命令的权限
- /sbin:都是管理员可以用的命令文件
↑↓ - /bin:保存的都是系统可执行的命令文件
ls
cd
fdisk