00.01.Linux系统基础概念详解
前言
Linux 作为一款开源、高效、稳定的操作系统,已广泛应用于服务器、嵌入式设备、云计算等领域。本指南将从基础概念到高级技巧,全面覆盖 Linux 系统的核心知识与实用技能,帮助你快速掌握 Linux 系统的使用与管理。
一、Linux 基础概念与历史
1.1 Linux 的诞生与发展
-
起源:1991 年,芬兰学生 Linus Torvalds 为替代 Minix 系统,开发并发布了 Linux 0.01 版本,核心目标是创建一个自由、开源的操作系统内核。
-
发展里程碑:
- 1994 年:Linux 1.0 发布(首个稳定版本)
- 2003 年:Linux 2.6 发布(引入大量新特性,奠定现代架构)
- 2011 年:Linux 3.0 发布(版本号跳跃,无重大架构变更)
- 2019 年:Linux 5.0 发布(持续优化性能与兼容性)
-
核心特点:开源免费、多用户多任务、跨平台支持、高度可定制。
系统版本查看命令
# 查看内核版本
uname -r
# 查看完整系统信息(内核、主机名、架构等)
uname -a
1.2 操作系统架构
Linux 采用分层架构设计,从底层到上层依次为:
| 层级 | 功能描述 |
|---|---|
| 硬件层 | 物理设备,如 CPU、内存、硬盘、网卡、显卡等 |
| 内核层 | 系统核心,负责硬件资源管理(进程调度、内存分配、文件系统、设备驱动等) |
| Shell 层 | 命令解释器(如 Bash、Zsh),作为用户与内核的交互接口 |
| 应用层 | 各类用户程序与工具,如浏览器、编辑器、数据库等 |
硬件信息查看命令
# 查看 CPU 详细信息
cat /proc/cpuinfo
# 查看内存使用情况(人性化显示)
free -h
# 查看磁盘使用情况
df -h
# 查看所有 PCI 设备(如网卡、显卡)
lspci
1.3 主流发行版介绍
Linux 发行版是基于 Linux 内核的完整操作系统,包含内核、软件包管理工具及各类应用。主流发行版可分为以下系列:
1. Debian 系列
-
特点:稳定性强、软件仓库丰富、社区支持活跃。
-
代表发行版:
- Debian:适合追求极致稳定的服务器场景。
- Ubuntu:桌面与服务器通用,新手友好,云计算领域应用广泛。
- Linux Mint:基于 Ubuntu,注重桌面用户体验。
2. Red Hat 系列
-
特点:企业级支持、长生命周期、稳定性突出。
-
代表发行版:
- RHEL(Red Hat Enterprise Linux) :商业企业级系统,提供官方支持。
- CentOS:RHEL 的社区免费版,适合企业服务器。
- Fedora:包含最新技术,适合开发者与技术尝鲜者。
3. 其他发行版
- Arch Linux:滚动更新模式,高度可定制,适合进阶用户。
- SUSE:欧洲流行的企业级发行版,注重系统管理与稳定性。
发行版版本查看命令
# Debian/Ubuntu 系统
lsb_release -a
# CentOS/RHEL 系统
cat /etc/redhat-release
# Arch Linux 系统
cat /etc/arch-release
# SUSE 系统
cat /etc/SuSE-release
发行版选择建议
- 服务器场景:优先选择 CentOS(稳定性)、Ubuntu Server(云计算适配)、Debian(长期支持)。
- 桌面场景:新手推荐 Ubuntu/Linux Mint,开发者推荐 Fedora/Arch Linux。
- 嵌入式场景:轻量级发行版如 Alpine Linux、Buildroot。
二、Linux 命令行基础操作
2.1 Shell 简介
Shell 是用户与 Linux 内核交互的命令解释器,常见类型:
- Bash:大多数 Linux 发行版默认 Shell,功能全面。
- Zsh:增强版 Shell,支持主题、插件与高级补全。
- Fish:交互友好,默认开启语法高亮与自动补全。
Shell 操作命令
# 查看当前使用的 Shell
echo $SHELL
# 切换 Shell(需提前安装)
chsh -s /bin/zsh # 切换为 Zsh
2.2 基础命令速查表
系统信息命令
# 显示当前用户名
whoami
# 显示主机名
hostname
# 显示当前系统时间
date
# 显示系统负载与运行时间
uptime # 格式:运行时间 用户数 1/5/15分钟负载
目录操作命令
# 显示当前工作目录
pwd
# 切换目录
cd /path/to/directory # 绝对路径切换
cd ../subdir # 相对路径切换(上级目录的subdir)
cd ~ # 切换到用户家目录
cd - # 切换到上一次所在目录
# 创建目录
mkdir new_dir # 创建单个目录
mkdir -p dir1/dir2/dir3 # 递归创建多级目录
# 删除空目录
rmdir empty_dir
文件操作命令
# 创建空文件
touch file.txt
# 复制文件/目录
cp source.txt dest.txt # 复制文件
cp -r source_dir/ dest_dir/ # 递归复制目录
# 移动/重命名文件/目录
mv old.txt new.txt # 重命名文件
mv file.txt /path/to/directory/ # 移动文件
# 删除文件/目录
rm file.txt # 删除文件(需确认)
rm -f file.txt # 强制删除文件(不确认)
rm -r dir/ # 递归删除目录及内容
2.3 命令行效率技巧
常用快捷键
| 快捷键 | 功能描述 |
|---|---|
| Ctrl + A | 光标跳转至行首 |
| Ctrl + E | 光标跳转至行尾 |
| Ctrl + C | 终止当前命令执行 |
| Ctrl + L | 清屏(等同 clear 命令) |
| Ctrl + R | 搜索历史命令(输入关键词匹配) |
| Tab | 自动补全命令/文件名(双击显示候选) |
| Ctrl + Z | 暂停当前任务并放入后台 |
| !! | 重复执行上一条命令 |
| !n | 执行历史记录中第 n 条命令 |
| !keyword | 执行最近以 keyword 开头的命令 |
命令历史管理
# 查看命令历史
history
# 清除命令历史
history -c
# 将历史记录保存到文件
history > command_history.txt
三、Linux 文件系统管理
3.1 文件系统结构
Linux 采用单根树状目录结构,所有文件从根目录(/)开始。核心目录功能如下:
| 目录路径 | 功能描述 |
|---|---|
/ |
根目录,所有文件的起点 |
/etc |
系统配置文件目录(如网络、服务配置) |
/home |
用户主目录(每个用户一个子目录,如 /home/username) |
/var |
可变文件目录(日志、缓存、数据库文件等,内容随系统运行变化) |
/tmp |
临时文件目录(系统重启后清空,所有用户可读写) |
/usr |
应用程序与共享资源目录(如 /usr/bin 存放用户命令,/usr/lib 存放库文件) |
/boot |
系统启动相关文件(内核、引导程序) |
/dev |
设备文件目录(硬件设备以文件形式呈现,如 /dev/sda 代表第一块硬盘) |
目录结构查看命令
# 以树形结构显示目录(需安装 tree 工具)
tree -L 1 / # 显示根目录下一级目录结构
3.2 文件内容查看与搜索
文件内容查看命令
# 查看文件全部内容
cat file.txt
# 分页查看长文件(按 q 退出)
less file.txt # 支持上下滚动、搜索(/关键词)
# 查看文件前 N 行
head -n 10 file.txt # 查看前10行
# 查看文件后 N 行
tail -n 5 file.txt # 查看后5行
# 实时跟踪文件更新(常用于日志监控)
tail -f /var/log/syslog # 实时显示日志新增内容
文件搜索命令
# 按名称查找文件(区分大小写)
find /home -name "document.txt" # 精确匹配
find /home -name "*.txt" # 匹配所有txt文件
# 按内容搜索文件
grep "error" /var/log/syslog # 在单个文件中搜索关键词
grep -r "warning" /var/log/ # 递归搜索目录中含关键词的文件
grep -i "Error" file.txt # 忽略大小写搜索
3.3 文件权限管理
Linux 文件权限控制用户对文件的访问权限,分为读(r)、写(w)、执行(x) 三种权限,对应三类对象:所有者(u)、所属组(g)、其他用户(o) 。
权限表示方法
- 符号表示:如
rwxr-xr--表示所有者可读可写可执行,所属组可读可执行,其他用户仅可读。 - 数字表示:r=4,w=2,x=1,权限值为三类对象权限之和。如
754表示所有者7(rwx)、所属组5(r-x)、其他用户4(r--)。
权限操作命令
# 查看文件权限
ls -l file.txt # 输出格式:权限 所有者 所属组 大小 时间 文件名
# 数字方式修改权限
chmod 644 file.txt # 所有者读写(6),其他只读(4)
# 符号方式修改权限
chmod u+x file.txt # 给所有者添加执行权限
chmod g-w file.txt # 移除所属组的写权限
chmod o=r file.txt # 给其他用户设置只读权限
chmod a+r file.txt # 给所有用户添加读权限(a=all)
# 递归修改目录权限(含子文件)
chmod -R 755 /path/to/dir
# 修改文件所有者与所属组
chown user:group file.txt # 同时修改所有者和所属组
chown user file.txt # 仅修改所有者
chgrp group file.txt # 仅修改所属组
高级权限控制(ACL)
ACL(Access Control List)提供更精细的权限管理,支持对单个用户/组设置权限:
# 安装 ACL 工具(部分系统默认已安装)
apt install acl # Debian/Ubuntu
yum install acl # CentOS/RHEL
# 为用户设置 ACL 权限
setfacl -m u:username:rwx file.txt # 允许用户username读写执行
# 为组设置 ACL 权限
setfacl -m g:groupname:rx file.txt # 允许组groupname读执行
# 查看文件 ACL 权限
getfacl file.txt
四、Linux 用户与权限管理
4.1 用户账户管理
Linux 是多用户系统,每个用户通过唯一 UID(用户 ID)标识(root 用户 UID 为 0)。
用户操作命令
# 创建用户(-m 自动创建家目录)
useradd -m username
# 设置用户密码
passwd username # 执行后输入密码(输入时无显示)
# 修改用户信息(如全名、家目录)
usermod -c "Full Name" -d /new/home username
# 删除用户(保留家目录)
userdel username
# 删除用户及家目录
userdel -r username
# 查看用户详细信息(UID、GID、所属组等)
id username
4.2 用户组管理
用户组用于批量管理用户权限,每个用户至少属于一个主组,可加入多个附加组。
组操作命令
# 创建用户组
groupadd groupname
# 将用户加入附加组(-a 保留现有组,-G 指定附加组)
usermod -aG groupname username
# 从组中移除用户
gpasswd -d username groupname
# 查看用户所属组
groups username
# 查看组内成员
getent group groupname
4.3 特权管理(sudo)
sudo 允许普通用户临时获取 root 权限,需通过 /etc/sudoers 配置授权。
sudo 常用操作
# 以 root 权限执行命令
sudo command # 输入当前用户密码验证
# 切换到 root 用户(交互式 shell)
sudo -i
# 查看 sudo 权限配置
sudo cat /etc/sudoers | grep -v "^#" # 过滤注释行
# 配置 sudo 权限(需 root 执行,使用 visudo 确保语法正确)
sudo visudo
# 在文件中添加:username ALL=(ALL) ALL # 允许 username 执行所有命令
五、Linux 进程与服务管理
5.1 进程基础
进程是程序的运行实例,每个进程有唯一 PID(进程 ID),由内核负责创建、调度与终止。
进程查看命令
# 查看系统所有进程(详细格式)
ps aux # a=所有用户进程,u=显示用户信息,x=包含无终端进程
# 动态查看进程(按 CPU 使用率排序)
top -o %CPU # 按 q 退出,按 P 切换 CPU 排序,按 M 切换内存排序
# 增强版进程查看工具(需安装)
htop # 支持鼠标操作,颜色区分进程状态
进程控制命令
# 终止进程(正常终止,发送 SIGTERM 信号)
kill PID
# 强制终止进程(发送 SIGKILL 信号,无法忽略)
kill -9 PID
# 根据进程名终止进程(需安装 pkill)
pkill process_name
# 查看进程树(显示进程间关系)
pstree -p # -p 显示 PID
5.2 服务管理(systemd)
现代 Linux 发行版普遍使用 systemd 管理系统服务,服务以 *.service 配置文件定义。
服务操作命令
# 查看服务状态
systemctl status service_name # 如 sshd、nginx
# 启动服务
systemctl start service_name
# 停止服务
systemctl stop service_name
# 重启服务
systemctl restart service_name
# 重新加载配置(不中断服务)
systemctl reload service_name
# 设置服务开机自启
systemctl enable service_name
# 禁用服务开机自启
systemctl disable service_name
# 查看所有已启动的服务
systemctl list-active-services
5.3 后台任务管理
通过后台运行任务,可避免终端被占用,适合长时间运行的命令。
后台任务操作
# 后台运行命令(结尾加 &)
long_running_command &
# 查看后台任务列表
jobs # 输出格式:任务ID 状态 PID 命令
# 将后台任务调至前台
fg %job_id # job_id 为 jobs 命令显示的任务编号
# 暂停当前前台任务并放入后台
Ctrl + Z # 暂停任务
bg %job_id # 让暂停的任务在后台继续运行
# 脱离终端运行任务(终端关闭后仍继续)
nohup long_running_command & # 输出重定向到 nohup.out
六、Linux 软件包管理
软件包管理工具用于安装、卸载、升级软件,不同发行版采用不同工具。
6.1 Debian/Ubuntu 系列(APT)
APT(Advanced Package Tool)是 Debian 系列的包管理工具,依赖 deb 格式软件包。
APT 常用命令
# 更新软件包列表(获取最新版本信息)
sudo apt update
# 安装软件
sudo apt install package_name
# 卸载软件(保留配置文件)
sudo apt remove package_name
# 彻底卸载(删除配置文件)
sudo apt purge package_name
# 升级所有可更新软件
sudo apt upgrade
# 搜索软件包
apt search keyword # 按关键词搜索
# 查看软件包信息
apt show package_name # 显示版本、依赖、描述等
6.2 Red Hat 系列(YUM/DNF)
YUM(Yellowdog Updater Modified)是 CentOS/RHEL 的包管理工具,新版 RHEL 8+ 已用 DNF 替代 YUM(命令兼容),依赖 rpm 格式软件包。
YUM/DNF 常用命令
# 安装软件
sudo yum install package_name
# 卸载软件
sudo yum remove package_name
# 升级软件
sudo yum update package_name
# 升级系统所有软件
sudo yum update
# 搜索软件包
yum search keyword
# 查看软件包信息
yum info package_name
6.3 源码编译安装
对于无预编译包的软件,可通过源码编译安装,步骤如下:
# 1. 解压源码包
tar -xzf package.tar.gz
cd package_dir
# 2. 配置编译选项(--prefix 指定安装目录)
./configure --prefix=/usr/local/package
# 3. 编译源码
make # 可加 -jN 多线程编译(N为CPU核心数)
# 4. 安装编译结果
sudo make install
6.4 国内软件源配置
默认软件源位于国外,下载速度慢,建议更换为国内镜像源(如阿里云、清华大学)。
Ubuntu 更换阿里源
# 备份原配置
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 写入阿里源(适用于 Ubuntu 24.04,其他版本需修改版本代号)
sudo tee /etc/apt/sources.list << EOF
deb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
EOF
# 更新源列表
sudo apt update
CentOS 更换阿里源
# 备份原配置
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下载阿里源配置(CentOS 7)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 生成缓存
sudo yum makecache
七、Linux 网络配置与管理
7.1 网络基础信息查看
# 查看网络接口与 IP 地址
ip addr # 或 ifconfig(部分系统需安装 net-tools)
# 查看路由表(默认网关、子网路由)
ip route # 或 route -n
# 查看网络连接状态(监听端口、已建立连接)
ss -tuln # t=TCP, u=UDP, l=监听, n=数字显示端口
ss -antp # a=所有连接, n=数字显示, p=显示进程
7.2 网络连接测试工具
# 测试网络连通性(ICMP 协议)
ping -c 4 example.com # -c 指定发送次数
# 跟踪数据包路由路径
traceroute example.com # 或 tracepath(简化版)
# DNS 解析测试
nslookup example.com # 或 dig example.com
# 端口连通性测试
telnet example.com 80 # 测试 TCP 80 端口
nc -zv example.com 80-81 # nc 工具批量测试端口(-z 扫描模式,-v 详细输出)
7.3 防火墙配置
防火墙用于控制网络流量,不同发行版默认工具不同。
UFW(Uncomplicated Firewall,Ubuntu 默认)
UFW 是简化的防火墙工具,基于 iptables:
# 启用防火墙
sudo ufw enable
# 允许 SSH 连接(默认端口 22)
sudo ufw allow ssh
# 允许指定端口(如 HTTP 80 端口)
sudo ufw allow 80/tcp
# 允许指定 IP 访问所有端口
sudo ufw allow from 192.168.1.100
# 查看防火墙规则
sudo ufw status
# 禁用防火墙
sudo ufw disable
firewalld(CentOS 默认)
firewalld 是动态防火墙管理工具,支持网络区域配置:
# 启动防火墙服务
sudo systemctl start firewalld
sudo systemctl enable firewalld # 设置开机自启
# 允许 SSH 服务
sudo firewall-cmd --permanent --add-service=ssh
# 允许 80 端口(TCP)
sudo firewall-cmd --permanent --add-port=80/tcp
# 重新加载配置(使规则生效)
sudo firewall-cmd --reload
# 查看当前规则
sudo firewall-cmd --list-all
八、Shell 脚本编程入门
Shell 脚本是批量执行命令的文本文件,可实现自动化任务。
8.1 脚本基础结构
#!/bin/bash
# 这是注释:脚本功能描述
# 脚本文件名:hello.sh
echo "Hello, Linux!" # 输出文本
脚本运行方法
# 1. 赋予执行权限后直接运行
chmod +x hello.sh
./hello.sh
# 2. 通过 bash 命令运行(无需执行权限)
bash hello.sh
8.2 变量与参数
- 变量定义:
变量名=值(等号前后无空格) - 变量引用:
$变量名或${变量名}(推荐后者,避免歧义) - 位置参数:
$1至$9表示脚本传入的参数,$0为脚本名,$#为参数个数。
示例脚本
#!/bin/bash
# 变量示例
name="Linux"
version=5.4
echo "系统名称: $name"
echo "内核版本: ${version}" # 推荐使用 ${} 形式
# 参数示例
echo "脚本名称: $0"
echo "第一个参数: $1"
echo "参数总数: $#"
运行脚本:
chmod +x var_demo.sh
./var_demo.sh "test" # 输出:脚本名称: ./var_demo.sh;第一个参数: test;参数总数: 1
8.3 条件判断与循环
条件判断(if 语句)
#!/bin/bash
read -p "请输入数字: " num # 读取用户输入
# 条件判断格式:if [ 条件 ]; then ... fi
if [ $num -gt 10 ]; then
echo "数字大于10"
elif [ $num -eq 10 ]; then
echo "数字等于10"
else
echo "数字小于10"
fi
循环语句
#!/bin/bash
# for 循环:遍历列表
echo "For 循环示例:"
for i in {1..5}; do # {1..5} 表示 1到5 的序列
echo "循环次数: $i"
done
# while 循环:条件满足时执行
echo -e "\nWhile 循环示例:"
count=1
while [ $count -le 3 ]; do
echo "While 循环: $count"
count=$((count + 1)) # 变量自增
done
8.4 实用脚本示例:日志备份
#!/bin/bash
# 功能:每日备份 /var/log 目录日志,并删除7天前的备份
BACKUP_DIR="/backup/logs" # 备份目录
TIMESTAMP=$(date +%Y%m%d_%H%M%S) # 时间戳(如 20231001_153045)
# 创建备份目录(不存在则创建)
mkdir -p $BACKUP_DIR
# 压缩备份日志(保留权限)
tar -czpf $BACKUP_DIR/logs_$TIMESTAMP.tar.gz /var/log
# 删除7天前的备份文件
find $BACKUP_DIR -name "logs_*.tar.gz" -mtime +7 -delete
echo "日志备份完成: $BACKUP_DIR/logs_$TIMESTAMP.tar.gz"
可通过 crontab 设置定时执行(如每天凌晨3点):
# 编辑定时任务
crontab -e
# 添加一行:0 3 * * * /path/to/backup_logs.sh
九、Linux 系统安全与维护
9.1 系统安全基础
账户安全检查
# 查看特权用户(UID=0 的用户,正常应只有 root)
awk -F: '($3 == 0) {print $1}' /etc/passwd
# 检查空密码账户(存在安全风险)
awk -F: '($2 == "") {print $1}' /etc/shadow
# 查看拥有 sudo 权限的用户
grep "ALL=(ALL)" /etc/sudoers
登录日志分析
# 查看最近登录记录
last -n 10 # 显示最近10条登录记录
# 查看失败登录尝试
lastb -n 10 # 需 root 权限
# 查看 SSH 登录日志
grep "sshd" /var/log/auth.log # Debian/Ubuntu
grep "sshd" /var/log/secure # CentOS/RHEL
9.2 防暴力破解(fail2ban)
fail2ban 可监控登录日志,自动封禁多次失败尝试的 IP。
安装与配置
# 安装 fail2ban
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # CentOS/RHEL
# 创建自定义配置(覆盖默认设置)
sudo tee /etc/fail2ban/jail.local << EOF
[sshd]
enabled = true # 启用 SSH 防护
port = ssh # 目标端口
filter = sshd # 使用预设的 sshd 过滤器
logpath = /var/log/auth.log # Debian/Ubuntu 日志路径
# logpath = /var/log/secure # CentOS/RHEL 日志路径
maxretry = 3 # 允许 3 次失败尝试
bantime = 3600 # 封禁 1 小时(3600秒)
EOF
# 启动服务并设置开机自启
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
# 查看封禁状态
sudo fail2ban-client status sshd
9.3 系统备份与恢复
常用备份工具
# 1. rsync:增量备份工具(适合目录同步)
# 本地备份
rsync -av /source/dir /backup/dir # -a 归档模式(保留权限),-v 详细输出
# 远程备份(通过 SSH)
rsync -avz -e ssh /source/dir user@remote_host:/backup/dir # -z 压缩传输
# 2. tar:压缩备份(适合一次性备份)
tar -czpf backup.tar.gz /important/files # -c 创建,-z 压缩,-p 保留权限,-f 输出文件
9.4 病毒扫描(ClamAV)
ClamAV 是开源 antivirus 工具,可扫描恶意文件。
# 安装 ClamAV
sudo apt install clamav clamav-daemon # Debian/Ubuntu
sudo yum install clamav clamav-update # CentOS/RHEL
# 更新病毒库
sudo freshclam # 首次更新需停止 clamav-daemon 服务
# 扫描目录
sudo clamscan -r /home # 递归扫描 /home 目录
sudo clamscan -r --remove /tmp # 扫描并自动删除感染文件
十、Linux 高级技巧与故障排查
10.1 高效操作技巧
命令行效率提升
# 快速复制上一条命令的参数
echo !$ # 输出上条命令的最后一个参数(如先执行 ls file.txt,再执行 echo !$ 输出 file.txt)
# 命令输出同时显示与保存
command | tee output.log # 终端显示输出,同时保存到 output.log
# 查找占用文件的进程
lsof /path/to/file # 显示打开该文件的进程
# 查找占用端口的进程
lsof -i :8080 # 查找占用 8080 端口的进程
ss -antp | grep 8080 # 另一种方式
10.2 常见故障排查
磁盘空间不足
# 1. 查看磁盘使用情况,定位满盘分区
df -h
# 2. 进入满盘分区,查找大文件(大于100M)
cd /path/to/full/partition
find . -type f -size +100M 2>/dev/null # 忽略错误信息
# 3. 清理系统日志(安全操作)
sudo journalctl --vacuum-size=100M # 保留 100M 日志
sudo rm -f /var/log/*.log.* # 删除旧日志归档
网络故障排查
# 1. 检查 DNS 配置(域名解析问题)
cat /etc/resolv.conf # 查看 DNS 服务器
# 2. 检查网关连通性(路由问题)
ping $(ip route show default | awk '/default/ {print $3}') # ping 默认网关
# 3. 抓包分析(需安装 tcpdump)
sudo tcpdump -i eth0 port 80 -w capture.pcap # 抓取 eth0 接口 80 端口数据包
10.3 系统性能优化
# 查看 CPU 使用率高的进程
ps aux --sort=-%cpu | head -10 # 取前10个
# 查看内存占用高的进程
ps aux --sort=-%mem | head -10
# 清理系统缓存(临时释放内存,非必要不执行)
sudo sync; echo 3 > /proc/sys/vm/drop_caches # 清理页缓存、目录项和inode缓存
结语
Linux 学习是一个“实践出真知”的过程,掌握基础命令后,建议通过实际任务(如搭建服务器、编写自动化脚本)深化理解。遇到问题时,善用 man 命令名 查看手册,或借助社区(如 Stack Overflow、Linux 中国)寻求帮助。随着实践积累,你将逐渐掌握 Linux 系统的精髓,享受开源技术的强大与灵活。
本文来自博客园,作者:{雾里看浮光(南知意)},转载请注明原文链接:{https://www.cnblogs.com/JaseLee}

浙公网安备 33010602011771号