目录
[(一)Linux 系统基础知识](#(一)Linux 系统基础知识)
[(二)Linux 系统使用基础](#(二)Linux 系统使用基础)
[(三)Linux 系统管理技术](#(三)Linux 系统管理技术)
[(四)Linux 系统常用软件应用技术](#(四)Linux 系统常用软件应用技术)
[(五)Linux 系统应用程序开发技术](#(五)Linux 系统应用程序开发技术)
[(六)Web 服务器搭建](#(六)Web 服务器搭建)
[1. 文件目录操作](#1. 文件目录操作)
[2. 权限与用户组管理](#2. 权限与用户组管理)
[3. 系统监控与进程管理](#3. 系统监控与进程管理)
[4. 网络操作](#4. 网络操作)
[5. 软件安装与压缩](#5. 软件安装与压缩)
[6. 定时任务与日志](#6. 定时任务与日志)
[7. 磁盘与存储管理](#7. 磁盘与存储管理)
[二、Shell 脚本编程模板(必考题型,直接套用)](#二、Shell 脚本编程模板(必考题型,直接套用))
[模板 1:基础脚本(变量 + 参数 + 输出)](#模板 1:基础脚本(变量 + 参数 + 输出))
[模板 2:条件判断(if-else)](#模板 2:条件判断(if-else))
[模板 3:循环(for+while)](#模板 3:循环(for+while))
[模板 4:综合脚本(定时备份 MySQL)](#模板 4:综合脚本(定时备份 MySQL))
[Shell 脚本核心语法速记](#Shell 脚本核心语法速记)
[案例 1:Nginx 基础配置(默认配置文件:/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf)](#案例 1:Nginx 基础配置(默认配置文件:/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf))
[案例 2:MySQL 基础用户与权限配置(登录:mysql -uroot -p)](#案例 2:MySQL 基础用户与权限配置(登录:mysql -uroot -p))
[案例 3:crontab 定时任务配置(核心:时间格式 + 绝对路径)](#案例 3:crontab 定时任务配置(核心:时间格式 + 绝对路径))
[案例 4:防火墙(firewalld)基础配置(CentOS7+)](#案例 4:防火墙(firewalld)基础配置(CentOS7+))
[1. GCC 编译 C 程序(三步 / 一步编译)](#1. GCC 编译 C 程序(三步 / 一步编译))
[2. GDB 调试基础(前提:编译时加 - g 参数)](#2. GDB 调试基础(前提:编译时加 - g 参数))
[3. Makefile 基础模板(源文件:main.c func.c,头文件:func.h)](#3. Makefile 基础模板(源文件:main.c func.c,头文件:func.h))
[叁、高频选择 / 简答考点(速记)](#叁、高频选择 / 简答考点(速记))
[一、Linux 基础概念](#一、Linux 基础概念)
壹、考试要求
一、考纲基本要求
- 掌握操作系统的基本概念、组成、功能和原理。
- 了解 Linux 系统的发展历程、特点、应用现状和前景。
- 掌握常用的 Linux 命令和 Shell 脚本编程基本技术。
- 具备 Linux 系统安装、配置、管理与维护的基本技能。
- 熟悉 Linux 系统的常用软件及使用方法。
- 熟悉 Linux 系统的常用开发工具和开发环境,掌握基于 Linux 系统的 C 语言程序开发技术。
- 具备基于 Linux 系统进行 Web 服务器搭建的基本技能。
二、核心考点与考试内容
(一)Linux 系统基础知识
- 操作系统的概念、功能、组成和基本原理(进程管理、内存管理、文件系统、设备管理、中断、系统调用、调度机制等)。
- Linux 系统的起源、发展、特点(开源、多用户多任务、内核与发行版)、应用领域(服务器、嵌入式、云计算等)。
(二)Linux 系统使用基础
- 系统安装与启动:虚拟机 / 物理机安装流程、BIOS/UEFI 设置、GRUB 引导、系统初始化(systemd)。
- 常用命令:文件目录操作(ls、cd、mkdir、rm、cp、mv)、权限管理(chmod、chown、chgrp、ACL)、文本处理(grep、awk、sed、cat、more、less)、系统监控(ps、top、df、du、free、vmstat)、网络操作(ip、ping、netstat、ss、curl、wget)。
- Shell 脚本编程:Bash 语法、变量、参数传递、条件判断(if-else)、循环(for、while)、函数、正则表达式、脚本调试与执行。
- 软件安装:rpm、yum、apt 包管理器,源码编译安装(configure、make、make install)。
(三)Linux 系统管理技术
- 用户与组管理:useradd、usermod、userdel、groupadd、groupmod、groupdel、passwd、su、sudo 配置。
- 文件管理:文件类型(普通、目录、链接、设备、管道、套接字)、文件系统(ext4、xfs)、挂载与卸载(mount、umount)、文件搜索(find、locate)、压缩解压(tar、gzip、bzip2)。
- 进程管理:进程状态、ps、top、htop、kill、pkill、killall、进程调度、后台任务(&、nohup、jobs、fg、bg)、cron 定时任务。
- 存储管理:磁盘分区(fdisk、gdisk)、文件系统创建(mkfs)、LVM 逻辑卷管理、磁盘配额(quota)、swap 分区配置。
- 设备管理:设备文件(/dev)、udev 规则、磁盘阵列(RAID)基础、打印机等外设配置。
- 网络管理:网络接口配置(静态 IP、DHCP)、路由(route)、防火墙(iptables、firewalld)、网络服务(sshd、vsftpd、samba、NFS)。
- 系统服务与日志:systemd 服务管理(systemctl)、日志系统(rsyslog、journalctl)、日志轮转(logrotate)、系统备份与恢复。
(四)Linux 系统常用软件应用技术
- 编辑器:vi/vim 的模式切换、基本操作、配置文件(.vimrc)、Emacs 基础。
- 办公软件:LibreOffice 套件的使用。
- 网络工具:FTP 客户端、SSH 客户端、浏览器、邮件客户端配置。
- 数据库:MySQL/MariaDB 的安装、配置、用户管理、数据库操作(SQL 基础)。
- 图形化工具:GNOME/KDE 桌面环境的基本操作与配置。
(五)Linux 系统应用程序开发技术
- 开发环境:GCC 编译器、GDB 调试器、Makefile 编写、版本控制(Git 基础)。
- C 语言开发:Linux 系统调用(open、read、write、close、fork、exec、wait)、进程间通信(管道、信号、共享内存、消息队列、信号量)、线程编程(pthread 库)。
- 应用开发:文件 I/O、网络编程(Socket)、简单应用程序的编译与运行。
(六)Web 服务器搭建
- HTTP 协议基础、Apache/Nginx 安装与配置、虚拟主机、SSL/TLS 加密(HTTPS)、反向代理、负载均衡、动态网站部署(PHP、Python Flask/Django)、CGI/FastCGI 配置。
三、考试形式与题型
- 考试时间:120 分钟,满分 100 分,含选择题、填空题、综合应用题(命令操作、脚本编写、配置案例)。
- 重点考察:命令行操作、系统配置、Shell 脚本、服务搭建、故障排查能力。
四、备考建议
- 理论结合实践:在虚拟机(VMware/VirtualBox)中安装 CentOS/Ubuntu,反复练习命令与配置。
- 重点突破:Shell 脚本、用户权限、进程管理、网络配置、服务搭建(Apache/Nginx、MySQL)。
- 刷题巩固:刷历年真题,熟悉题型与考点分布。
- 掌握开发工具:GCC、GDB、Makefile 的基本使用,能编写简单 C 程序并调试。
贰、知识点学习
一、高频命令清单(按模块分类,必考)
1. 文件目录操作
| 功能 | 核心命令 | 常用参数 / 示例 |
|---|---|---|
| 查看目录 | ls | ls -l(详细)、ls -a(隐藏)、ls -lh(人性化) |
| 切换目录 | cd | cd ~(家目录)、cd ..(上级)、cd /(根目录) |
| 创建目录 | mkdir | mkdir -p(递归)、mkdir dir1 dir2 |
| 删除 / 复制 / 移动 | rm/cp/mv | rm -rf(强制删除)、cp -r(递归复制)、mv 源 目标(移动 / 重命名) |
| 查看文件 | cat/more/less/head/tail | tail -f(实时监控)、head -n 10(前 10 行) |
| 查找文件 | find/locate | find /-name "*.conf"、locate passwd(需 updatedb 更新) |
2. 权限与用户组管理
| 功能 | 核心命令 | 关键用法 |
|---|---|---|
| 权限修改 | chmod | 数字法:chmod 755 file(r=4,w=2,x=1);符号法:chmod u+x file |
| 属主 / 属组修改 | chown/chgrp | chown user:group file、chgrp group file |
| 创建用户 / 组 | useradd/groupadd | useradd -m user(创建家目录)、groupadd grp |
| 修改用户 / 组 | usermod/groupmod | usermod -g grp user(改主组)、usermod -aG grp user(追加附属组) |
| 删除用户 / 组 | userdel/groupdel | userdel -r user(删除家目录) |
| 密码设置 | passwd | passwd user(改密码)、passwd -l user(锁定) |
| 提权操作 | su/sudo | su - root(切换根用户)、sudo ls /root(临时提权,需配置 /etc/sudoers) |
3. 系统监控与进程管理
| 功能 | 核心命令 | 常用参数 |
|---|---|---|
| 查看进程 | ps | ps -ef(全量)、ps aux(详细) |
| 实时监控进程 | top | P(按 CPU 排序)、M(按内存排序)、k(终止进程) |
| 终止进程 | kill/killall/pkill | kill -9 进程号(强制杀死)、killall nginx(按名杀死) |
| 后台任务 | &/nohup/jobs/fg/bg | nohup ./script.sh &(后台不挂断)、fg 1(调后台任务 1 到前台) |
| 系统资源监控 | df/du/free/vmstat | df -h(磁盘)、du -sh(目录大小)、free -h(内存) |
4. 网络操作
| 功能 | 核心命令 | 常用用法 |
|---|---|---|
| 网络信息 | ip/ifconfig | ip addr(查看网卡)、ifconfig eth0 up/down(启停网卡) |
| 连通性测试 | ping/traceroute | ping -c 4 192.168.1.1(4 次包)、traceroute www.baidu.com |
| 端口 / 连接 | netstat/ss | netstat -tnlp(查看监听端口)、ss -an(所有连接) |
| 下载 | wget/curl | wget https://xxx.tar.gz、curl -I www.baidu.com(响应头) |
| 远程登录 | ssh | ssh user@192.168.1.100 |
5. 软件安装与压缩
| 功能 | 核心命令 | 适用场景 |
|---|---|---|
| RPM 包 | rpm | rpm -ivh 包名(安装)、rpm -e 包名(卸载)、rpm -qa(查询已装) |
| YUM/DNF(CentOS) | yum/dnf | yum install -y nginx(安装)、yum remove nginx(卸载)、yum update(更新) |
| APT(Ubuntu) | apt | apt install -y nginx、apt update && apt upgrade |
| 源码编译 | configure/make/make install | ./configure --prefix=/usr/local/xxx → make → make install |
| 压缩解压 | tar | 压缩:tar -zcvf xxx.tar.gz 目录;解压:tar -zxvf xxx.tar.gz -C 目标目录 |
6. 定时任务与日志
| 功能 | 核心命令 | 关键操作 |
|---|---|---|
| 定时任务 | crontab | crontab -e(编辑)、crontab -l(查看)、crontab -r(删除);格式:分 时 日 月 周 命令 |
| 日志查看 | journalctl/less | journalctl -u nginx.service(查看 nginx 服务日志)、less /var/log/messages(系统日志) |
| 日志轮转 | logrotate | 配置文件:/etc/logrotate.conf、/etc/logrotate.d/ |
7. 磁盘与存储管理
| 功能 | 核心命令 | 常用操作 |
|---|---|---|
| 磁盘分区 | fdisk/gdisk | fdisk -l(查看分区)、fdisk /dev/sda(分区操作) |
| 创建文件系统 | mkfs | mkfs.ext4 /dev/sda1、mkfs.xfs /dev/sda2 |
| 挂载 / 卸载 | mount/umount | mount /dev/sda1 /mnt、umount /mnt、开机挂载:/etc/fstab |
| LVM 基础 | pvcreate/vgcreate/lvcreate | pvcreate /dev/sdb1 → vgcreate vg01 /dev/sdb1 → lvcreate -L 10G -n lv01 vg01 |
二、Shell 脚本编程模板(必考题型,直接套用)
模板 1:基础脚本(变量 + 参数 + 输出)
#!/bin/bash
# 脚本功能:基础变量与参数演示
# 定义变量
name="Linux"
version="CentOS 7"
# 位置参数($1-$n:传入参数,$0:脚本名,$#:参数个数)
echo "脚本名:$0"
echo "传入参数个数:$#"
echo "第一个参数:$1"
# 输出变量
echo "系统:$name,版本:$version"
# 执行权限:chmod +x test.sh;运行:./test.sh 参数1
模板 2:条件判断(if-else)
#!/bin/bash
# 功能:判断文件是否存在,判断数值大小
read -p "请输入要判断的文件路径:" file
# 判断文件
if [ -f $file ]; then
echo "$file 是普通文件"
elif [ -d $file ]; then
echo "$file 是目录"
else
echo "$file 不存在或非普通文件/目录"
fi
# 数值判断(-eq等于/-ne不等于/-gt大于/-lt小于)
a=10
b=20
if [ $a -gt $b ]; then
echo "$a > $b"
else
echo "$a <= $b"
fi
模板 3:循环(for+while)
#!/bin/bash
# 功能:for循环遍历目录,while循环计数
# for循环(遍历当前目录下所有.sh文件)
for f in `ls *.sh`
do
echo "找到脚本文件:$f"
done
# while循环(1到10计数)
i=1
while [ $i -le 10 ]
do
echo "计数:$i"
i=$((i+1)) # 数值自增
done
模板 4:综合脚本(定时备份 MySQL)
#!/bin/bash
# 功能:MySQL数据库定时备份(可加入crontab)
# 配置信息
db_user="root"
db_pwd="123456"
db_name="testdb"
backup_dir="/data/backup/mysql"
time=$(date +%Y%m%d_%H%M%S) # 时间戳
# 创建备份目录
if [ ! -d $backup_dir ]; then
mkdir -p $backup_dir
fi
# 备份命令
mysqldump -u$db_user -p$db_pwd $db_name > $backup_dir/$db_name_$time.sql
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "$time 备份成功" >> /var/log/mysql_backup.log
else
echo "$time 备份失败" >> /var/log/mysql_backup.log
fi
# 定时任务配置:0 2 * * * /bin/bash /root/mysql_backup.sh(每天凌晨2点执行)
Shell 脚本核心语法速记
- 脚本首行必须写:
#!/bin/bash(指定解释器) - 变量定义:
变量名=值(等号前后无空格),使用:$变量名或${变量名} - 条件判断:
[ 条件 ](中括号前后必须有空格),文件判断:-f(普通文件)、-d(目录)、-e(存在) - 循环:for 遍历、while 条件循环,结束循环:
break,跳过本次:continue - 执行结果判断:
$?(0 为成功,非 0 为失败) - 注释:单行
#,多行:<<EOF 内容 EOF
三、核心配置案例(服务搭建必考,直接抄配置)
案例 1:Nginx 基础配置(默认配置文件:/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf)
server {
listen 80; # 监听80端口
server_name localhost 192.168.1.100; # 域名/IP
root /usr/share/nginx/html; # 网站根目录
index index.html index.htm; # 默认首页
# 日志配置
access_log /var/log/nginx/host.access.log main;
error_log /var/log/nginx/host.error.log warn;
# 错误页
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
# 启动/重启/查看状态:systemctl start/restart/status nginx
# 设置开机自启:systemctl enable nginx
# 防火墙开放80端口:firewall-cmd --permanent --add-port=80/tcp && firewall-cmd --reload
案例 2:MySQL 基础用户与权限配置(登录:mysql -uroot -p)
-- 创建用户(允许本地登录)
CREATE USER 'testuser'@'localhost' IDENTIFIED BY '123456';
-- 创建用户(允许所有IP登录,%表示任意IP)
CREATE USER 'testuser'@'%' IDENTIFIED BY '123456';
-- 授权:给testuser授予testdb库所有表的所有权限
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'%';
-- 授权:仅授予查询、插入权限
GRANT SELECT,INSERT ON testdb.* TO 'testuser'@'localhost';
-- 刷新权限(必须执行)
FLUSH PRIVILEGES;
-- 查看用户权限
SHOW GRANTS FOR 'testuser'@'%';
-- 删除用户
DROP USER 'testuser'@'%';
案例 3:crontab 定时任务配置(核心:时间格式 + 绝对路径)
# 编辑定时任务
crontab -e
# 配置示例1:每天凌晨3点执行MySQL备份脚本(绝对路径)
0 3 * * * /bin/bash /root/mysql_backup.sh
# 配置示例2:每小时第10分钟,查看磁盘并写入日志
10 * * * * df -h >> /var/log/disk_monitor.log
# 配置示例3:每周一、三、五下午6点,重启nginx
0 18 * * 1,3,5 systemctl restart nginx
# 时间格式:分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-7,0/7=周日)
案例 4:防火墙(firewalld)基础配置(CentOS7+)
# 启动/开机自启/状态
systemctl start firewalld && systemctl enable firewalld && systemctl status firewalld
# 开放端口(永久,--permanent)
firewall-cmd --permanent --add-port=80/tcp # HTTP
firewall-cmd --permanent --add-port=443/tcp # HTTPS
firewall-cmd --permanent --add-port=3306/tcp # MySQL
# 开放服务
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
# 移除端口/服务
firewall-cmd --permanent --remove-port=8080/tcp
# 重载配置(修改后必须执行)
firewall-cmd --reload
# 查看已开放端口/服务
firewall-cmd --permanent --list-ports
firewall-cmd --permanent --list-services
四、开发基础核心考点(GCC+GDB+Makefile)
1. GCC 编译 C 程序(三步 / 一步编译)
# 源文件:test.c
# 第一步:预处理(生成.i文件)
gcc -E test.c -o test.i
# 第二步:编译(生成.s汇编文件)
gcc -S test.i -o test.s
# 第三步:汇编(生成.o目标文件)+ 链接(生成可执行文件)
gcc -c test.s -o test.o && gcc test.o -o test
# 一步直接编译生成可执行文件(常用)
gcc test.c -o test
# 带警告编译(推荐)
gcc -Wall test.c -o test
# 运行可执行文件
./test
2. GDB 调试基础(前提:编译时加 - g 参数)
# 编译带调试信息
gcc -g test.c -o test
# 启动GDB
gdb ./test
# 核心调试命令
list(l) # 查看代码
break(b) 行号/函数名 # 设置断点
run(r) # 运行程序
next(n) # 单步执行(跳过函数)
step(s) # 单步执行(进入函数)
print(p) 变量名 # 查看变量值
continue(c) # 继续执行到下一个断点
quit(q) # 退出GDB
3. Makefile 基础模板(源文件:main.c func.c,头文件:func.h)
# 定义变量:编译器、编译参数、目标文件、可执行文件名
CC = gcc
CFLAGS = -Wall -g
OBJS = main.o func.o
TARGET = app
# 目标:依赖(生成app需要OBJS)
$(TARGET): $(OBJS)
$(CC) $(OBJS) -o $(TARGET)
# 生成.o文件(自动推导,可省略)
main.o: main.c func.h
$(CC) $(CFLAGS) -c main.c -o main.o
func.o: func.c func.h
$(CC) $(CFLAGS) -c func.c -o func.o
# 清理命令:make clean(删除可执行文件和.o文件)
clean:
rm -rf $(TARGET) $(OBJS)
# 执行:直接输入make(生成app),make clean(清理)
叁、高频选择 / 简答考点(速记)
一、Linux 基础概念
- Linux 内核与发行版:内核(核心程序),发行版(内核 + 应用软件,如 CentOS/Ubuntu/RedHat)
- 系统启动流程:BIOS/UEFI → GRUB 引导 → 内核加载 → systemd 初始化 → 登录界面
- 文件系统类型:ext4(常用)、xfs(高性能)、swap(交换分区)
- 文件类型:普通文件(-)、目录(d)、链接(l)、设备文件(b/c)、管道(p)、套接字(s)
二、进程与服务
- 进程状态:运行(R)、睡眠(S)、僵尸(Z)、停止(T)(选择必考)
- systemd 服务管理:systemctl start/stop/restart/status/enable/disable 服务名
- 后台进程:守护进程(Daemon),以 d 结尾(如 nginx、sshd)
三、网络基础
- HTTP/HTTPS 端口:80/443;SSH:22;MySQL:3306;FTP:21/20
- 静态 IP 配置文件(CentOS):/etc/sysconfig/network-scripts/ifcfg-eth0
- 主机名配置:hostnamectl set-hostname 新主机名
四、开发基础
- 进程间通信(IPC)方式:管道、信号、共享内存、消息队列、信号量(简答必考)
- Socket 网络编程:TCP/UDP 套接字,常用函数(socket、bind、listen、accept、connect)
- Git 基础命令:git init、git add、git commit、git push、git pull(选择必考)
五、系统维护
- 系统备份:全量备份、增量备份、差异备份(概念必考)
- 日志级别:DEBUG、INFO、WARN、ERROR、FATAL(选择必考)
- 磁盘配额:quota 命令,限制用户 / 组磁盘使用空间(简答考点)