第二阶段:Linux 进阶

第二阶段: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

综合练习

  1. 编写一个脚本:监控 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
    
  2. 配置静态 IP 和 DNS:将服务器 IP 设置为 192.168.1.100,DNS 为 8.8.8.8

  3. 使用 iptables 限制 SSH 访问:仅允许来自 192.168.1.0/24 的 SSH 连接。


总结

通过掌握系统管理、网络配置、Shell 脚本和文本处理工具,你可以高效管理 Linux 系统并解决复杂问题。以下是学习建议:

  1. 深入理解进程管理:使用 htopsystemctl 分析系统性能。
  2. 编写实用脚本:自动化日志清理、监控告警等任务。
  3. 模拟网络场景:配置防火墙规则和 SSH 端口转发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值