学习目标
- 理解本节涉及的核心主题:Linux 网络管理、总结、Linux 包管理、包管理工具概述。
- 掌握重点命令或工具:
apt、yum、dnf、pacman、rpm、.deb。 - 能够结合示例完成常见操作,并理解关键参数、使用场景与结果差异。
- 能够识别本节相关的常见风险、易错点或排查思路。
学习重点
- 主题范围:Linux 网络管理、总结、Linux 包管理、包管理工具概述、
apt- Debian/Ubuntu 系列、yum- CentOS/RHEL 系列 - 重点命令:
apt、yum、dnf、pacman、rpm、.deb、apt-get - 学习重点:命令用途、关键参数、典型场景、与相近命令的区别
- 复习方式:先理解场景,再动手练习,最后对照结果检查
Linux 网络管理
总结
网络管理是 Linux 系统管理中至关重要的一环,涵盖了网络接口的配置、网络连接的监控与故障排除,以及网络服务和防火墙的管理。通过掌握 ifconfig、ip、ping、traceroute、netstat、ss、curl、wget、scp、iftop 和 nload 等工具,系统管理员能够有效地配置和监控网络,快速诊断和解决网络问题。
此外,通过配置 iptables、firewalld 和 ufw 等防火墙工具,能够灵活地管理网络流量,保护系统免受未经授权的访问和潜在的网络攻击。合理配置 SSH 服务和远程访问策略,确保系统的安全性和可管理性。
以下是基于具体实例的应用总结:
- 查看所有网络接口信息:
ip addr - 配置静态 IP 地址并设置默认网关:
sudo ip addr add 192.168.1.20/24 dev eth0 sudo ip route add default via 192.168.1.1 - 编辑
/etc/resolv.conf文件以设置 DNS 服务器:nameserver 8.8.8.8 nameserver 8.8.4.4 - 使用
ping测试网络连接:ping -c 4 google.com - 使用
traceroute跟踪路由路径:traceroute google.com - 使用
netstat查看所有监听的 TCP 端口:netstat -tuln - 使用
ss查看所有活动的 TCP 连接:ss -at - 下载文件使用
curl和wget:curl -O https://www.example.com/file.zip wget -c https://www.example.com/file.zip - 使用
scp远程复制文件到远程主机:scp /home/alice/file.txt bob@remotehost:/home/bob/ - 实时监控网络流量使用
iftop和nload:sudo iftop -i eth0 nload -i eth0 -o eth0 - 配置
iptables防火墙规则:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -P INPUT DROP sudo iptables-save | sudo tee /etc/iptables/rules.v4 - 使用
firewalld配置防火墙服务:sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --reload - 配置 SSH 服务以仅使用密钥认证并禁用 Root 登录:
sudo nano /etc/ssh/sshd_config # 设置以下选项 PubkeyAuthentication yes PasswordAuthentication no PermitRootLogin no sudo systemctl restart sshd
Linux 包管理
包管理工具概述
Linux 发行版通常配备特定的包管理工具,用于管理软件包的安装、更新和卸载。不同的发行版可能使用不同的包管理系统,以下将介绍几种主要的包管理工具。
apt - Debian/Ubuntu 系列
apt(Advanced Package Tool)是 Debian 及其衍生发行版(如 Ubuntu)使用的包管理工具。它简化了软件包的安装、更新和管理过程,支持从远程仓库自动下载和解决依赖关系。
基本概念与功能
- 软件包:预编译的二进制文件,包含特定应用程序及其依赖。
- 仓库:集中存储软件包的服务器,
apt从中获取软件包信息和文件。 - 依赖关系:软件包之间的相互依赖,
apt自动处理依赖关系,确保软件正常运行。
常用命令与操作
-
更新软件包列表
sudo apt update说明:从配置的仓库中获取最新的软件包信息。
-
升级已安装的软件包
sudo apt upgrade说明:升级所有已安装的软件包到最新版本。
-
安装软件包
sudo apt install 软件包名称示例:安装
vim编辑器sudo apt install vim -
卸载软件包
sudo apt remove 软件包名称示例:卸载
vim编辑器sudo apt remove vim移除软件包及其配置文件
sudo apt purge 软件包名称 -
搜索软件包
apt search 关键词示例:搜索包含
python的软件包apt search python -
查看软件包详情
apt show 软件包名称示例:查看
vim软件包详情apt show vim
yum - CentOS/RHEL 系列
yum(Yellowdog Updater, Modified)是 CentOS 和 RHEL(Red Hat Enterprise Linux)使用的包管理工具,基于 RPM(Red Hat Package Manager)系统。yum 简化了软件包的安装、更新和管理,并自动解决依赖关系。
基本概念与功能
- RPM 包:预编译的二进制文件,包含特定应用程序及其依赖。
- 仓库:集中存储 RPM 包的服务器,
yum从中获取软件包信息和文件。 - 插件:扩展
yum功能的模块,如yum-plugin-fastestmirror用于选择最快的镜像源。
常用命令与操作
-
更新软件包列表和升级系统
sudo yum update说明:更新所有已安装的软件包到最新版本。
-
安装软件包
sudo yum install 软件包名称示例:安装
wget工具sudo yum install wget -
卸载软件包
sudo yum remove 软件包名称示例:卸载
wget工具sudo yum remove wget -
搜索软件包
yum search 关键词示例:搜索包含
docker的软件包yum search docker -
查看软件包详情
yum info 软件包名称示例:查看
wget软件包详情yum info wget
dnf - CentOS 8+ 系列
dnf(Dandified YUM)是 CentOS 8 及以上版本和 Fedora 使用的下一代包管理工具,旨在替代 yum。dnf 提供了更好的性能、依赖管理和可扩展性。
基本概念与功能
- RPM 包:与
yum相同,dnf也是基于 RPM 系统。 - 插件支持:
dnf支持更强大的插件机制,扩展其功能。 - 性能优化:改进了元数据处理和依赖解决算法,提高了速度和效率。
常用命令与操作
-
更新软件包列表和升级系统
sudo dnf upgrade说明:升级所有已安装的软件包到最新版本。
-
安装软件包
sudo dnf install 软件包名称示例:安装
htop工具sudo dnf install htop -
卸载软件包
sudo dnf remove 软件包名称示例:卸载
htop工具sudo dnf remove htop -
搜索软件包
dnf search 关键词示例:搜索包含
nodejs的软件包dnf search nodejs -
查看软件包详情
dnf info 软件包名称示例:查看
htop软件包详情dnf info htop -
清理缓存
sudo dnf clean all
pacman - Arch Linux
pacman(package manager)是 Arch Linux 使用的包管理工具,设计简洁高效,支持二进制包的快速安装、更新和管理。pacman 以简单的命令行接口和高度自动化的依赖管理而著称。
基本概念与功能
- 软件包:包含二进制文件、配置文件及安装脚本,格式为
.pkg.tar.zst。 - 仓库:集中存储软件包的服务器,
pacman从中获取软件包信息和文件。 - AUR(Arch User Repository):社区维护的软件包仓库,用户可以通过辅助工具(如
yay)从 AUR 安装软件。
常用命令与操作
-
更新软件包数据库和系统
sudo pacman -Syu说明:同步软件包数据库并升级所有已安装的软件包。
-
安装软件包
sudo pacman -S 软件包名称示例:安装
vim编辑器sudo pacman -S vim -
卸载软件包
sudo pacman -R 软件包名称示例:卸载
vim编辑器sudo pacman -R vim移除软件包及其未被其他包依赖的依赖
sudo pacman -Rs 软件包名称 -
搜索软件包
pacman -Ss 关键词示例:搜索包含
python的软件包pacman -Ss python -
查看软件包详情
pacman -Qi 软件包名称示例:查看
vim软件包详情pacman -Qi vim -
清理缓存
sudo pacman -Sc
rpm 与 .deb 包管理
除了使用高级包管理工具,Linux 还支持直接使用包管理器来处理 RPM 和 DEB 格式的软件包。这些工具提供了更底层的包管理功能,适用于高级用户和特定场景。
RPM 包管理基础
RPM(Red Hat Package Manager)是一个广泛使用的包管理系统,主要用于 Red Hat 系列的发行版(如 CentOS、RHEL、Fedora)。
安装 RPM 包(rpm -ivh)
- 命令语法
sudo rpm -ivh 软件包名称.rpm - 示例:安装
nginxRPM 包sudo rpm -ivh nginx-1.18.0-1.el8.x86_64.rpm
卸载 RPM 包(rpm -e)
- 命令语法
sudo rpm -e 软件包名称 - 示例:卸载
nginx包sudo rpm -e nginx
查询 RPM 包信息(rpm -qi)
- 命令语法
rpm -qi 软件包名称 - 示例:查看
nginx包信息rpm -qi nginx
DEB 包管理基础
DEB(Debian Package)是 Debian 及其衍生发行版(如 Ubuntu)使用的包管理格式,主要通过 dpkg 工具进行管理。
安装 DEB 包(dpkg -i)
- 命令语法
sudo dpkg -i 软件包名称.deb - 示例:安装
google-chromeDEB 包sudo dpkg -i google-chrome-stable_current_amd64.deb - 解决依赖问题
安装过程中如果遇到依赖问题,可以使用以下命令修复:sudo apt-get install -f
卸载 DEB 包(dpkg -r)
- 命令语法
sudo dpkg -r 软件包名称 - 示例:卸载
google-chrome包sudo dpkg -r google-chrome-stable
查询 DEB 包信息(dpkg -l)
- 命令语法
dpkg -l | grep 软件包名称 - 示例:查看
google-chrome包信息dpkg -l | grep google-chrome
安装、更新与卸载软件包
包管理工具不仅用于安装和卸载软件包,还负责系统的整体更新和维护。以下将介绍如何使用不同的包管理工具执行这些操作。
使用 apt-get, yum, dnf, pacman 等工具
不同的 Linux 发行版使用不同的包管理工具,以下以 apt、yum、dnf 和 pacman 为例,介绍安装、更新与卸载软件包的方法。
安装软件包
-
Debian/Ubuntu (
apt)sudo apt install 软件包名称示例:安装
curlsudo apt install curl -
CentOS/RHEL (
yum)sudo yum install 软件包名称示例:安装
curlsudo yum install curl -
CentOS 8+ 系列 (
dnf)sudo dnf install 软件包名称示例:安装
curlsudo dnf install curl -
Arch Linux (
pacman)sudo pacman -S 软件包名称示例:安装
curlsudo pacman -S curl
更新软件包
-
Debian/Ubuntu (
apt)sudo apt update && sudo apt upgrade说明:
apt update更新软件包列表,apt upgrade升级已安装的软件包。 -
CentOS/RHEL (
yum)sudo yum update -
CentOS 8+ 系列 (
dnf)sudo dnf upgrade -
Arch Linux (
pacman)sudo pacman -Syu说明:
-Syu同步软件包数据库并升级所有已安装的软件包。
卸载软件包
-
Debian/Ubuntu (
apt)sudo apt remove 软件包名称示例:卸载
curlsudo apt remove curl移除软件包及其配置文件
sudo apt purge 软件包名称 -
CentOS/RHEL (
yum)sudo yum remove 软件包名称示例:卸载
curlsudo yum remove curl -
CentOS 8+ 系列 (
dnf)sudo dnf remove 软件包名称示例:卸载
curlsudo dnf remove curl -
Arch Linux (
pacman)sudo pacman -R 软件包名称示例:卸载
curlsudo pacman -R curl移除软件包及其未被其他包依赖的依赖
sudo pacman -Rs curl
查找软件包
在安装软件包之前,通常需要先查找软件包的名称或描述。不同的包管理工具提供了不同的搜索命令。
-
Debian/Ubuntu 使用
apt-cache searchapt-cache search 关键词示例:搜索包含
python的软件包apt-cache search python输出示例:
python3 - interactive high-level object-oriented language (default version) python3-pip - Python package installer python3-venv - Python 3 module for creating virtual environments -
CentOS/RHEL 使用
yum searchyum search 关键词示例:搜索包含
python的软件包yum search python输出示例:
Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirror.centos.org * extras: mirror.centos.org * updates: mirror.centos.org ===================================== Name Matched: python ====================================== python.x86_64 : An interpreted, interactive, object-oriented programming language python3.x86_64 : An interpreted, interactive, object-oriented programming language -
Arch Linux 使用
pacman -Sspacman -Ss 关键词示例:搜索包含
python的软件包pacman -Ss python输出示例:
community/python 3.10.2-1 Interpreted, interactive, object-oriented programming language community/python-pip 21.2.4-1 Python package installer
应用场景:
- 快速查找所需软件:通过关键词搜索,快速找到需要的软件包及其详细信息。
- 了解软件包依赖:查看软件包的依赖关系,确保系统满足安装要求。
- 发现替代软件:在某些软件包不可用时,寻找功能相似的替代品。
本节总结
- 本节主要围绕 Linux 网络管理、总结、Linux 包管理、包管理工具概述、
apt- Debian/Ubuntu 系列 展开。 - 需要重点掌握的命令或工具包括:
apt、yum、dnf、pacman、rpm、.deb。 - 学习时应优先抓住「命令解决什么问题、在什么场景下使用、执行后会产生什么结果」。
- 对涉及权限、覆盖、网络、系统服务、删除或安全配置的操作,建议先在测试环境练习。
复习建议
- 先用自己的话复述本节每个主题或命令的作用,避免只记参数不懂用途。
- 按原文示例至少手敲一遍典型命令,并观察输出变化。
- 对高风险操作先确认路径、权限和目标对象,再执行实际命令。
- 可优先复习这些高频命令:
apt、yum、dnf、pacman、rpm、.deb。