第十章管理Linux联网摘要本文是一份全面的 Linux 系统管理实践指南涵盖了网络配置、软件包管理、进程控制、磁盘存储管理以及 LAMP 环境部署等核心运维技能。文章首先详细介绍了 RHEL 7/8/9 中网络管理工具 NetworkManager (NM) 的演进、nmcli 命令的使用以及网络诊断工具ping, wget, curl。接着系统讲解了软件安装的两种主要方式源码编译安装与 RPM/YUM/DNF 包管理并阐述了进程查看与管理命令ps, top, kill。在磁盘管理部分深入讲解了分区、格式化、挂载、swap 分区以及 LVM 逻辑卷的创建与扩容。最后通过一个完整的“搭建 Discuz 论坛”综合项目实战演示了 MariaDB、PHP、Nginx 的安装与配置流程将理论知识与实际操作相结合。RHEL9版本特点在RHEL7版本中同时支持network.service和NetworkManager.service简称NM。在RHEL8上默认只能通过NM进行网络配置包括动态ip和静态ip,若不开启NM否则无法使用网络RHEL8依然支持network.service只是默认没安装可以通过yum install network-scripts来安装传统的network.service不过redhat说了在下一个rhel的大版本里将彻底废除因此不建议用network.service。在RHEL9上使用NM进行网络配置ifcfg 也称为 文件将不再是网络配置文件的主存储。虽然 ifcfg 样式仍然可用但它不再是 NetworkManager 存储新网络配置文件的默认位置。从 RHEL 9.0 开始RHEL 以 key-file 格式在 /etc/NetworkManager/system-connections/ 中存储新的网络配置。配置以旧格式存储在 /etc/sysconfig/network-scripts/ 中的连接仍然可以正常工作。对现有配置集的修改会继续更新旧的文件。NM特点NetworkManager是2004年Red Hat启动的项目旨在能够让Linux用户更轻松地处理现代网络需求能自动发现网卡并配置ip地址。NetworkManager的特点NM能管理各种网络有线网卡、无线网卡 动态ip、静态ip 以太网、非以太网 物理网卡、虚拟网卡工具齐全命令行、文本界面、图形界面、web广纳天地管理各种网络有线、无线、物理、虚拟参数丰富多达200多项配置参数包括ethtool参数一统江湖RedHat系、Suse系、Debian/Ubuntu系均支持大势所趋下一个大版本的rhel只能通过NM管理网络1.概念网络接口是指网络中的计算机或网络设备与其他设备实现通讯的进出口一般是指计算机的网络接口即网卡设备从RHEL7开始引入了一种新的“一致网络设备命名”的方式为网络接口命名该方式可以根据固件、设备拓扑、设备类型和位置信息分配固定的名字。网络接口的名称的前两个字符为网络类型符号如:en——表示以太网(Ethernet)wl表示无线局域网(wlan)ww表示无线广域网(wwan)接下来的字符根据设备类型或位置选择如:oindex——表示内置(onboard)于主板上的集成设备(即集成网卡)及索引号;sslot——表示是插在可以热拔插的插槽上的独立设备及索引号;xMAC——表示基于MAC地址命名的设备;pbus——表示PCI插槽的物理位置及编号。注意一个网络接口可以有多个网络连接但同一时间只能有一个网络连接处于活动状态。注意:首先确认你的服务状态开启2.方法nmcli命令作用nmcli可以实现创建显示编辑删除激活和停用网络连接以及控制和显示网络设备状态等示例:(1)显示网络IP接口并关闭ens33端口(2)改变端口连接名称(3)查看已有设备的连接状态(4)开启与关闭一个网络连接Nmcli c upNmcli c down(5)删除并添加动态ip(6)修改为动态ip3.ping命令作用: 用来检测网络的连通情况和分析网络速度根据域名得到服务器 IP根据 ping 返回的 TTL 值来判断对方所使用的操作系统及数据包经过路由器数量。格式: ping -参数 目标主机IP或域名参数:-c 数字用于设定本命令发出的ICMP消息包的数量若无此选项则会无限次发送消息包直到用户按【CtrlC】组合键才终止命令。-s 字节数设置ping命令发出的消息包的大小默认发送的测试数据大小为56字节自动添加8字节的ICMP协议头后,显示的是64字节再添加20字节的IP协议头则显示的为84字节。最大设置值为65507B-i 时间间隔设定前后两次发送ICMP消息包之间的时间间隔无此选项时默认时间间隔为1秒。为了保障本机和目标主机的安全一般不要小于0.2秒-t设置存活时间TTL(Time To Live)示例:显示内容分析:bytes 值数据包大小也就是字节time 值响应时间时间越小速度越快TTL 值Time To Live, 表示 DNS 记录在 DNS 服务器上存在的时间它是 IP 协议包的一个值告诉路由器该数据包何时需要被丢弃。通过TTL 值判断目标系统类型默认情况下Linux 系统的 TTL 值为 64 或 255win11 系统值为644UNIX 主机的 TTL 值为 2554.通过域名访问主机静态解析作用:通过配置/etc/hosts文件实现域名解析5.wget命令作用:用于在终端命令行里下载网络文件英文全称为“web get”参数:-P 下载到指定目录-t 最大尝试次数-b 后台下载模式-c 断点续传-p 下载页面内所有资源包括图片、视频等-r 递归下载6. curl命令curl命令是一个网络工具其主要作用是通过http、https、ftp等方式下载/上传文件第十一章管理Linux软件包和进程1.源码下载安装软件概念- 源码文件程序编写者使用C或C等语言编写的原始代码文本文件- 源码文件使用.tar.gz或.tar.bz2打包成压缩文件特点- 源码包可移植性好与待安装软件的工作环境依赖性不大- 由于有编译过程其代码运行效率较高是针对当前使用者环境的“量体裁衣”- 安装功能可以定制可以选择需要的功能进行安装- 卸载方便只需删除对应安装目录即可没有Windows“注册表”的概念- 安装过程较为麻烦安装过程- 下载解压缩源码压缩包- 分析安装软件环境- 编译软件- 安装软件示例:(1)找到对应版本的nginx并复制下载地址(2)使用wget加上地址,然后下载(3)进行源码编译(4)下载gcc与pcre与openssl(5)配置文件成功(6)make编译(7)make install 安装(8)配置环境变量(9)启动成功2.rpm管理工具概念RPMRPM(Redhat Package Manager)由Red Hat公司提出的一种软件包管理标准是Linux各发行版中应用最广泛的软件包格式之一还有debian的发行版deb安装包。产生原因软件制作者在其工作环境下将软件编译完毕后再进行发布以此减少安装编译时间要求软件安装环境与编译时的环境要相同RPM安装软件要求软件安装环境必须与打包软件环境一致必须满足软件依赖性软件卸载时必须小心最底层软件不能先卸载rpm软件包命名格式含义软件名-版本号-发行号.操作系统版本.硬件平台的类型.rpm如zsh-5.0.2-14.el7.x86_64.rpm3.rpm软件安装格式:rpm -参数 软件包名参数:安装过程读取PRM软件包头部数据进行软件依赖性查询若满足条件则安装否则安装失败4.rpm查询功能格式:rpm –q 包名参数:示例:5.YUM/DNF管理工具概念YUM:YUM (Yellow dog UpdaterModified)RHEL9中默认使用的软件批量管理工具由原版本的yum换成了速度更快的dnfDNF Dandified YUM原有的yum命令仅为dnf的软链接当然依旧可以使用。[rootserver /]# ll which yumYUM/DNF 功能:在线下载、 安装、 卸载、 升级rpm软件包自动查找并解决rpm包之间的依赖关系一次性安装所有具有依赖关系的rpm包而无需管理员逐个、 手工地去安装每一个rpm包工作原理:将编译好的软件放置在YUM服务器中并将这些软件的依赖性等信息记录下来形成表格组成数据库用户安装软件时会向网络中的YUM服务器下载对应表格并与本机RPM数据库进行比较最后一同下载全部软件进行安装自动解决依赖性YUM软件仓库记录软件依赖性等信息的数据库系统会去读取/etc/yum.repos.d/目录下的.repo结尾的文件从该文件中读取以下内容实现装包包含各种rpm安装文件的软件仓库rhel8开始有两个仓库rhel7只有一个仓库BaseOS存储库提供一套核心的底层操作系统功能为基础软件安装库AppStream存储库包括额外的用户空间应用程序、运行时语言和数据库命令:示例:配置本地yum源进入/yum.repos.d/将配置文件都加上enabled0将/dev/cdrom 挂载到/media/上,并检查是否挂载成功(4)进入并编写local.repo(5)下载createrepo,需要禁用localrepo,开启centosrepo(6)进入/registry,输入createrepo生成repodata,之后进入(7)下载并使用httpd服务(8)进入阿帕奇协议,将/registry转移到/var/www/html,,之后可以通过局域网下载资源(9)进入第二个虚拟机,,禁用原来的路径然后创建local.repo6.管理进程概念程序、进程、线程:程序 二进制文件文件存储在磁盘中例如/usr/bin/目录下进程进程是已启动的可执行程序的运行实例进程和程序并不是一一对应的关系相同的程序运行在不同的数据集上就是不同的进程线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流一个进程中可以并发多个线程每条线程并行执行不同的任务。一个进程可以拥有多个线程而一个线程同时只能被一个进程所拥有线程不能单独执行但是每一个线程都有程序的入口、执行序列以及程序出口它必须组成进程才能被执行。7.查看进程ps命令作用ps显示某个时间点的程序运行情况格式:ps -参数参数:-a 显示所有用户的进程-u 显示用户名和启动时间-x 显示 没有控制终端的进程-e 显示所有进程包括没有控制终端的进程-l 长格式显示-w宽行显示可以使用多个 w 进行加宽显示-f做一个更完整的输出8.top命令格式:top [-d 数字] | [-bnp]参数:-d后面可以接秒数就是整个进程界面更新的秒数默认是5秒-b以批次的方式执行top还有更多的参数可用。通常会搭配数据流重定向来将批处理的结果输出为文件。-n与-b搭配进行几次top的输出结果-i不显示闲置或者僵死的进程信息-c显示进程的整个命令路径而不是只显示命令名称-s使top命令在安全模式下运行此时top的交互式指令被取消避免潜在危险-p指定某些个PID来进行查看检测9. kill命令作用:强制结束进程格式::kill 进程名/pidkillall 进程名/pid第十二章磁盘管理1.引言磁盘管理是 Linux 系统运维中最基础也最关键的技能之一。无论是安装系统时的分区规划、运行中的存储扩容还是故障后的数据恢复都离不开对磁盘体系的深入理解。CentOS 提供了 fdisk、parted、LVM、mkfs、mount 等丰富的命令行工具帮助管理员灵活高效地管理存储资源。本文将围绕磁盘分区、逻辑卷管理LVM、文件系统操作、挂载与卸载、磁盘配额以及常见问题排查等内容展开并给出大量可直接操作的命令示例。2.命名规则在 Linux 中磁盘设备以文件形式存在于 /dev/ 目录下命名遵循一定规则IDE 硬盘/dev/hda、/dev/hdb……SATA/SCSI/SAS 硬盘/dev/sda、/dev/sdb、/dev/sdc……NVMe 固态硬盘/dev/nvme0n1、/dev/nvme1n1……虚拟磁盘KVM/VMware/dev/vda、/dev/vdb……分区以数字后缀表示例如 /dev/sda1 表示第一块 SATA 磁盘的第一个分区。3.虚拟机添加磁盘过程4. MBR 与 GPT 分区表MBRMaster Boot Record传统分区表格式最大支持 2TB 磁盘最多 4 个主分区。可通过将其中一个主分区设为扩展分区来创建更多逻辑分区。GPTGUID Partition Table现代分区表格式支持超过 2TB 的大磁盘最多 128 个分区可调整并自带 CRC 校验和备份分区表容错性更好。CentOS 7 建议使用 GPT。5.lsblk命令作用:查看磁盘信息格式:lsblk 参数 设备名参数:-d 仅列出硬盘本身信息不显示分区信息-f 列出磁盘的内的文件系统名称-i : 使用ASCII码格式输出信息-t 显示磁盘的详细信息-p 显示设备完整名称6.fdisk命令作用:fdisk命令工具默认将磁盘划分为MBR格式的分区命令fdisk 设备名注意fdisk命令以交互方式进行操作的在菜单中选择相应功能键即可7.格式化命令mkfs.xfs -参数 硬盘分区名mkfs.ext4 -参数 硬盘分区名参数-f:强制格式化已存在文件系统时需要使用-c:建立文件系统前先检查坏块。-V:输出建立文件系统的详细信息8.blkid命令作用显示设备的UUID值和文件系统名称UUIDUUID全局单一标识符(Universally Unique Identifier),Linux系统会给所有设备分配一个唯一的UUID值以方便挂载格式:blkid 设备名9.挂载概念:mount point挂载点是一个目录该目录是进入磁盘分区文件系统的入口挂载将一个分区或者设备挂载至挂载点目录建立连接通过挂载点目录进入分区空间mount命令格式:mount [-t 文件系统类型] 设备名 挂载点目录参数:-a依照配置文件/etc/fstab的数据将所有未挂载的磁盘都挂载上来-t指定文件系统类型-o 特殊设备选项挂载设备时使用逗号分割输入额外参数umount命令作用卸载分区要移除USB磁盘、U盘、光盘和硬盘时需要先卸载格式:umount 参数 设备名称[挂载点]参数-f 强制卸载10.开机挂载作用:由于mount为手动挂载重启后就会卸载则修改/etc/fstab配置文件实现开机自动挂载共六列分别为:设备名称或其UUID值挂载点目录文件系统名称文件系统参数default是否备份0fsck开机是否用fsck进行扇区检查但xfs文件系统不支持则为 0示例:建立sdb1并分区(1)进入对sdb的引导(2)选择新建主分区表,四个分区默认第一个,为10G(3)分区成功并格式化(4)根目录下创建/sdb1,将/dev/sdb 挂载到 /sdb1 上,使用df -h 查询挂载(5)运行成功Lostfound是文件系统自带的修复和自动检索,恢复的数据会储存其中(6)写入 /etc/fstab 中开机自动挂载注意:根目录/ 是必须挂载的﹐而且一定要先于其它mount point 被挂载其它mount point 必须为已建立的目录可任意指定但一定要遵守必须的系统目录架构原则(FHS)所有mount point 在同一时间之内﹐只能挂载一次。所有partition 在同一时间之内﹐只能挂载一次。11. 增加swap分区swap分区类似于Windows系统虚拟内存的功能将一部分硬盘空间虚拟成内存来使用从而解决内存容量不足的情况因为swap毕竟是用硬盘资源虚拟的所以速度上比真实物理内存要慢方法:一使用分区作为 Swapmkswap /dev/sdb1swapon /dev/sdb1方法二使用文件作为 Swapdd if/dev/zero of/swapfile bs1M count4096chmod 600 /swapfilemkswap /swapfileswapon /swapfile写入 /etc/fstab 永久生效echo /swapfile swap swap defaults 0 0 /etc/fstab注意:swap在服务器中有时会关闭如数据库服务器但一般用于服务器内存剩余空间有一定压力时会触发使用swap空间则swap空间大小设置一般为当物理内存小于2G时swap分区大小为物理内存的2倍超过2G的部分swap分区大小跟物理内存相等可以使用 swapoff命令停用部分swap空间12. df命令作用:列出文件系统的磁盘空间占用情况dfdisk free通过文件系统来快速获取空间大小的信息当我们删除一个文件的时候这个文件不是马上就在文件系统当中消失了而是暂时消失了当所有程序都不用时才会根据OS的规则释放掉已经删除的文件 df记录的是通过文件系统获取到的文件的大小他比du强的地方就是能够看到已经删除的文件而且计算大小的时候把这一部分的空间也加上了更精确了格式: df -参数 目录或文件名参数:-a列出所有的文件系统包括系统特有的/proc等文件系统-k以KB的容量显示各文件系统-m以MB的容量显示各文件系统-h以人们较易阅读的GB,MB,KB等格式自行显示-H以M1000K替代M1024K的进位方式-T连同该分区的文件系统名称例如ext3也列出-i不用硬盘容量而以inode的数量来显示由于df主要读取的数据几乎都是针对整个文件系统因此读取的范围主要是在Super block内的信息所以这个命令显示结果的速度非常快速。13. du命令作用:du显示磁盘空间使用量统计目录或文件所占磁盘空间大小在默认情况下文件大小的单位是KB。dudisk usage是通过搜索文件来计算每个文件的大小然后累加du能看到的文件只是一些当前存在的没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和当文件系统也确定删除了该文件后这时候du与df就一致了格式:du -参数 文件或目录名参数:-a : 列出所有的文件与目录容量因为默认仅统计目录下面的文件量而已-h : 以人们较易读的容量格式G/M显示-s : 列出总量而不列出每个个别的目录占用了容量-S : 不包括子目录下的总计与-s有点差别-k : 以KB列出容量显示-m : 以MB列出容量显示。十三.Lvm逻辑卷1.产生原因:传统磁盘分区容量固定、无法在线扩容、多盘难以整合、迁移麻烦为解决这些问题诞生了逻辑卷 LVM实现存储容量动态伸缩、多盘聚合、灵活管理。2.认识lvm1.PV 物理卷Physical Volume底层实体整块硬盘 / 普通磁盘分区作用将物理设备初始化为 LVM 可识别的格式是 LVM 的最小存储单元特点可单独存在也可加入卷组2.VG 卷组Volume Group作用把多个 PV 整合为一个统一存储资源池特点一个系统可创建多个 VG支持后期动态添加 / 移除 PV扩容资源池3. LV 逻辑卷Logical Volume作用从 VG 资源池中划分出空间作为系统实际使用的分区特点格式化、挂载后即可正常读写支持在线扩容、缩容无需停机重装系统3.LVM基本概念PEphysical extent物理区域物理区域是物理卷中可用于分配的最小存储单元物理区域的大小默认为4MB。物理区域大小一旦确定将不能更改同一卷组中的所有物理卷的物理区域大小需要一致物理卷physical volume简称PV物理卷可以是整个硬盘、硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID)是LVM的基本存储逻辑块但和基本的物理存储介质如分区、磁盘等比较却包含有与LVM相关的管理参数卷组Volume Group简称VG可以看成单独的逻辑磁盘建立在PV之上一个卷组中至少要包括一个PV在卷组建立之后可以动态的添加PV到卷组中。卷组的名称可以自定义逻辑卷logical volume简称LV相当于物理分区。逻辑卷建立在卷组之上卷组中的未分配空间可以用于建立新的逻辑卷逻辑卷建立后可以动态的扩展或缩小空间。系统中的多个逻辑卷可以属于同一个卷组也可以属于不同的多个卷组4.部署lvm逻辑卷常用命令:流程为:pv-vg_lv示例:(1)创建vg0(2)查询vg0的各个属性(3)创建lv1,它来自vg0(4)格式化lv1(5)挂载lv1并将其写入/etc/fstab中(6)对lv1进行拉伸,大小为2559个pe(7)先前在逻辑上进行了拉伸,现在在扩容分区容量(8)卸载逻辑卷,记得闪相关的系统文件十四.综合项目--搭建论坛Lamp Linux/windows apache/nginx mysqld/oracle/pgsql php本节以 CentOS 环境为例完整演示从零搭建 Discuz 论坛的全过程。整体流程分为五个步骤安装 MariaDB 数据库 → 配置 PHP 运行环境 → 部署 Discuz 论坛源码 → 配置 Nginx Web 服务器 → 浏览器访问验证。每一步都给出了可直接执行的命令和关键配置说明一、安装 MariaDB 数据库(1)开启阿帕奇服务(2)安装数据库并设置自启动二、配置 PHP 运行环境(1)安装centos-release-scl.noarch(2)添加扩展yum源并更正文件中的镜像地址(3)找出需要的php并下载安装 PHP 7.3 完整运行环境并搭配 MySQL 原生数据库驱动使 PHP 7.3 程序具备连接 MariaDB/MySQL 的能力安装 PHP-FPMFastCGI Process Manager用于处理 Nginx 转发的 PHP 请求三. 部署 Discuz 论坛源码(1)解压(2) Discuz 在安装和运行过程中需要对 config、data、uc_client、uc_server 这四个核心目录进行读写递归开放全部权限chmod -R 777 config data uc_client uc_server四. 配置 Nginx Web 服务器改配置文件设置网站默认首页优先级在 Nginx 配置中添加 index 指令当浏览器只访问 IP/域名不带具体文件名时Nginx 会按以下顺序查找默认首页文件优先查找 index.php找不到则查找 index.html最后查找 index.htm五. 浏览器访问验证