第二阶段:Linux 进阶
一、系统管理
学习目标
- 掌握进程、服务和日志的管理方法。
- 学会自动化任务和软件包管理。
1.1 进程管理
常用命令
| 命令 | 作用 |
|---|---|
ps | 查看进程状态(ps aux 查看所有进程)。 |
top/htop | 实时监控进程资源占用(htop 支持交互式操作)。 |
kill/killall | 终止进程(kill -9 <PID> 强制终止)。 |
nohup | 让进程在终端关闭后继续运行(nohup ./script.sh &)。 |
systemctl | 管理系统服务(启动、停止、重启)。 |
示例:管理服务
sudo systemctl start nginx # 启动 Nginx 服务
sudo systemctl enable nginx # 设置开机自启
sudo systemctl status nginx # 查看服务状态
1.2 日志管理
工具与技巧
journalctl:查看系统日志。journalctl -u nginx.service # 查看 Nginx 服务日志 journalctl --since "1 hour ago" # 查看最近一小时日志logrotate:自动轮转日志文件。# 配置文件示例(/etc/logrotate.conf) /var/log/nginx/*.log { daily rotate 7 compress missingok notifempty }
1.3 软件包管理
Debian/Ubuntu(APT)
sudo apt update # 更新包列表
sudo apt install nginx # 安装 Nginx
sudo apt remove --purge nginx # 彻底卸载
RHEL/CentOS(YUM/DNF)
sudo yum install httpd # 安装 Apache
sudo yum groupinstall "Development Tools" # 安装开发工具包
二、网络配置
学习目标
- 掌握网络配置与诊断工具。
- 学会配置防火墙和 SSH 安全访问。
2.1 网络基础配置
查看网络信息
ip addr show # 查看 IP 地址
nmcli dev show # 使用 NetworkManager 查看设备状态
配置静态 IP
# Ubuntu(Netplan)
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
2.2 防火墙配置
iptables 基础
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许 SSH
sudo iptables -L -v -n # 查看规则
ufw(用户友好防火墙)
sudo ufw allow 80/tcp # 开放 HTTP 端口
sudo ufw enable # 启用防火墙
sudo ufw status # 查看状态
2.3 SSH 高级用法
密钥认证
ssh-keygen -t rsa -b 4096 # 生成密钥对
ssh-copy-id user@server # 上传公钥到服务器
ssh user@server # 无需密码登录
端口转发
ssh -L 8080:localhost:80 user@server # 本地端口转发(访问本地 8080 端口转发到服务器 80 端口)
ssh -R 8080:localhost:3000 user@server # 远程端口转发
三、Shell 脚本编程
学习目标
- 掌握 Shell 脚本的进阶语法和调试技巧。
- 学会编写自动化脚本。
3.1 脚本语法
变量与条件
#!/bin/bash
NAME="Alice"
if [ "$USER" == "root" ]; then
echo "当前用户是 root"
else
echo "当前用户是 $USER"
fi
循环与函数
# 循环示例
for i in {1..5}; do
echo "第 $i 次循环"
done
# 函数示例
backup() {
tar -czf backup_$(date +%Y%m%d).tar.gz $1
}
backup "/var/www/html"
3.2 调试脚本
bash -x script.sh # 显示执行过程
set -e # 遇到错误立即退出
set -u # 变量未定义时报错
3.3 实战案例:自动化备份脚本
#!/bin/bash
# 每天凌晨 2 点备份网站目录
0 2 * * * /backup.sh
# backup.sh
tar -czf /backup/$(date +%Y%m%d).tar.gz /var/www/html
find /backup -mtime +7 -exec rm {} \; # 删除 7 天前的备份
四、文本处理工具
学习目标
- 掌握高级文本处理工具(
awk,sed,grep)。 - 学会使用正则表达式。
4.1 awk 处理结构化文本
# 提取用户和 UID
awk -F: '{print $1, $3}' /etc/passwd
# 计算文件行数
awk 'END {print NR}' file.txt
4.2 sed 流编辑
# 替换文本(将 "http" 替换为 "https")
sed -i 's/http/https/g' config.conf
# 删除行(删除第 5 行)
sed -i '5d' file.txt
4.3 正则表达式
# 匹配 IP 地址
grep -E "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" ips.txt
# 提取邮箱地址
grep -Eo "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}\b" logs.txt
综合练习
-
编写一个脚本:监控 CPU 使用率,超过 80% 时发送告警。
#!/bin/bash CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -f1 -d".") if [ $CPU_USAGE -gt 80 ]; then echo "CPU 使用率过高:$CPU_USAGE%" | mail -s "告警" admin@example.com fi -
配置静态 IP 和 DNS:将服务器 IP 设置为
192.168.1.100,DNS 为8.8.8.8。 -
使用
iptables限制 SSH 访问:仅允许来自192.168.1.0/24的 SSH 连接。
总结
通过掌握系统管理、网络配置、Shell 脚本和文本处理工具,你可以高效管理 Linux 系统并解决复杂问题。以下是学习建议:
- 深入理解进程管理:使用
htop和systemctl分析系统性能。 - 编写实用脚本:自动化日志清理、监控告警等任务。
- 模拟网络场景:配置防火墙规则和 SSH 端口转发。

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



