目录
1.0 Linux 引导过程
1.1 1开机自检
-
过程:系统开机后,通过 BIOS 对 CPU、内存、显卡、键盘等硬件设备进行初步检测,检测成功后根据 BIOS 设置的启动顺序,系统会选择一个设备(硬盘、光驱、U盘等)进行引导。
1.1.2MBR 引导
-
过程:如果从硬盘启动,系统会从硬盘的第一个扇区加载 MBR(主引导记录),并通过 MBR 启动菜单(如 GRUB)选择操作系统启动。
1.1.3GRUB 引导菜单
-
过程:GRUB(GRand Unified Bootloader)是 Linux 常用的多重操作系统引导程序。GRUB 会显示启动菜单,用户选择启动项后加载操作系统的内核文件,并将控制权交给内核。
1.1.4 加载 Linux 内核
-
过程:内核文件是一个预编译的二进制文件,介于硬件与系统程序之间,负责管理硬件资源和系统进程。
1.1.5 init 进程初始化
-
过程:内核加载后,会启动系统的初始化进程
/sbin/init,该进程负责进一步的系统初始化工作,如加载硬件驱动、启动系统服务,最终等待用户登录。
2.0 GRUB2 与 GRUB 的区别
GRUB2 的优点:
-
支持多种文件系统。
-
模块化设计,允许动态加载需要的模块,从而缩小核心镜像的体积。
-
配置文件不同,GRUB2 使用
/boot/grub2/grub.cfg,而 GRUB 使用/boot/grub/grub.conf。 -
总结:GRUB2 增强了功能,支持更多的文件系统和自动化配置,同时提高了系统的灵活性和扩展性。
GRUB 的优点
多系统兼容能力强
灵活的启动配置
强大的内核管理
硬件与文件系统支持广泛
安全性增强
脚本化与自动化配置
故障恢复能力
2.1 Systemd 服务管理
2.1.1 Systemd 的优点
-
并行启动服务:与传统的 SysVinit 相比,Systemd 支持并行启动多个服务,从而加速系统启动过程。
-
按需启动服务:Systemd 可以按需启动服务,避免了启动不必要的服务,提高了系统的效率。
-
总结:Systemd 改善了系统的启动速度和服务管理效率,解决了 SysVinit 启动慢和脚本复杂的问题。
2.1.2 运行级别与 Systemd 目标
在 Linux 系统中,运行级别(runlevel)定义了系统的运行状态。Systemd 通过目标(target)来代替传统的运行级别。
0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的;
1 单用户模式,root权限,用于系统维护,禁止远程登录(只能通过实机进去),该模式的进入方式百度操作即可;就像windows下的安全模式登录;(进入单用户模式的时候root不需要密码就可以登录,所以在此模式下可以修改root密码)
2 多用户模式,没有NFS和网络支持;
3 完整的多用户文本模式,有NFS和网络,登录后进入控制台命令行模式。
4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电池用尽时,可以切换到这个模式来做一些设置;
5 图形化模式,登录后进入图形GUI模式,X windows系;
6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init6机器就会重启
2.1.3 服务管理
设置开机自启
systemctlenable'sshd
2、查看开机自启
systemctl is-enabledsshd
3、关闭开机自启·
systemctldisablesshd
4、查看服务状态
systemctlstatussshd
5、关闭服务
systemctl stop sshd实例关闭防火墙 systemctl stop firewalld.service
6、启动服务
systemctl startfirewalld.service
7.重启服务
systemctl restartfirewalld.service
8.重新加载
systemctl reload firewalld.service
3.0 进程管理
进程管理是操作系统管理进程和资源的关键部分。在 Linux 中,进程是系统中所有任务的核心,进程管理命令主要用于查看、控制和调度系统中的进程。
1. 程序与进程的关系
-
程序:是存储在硬盘上的可执行代码,像一本书的内容,静态存放在硬盘或其他存储设备上。例如,你下载并安装的一个应用程序(如
firefox)。 -
进程:是程序在运行时的实例,像是一本书被人打开并阅读时,它在你眼前执行的过程。每当你运行一个程序,操作系统会创建一个进程,分配内存和 CPU 时间来执行这个程序。
父进程与子进程
-
父进程:是创建其他进程的进程,就像一个家长。
-
子进程:是由父进程创建并执行的独立进程,就像子女一样。
举例:
-
父进程:一家公司的老板(父进程),负责管理和指挥。
-
子进程:公司的员工(子进程),执行老板指派的任务。
3.1 查看进程
3.1.1 ps指令
ps(process status)命令用于查看系统中当前运行的进程。它显示了与进程相关的信息,如进程 ID (PID)、用户、CPU 和内存使用率等。
-
常用选项:
-
ps -aux:显示所有进程,包括其他用户的进程。 -
ps -ef:以标准格式显示所有进程。 -
ps -aux | grep [进程名]:通过管道和grep命令过滤进程
-


输出字段解释:
-
USER:进程所属的用户。
-
PID:进程 ID。
-
%CPU:进程占用的 CPU 百分比。
-
%MEM:进程占用的内存百分比。
-
VSZ:进程使用的虚拟内存(单位 KB)。
-
RSS:进程使用的物理内存(单位 KB)。
-
STAT:进程的状态,常见状态有:R(运行)、S(睡眠)、Z(僵尸)、T(停止)等。
-
START:进程的启动时间。
-
TIME:进程占用的 CPU 时间。
-
COMMAND:启动该进程的命令。
3. 1.2动态查看进程信息 top 命令
top 命令
top 命令用于动态显示 Linux 系统中运行的进程和资源使用情况,实时更新显示。
-
常用快捷键:
-
P:按 CPU 使用率排序。 -
M:按内存使用量排序。 -
T:按时间排序。 -
q:退出 top。
-
-
输出解释:
-
PID:进程 ID。
-
USER:启动该进程的用户。
-
%CPU:进程占用的 CPU 百分比。
-
%MEM:进程占用的内存百分比。
-
TIME+:进程累计使用的 CPU 时间。
-
COMMAND:执行的命令。
-
3.1.3 pgrep命令查询进程信息
常用的参数
-
-l:选项可同时输出对应的进程名以及PID
-
-U:选项查询特定用户的进程
-
-t:选项查询在特定终端运行的进程
3.1.4 pstree命令以树形结构列出进程信息
pstree 命令默认情况下只显示各进程的名称, 结合以下常用的参数使用:
-
-p:选项使用时可以同时列出对应的PID号
-
-u:选项可以列出对应的用户名
-
-a:选项可以列出完整的命令信息、
4.0 进程的启动方式
4.1 手工启动进程
由用户手工输入命令或者可执行程序的路径,可以至少启动一个进程。根据该进程是否 需要占用当前的命令终端,手工启动又可以分为前台启动和后台启动。 进程在前台运行 (如执行“ls -l”命令)时,用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数命令操作在前台启动运行。进程在后台运行时,用户可以继续在当前终端中输入其他命令,而无须等待该进程结束,适用于运行耗时较长的操作。
4.2 调度启动
在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务(如数据备份),这些任务更适合在相对空闲的时候(如夜间)进行。这时就需要用户事先进行调度安排,指 定任务运行的时间,当系统到达设定时间时会自动启动并完成指定的任务。调度启动的计划 任务进程均在后台运行,不会占用用户的命令终端
5.0进程的前后台调度
Ctrl+Z组合键
当Linux操作系统中的命令正在前台执行时(运行尚未结束),按Ctrl+Z组合键可以将当前进程挂起(调入后台并停止执行),这种操作在需要暂停当前进程并进行其他操作时特别有用。例如,打包usr并且调入后台 ,可以按 Ctrl+Z 组合键将该下载任务调入后台并暂停执行
tar zcvf usr.tar.gz /usr
6.0 终止进程的运行
6.1 Ctrl+C组合键
中断正在执行的命令
6.2 kill 命令
kill 命令用于发送信号给进程,通常用来终止进程。
常用选项:
-
kill [PID]:正常终止进程。 -
kill -9 [PID]:强制终止进程(不可恢复)。
案例:
kill 1234
终止 PID 为 1234 的进程。
kill -9 1234
强制终止 PID 为 1234 的进程。
6.3 killall 命令
killall 命令根据进程名称终止进程。
案例:
killall vim
终止所有名为 vim 的进程。
pkill 命令
pkill 命令根据进程属性(如用户名、终端等)终止进程。
案例:
pkill -u root [root@localhost ~]# pkill -9 -U "hackli"
终止所有由 root 用户启动的进程。
7.0 计划任务管理
计划任务用于自动执行系统中的任务。Linux 中常用的计划任务工具包括 at 和 cron。
7.1 一次性任务:at 命令
at 命令用于设置一次性任务,任务将在指定时间执行。
-
命令格式:
at [HH:MM] [yyyy-mm-dd] at> [要执行的命令]
-
常用选项:
-
atq:列出待执行的任务。 -
atrm [任务编号]:删除指定的任务。
-
7.2 周期性任务:cron 命令
cron 用于设置定期执行的任务。用户可以通过 crontab 命令编辑和管理自己的计划任务。
-
crontab -e:编辑当前用户的 cron 任务。 -
crontab -l:列出当前用户的 cron 任务。 -
crontab -r:删除当前用户的所有 cron 任务。
crontab -u 用户名 #指定XX用户的cron服务
crontab -u zx -l #列出zx用户下的cron的详细内容
crontab -r #删除所有用户的cron内容,普通用户执行,只删除自己的cron内容
crontab -r -u zx #删除zx用户的cron内容
7.2.1. date
功能:
date 命令用于显示当前的系统日期和时间,可以指定不同的输出格式,或用它来设置系统的日期和时间。
详细案例:
-
显示当前系统时间:
date
输出:
Wed Aug 14 16:24:51 UTC 2025 -
自定义时间格式:
date "+%Y-%m-%d %H:%M:%S"
输出:
2025-08-14 16:24:51 -
显示当前时间的时间戳(从1970年1月1日以来的秒数):
date +%s
输出:
1692017091 -
设置系统时间:
sudo date +%Y-%m-%d -s "2025-08-14"
这会将系统日期设置为
2025年8月14日。
7.2.2 cal
功能:
cal 命令用来显示当前月份或指定月份的日历。可以方便地查看日期。
7.2.3 history
功能:
history 命令用来查看当前用户的历史命令。这个命令可以帮助你快速找到之前运行的命令。
1 ls
2 cd /home/user
3 mkdir new_folder
4 history

被折叠的 条评论
为什么被折叠?



