学习目标

  • 理解本节涉及的核心主题:Linux 网络管理、总结、Linux 包管理、包管理工具概述。
  • 掌握重点命令或工具:aptyumdnfpacmanrpm.deb
  • 能够结合示例完成常见操作,并理解关键参数、使用场景与结果差异。
  • 能够识别本节相关的常见风险、易错点或排查思路。

学习重点

  • 主题范围:Linux 网络管理、总结、Linux 包管理、包管理工具概述、apt - Debian/Ubuntu 系列、yum - CentOS/RHEL 系列
  • 重点命令:aptyumdnfpacmanrpm.debapt-get
  • 学习重点:命令用途、关键参数、典型场景、与相近命令的区别
  • 复习方式:先理解场景,再动手练习,最后对照结果检查

Linux 网络管理

总结

网络管理是 Linux 系统管理中至关重要的一环,涵盖了网络接口的配置、网络连接的监控与故障排除,以及网络服务和防火墙的管理。通过掌握 ifconfigippingtraceroutenetstatsscurlwgetscpiftopnload 等工具,系统管理员能够有效地配置和监控网络,快速诊断和解决网络问题。

此外,通过配置 iptablesfirewalldufw 等防火墙工具,能够灵活地管理网络流量,保护系统免受未经授权的访问和潜在的网络攻击。合理配置 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
    
  • 下载文件使用 curlwget
    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/
    
  • 实时监控网络流量使用 iftopnload
    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 使用的下一代包管理工具,旨在替代 yumdnf 提供了更好的性能、依赖管理和可扩展性。

基本概念与功能
  • 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
    
  • 示例:安装 nginx RPM 包
    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-chrome DEB 包
    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 发行版使用不同的包管理工具,以下以 aptyumdnfpacman 为例,介绍安装、更新与卸载软件包的方法。

安装软件包
  • Debian/Ubuntu (apt)

    sudo apt install 软件包名称
    

    示例:安装 curl

    sudo apt install curl
    
  • CentOS/RHEL (yum)

    sudo yum install 软件包名称
    

    示例:安装 curl

    sudo yum install curl
    
  • CentOS 8+ 系列 (dnf)

    sudo dnf install 软件包名称
    

    示例:安装 curl

    sudo dnf install curl
    
  • Arch Linux (pacman)

    sudo pacman -S 软件包名称
    

    示例:安装 curl

    sudo 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 软件包名称
    

    示例:卸载 curl

    sudo apt remove curl
    

    移除软件包及其配置文件

    sudo apt purge 软件包名称
    
  • CentOS/RHEL (yum)

    sudo yum remove 软件包名称
    

    示例:卸载 curl

    sudo yum remove curl
    
  • CentOS 8+ 系列 (dnf)

    sudo dnf remove 软件包名称
    

    示例:卸载 curl

    sudo dnf remove curl
    
  • Arch Linux (pacman)

    sudo pacman -R 软件包名称
    

    示例:卸载 curl

    sudo pacman -R curl
    

    移除软件包及其未被其他包依赖的依赖

    sudo pacman -Rs curl
    

查找软件包

在安装软件包之前,通常需要先查找软件包的名称或描述。不同的包管理工具提供了不同的搜索命令。

  • Debian/Ubuntu 使用 apt-cache search

    apt-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 search

    yum 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 -Ss

    pacman -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 系列 展开。
  • 需要重点掌握的命令或工具包括:aptyumdnfpacmanrpm.deb
  • 学习时应优先抓住「命令解决什么问题、在什么场景下使用、执行后会产生什么结果」。
  • 对涉及权限、覆盖、网络、系统服务、删除或安全配置的操作,建议先在测试环境练习。

复习建议

  • 先用自己的话复述本节每个主题或命令的作用,避免只记参数不懂用途。
  • 按原文示例至少手敲一遍典型命令,并观察输出变化。
  • 对高风险操作先确认路径、权限和目标对象,再执行实际命令。
  • 可优先复习这些高频命令:aptyumdnfpacmanrpm.deb