Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第2章 Linux用户接口与软件包管理器_第1页
Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第2章 Linux用户接口与软件包管理器_第2页
Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第2章 Linux用户接口与软件包管理器_第3页
Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第2章 Linux用户接口与软件包管理器_第4页
Linux操作系统教程-RHEL10-Rocky10-微课视频版 课件 第2章 Linux用户接口与软件包管理器_第5页
已阅读5页,还剩59页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux操作系统授课教师XXX学院第2章Linux用户接口与软件包管理器第1章Linux简介与安装第2章Linux用户接口与软件包管理器第3章Shell脚本编程第4章系统管理第5章磁盘与文件管理第6章组建Linux局域网第7章提供Internet服务Linux操作系统第2章Linux用户接口与软件包管理器本章学习目标:熟悉GNOME桌面环境了解Shell的相关概念熟练掌握Tab键的使用熟练掌握历史命令、通配符的使用熟练掌握输入/输出重定向与管道熟练掌握vim文本编辑器的使用了解软件包的命名方式熟练掌握rpm命令进行软件的安装、升级、卸载和查询熟练掌握dnf命令进行软件的安装、升级、卸载和查询2.1实例—GNOME及其配置工具GNOME是Linux系统中广泛使用的图形桌面环境,以其现代化设计和高效的用户体验成为RHEL10/Rocky10的默认选择。GNOME基于Wayland协议(替代传统的X11),提供更流畅的图形性能和更高的安全性。用户可以通过GNOME的组件(如顶部栏、活动概览)快速访问应用程序、文件和系统设置,同时支持多种配置工具进行个性化调整。2.1.1安装GNOME经典模式桌面环境RockyLinux10默认使用GNOME作为桌面环境。安装RockyLinux10时,默认未包含GNOME经典模式(GNOMEClassic)相关组件。编者通常使用GNOME经典模式桌面环境。先执行dnfupdate命令更新系统,确保系统是最新的。然后执行reboot命令重启系统。接着执行dnfinstallgnome-classic-session命令安装GNOME经典模式相关组件。安装完成后,执行systemctlrestartgdm命令重启GNOME显示管理器(GDM)以确保会话选项生效。注销当前用户会话,以便应用更改。在登录界面,点击用户名后,会出现齿轮图标(即会话选择菜单),如图2-1所示,选择“GNOME经典模式”,敲回车键后,出现GNOME经典模式桌面环境,如图2-2所示。2.1.2GNOME和GNOME经典模式1.GNOME如果选择了图2-1中的会话选择菜单里的“GNOME”菜单项,会进入RockyLinux10的默认桌面环境GNOME,其采用极简设计,专注于任务集中和动态交互,通过以下组件提供高效的操作体验:顶部栏:位于屏幕顶部,显示时间、日历、系统状态(如网络、电池)和活动按钮。用户可通过顶部栏启动应用、调整音量或关机。活动概览:点击顶部栏的“活动”按钮或按Super(Win)键进入,包含搜索框、dash(应用收藏栏)和工作区列表。搜索框支持查找应用、文件和设置,dash展示常用及运行中的程序,工作区则允许多任务管理。应用程序浏览器:通过dash底部的九点图标进入,展示所有已安装应用的图标矩阵,支持按“常用”或“全部”筛选。通知窗口:按Super+M显示,提供搁置通知的查看和处理。2.1.2GNOME和GNOME经典模式2.GNOME经典模式GNOME经典模式是GNOME的传统模式,面向喜欢经典桌面布局的用户。它基于GNOME,但调整了界面行为,提供以下特点:底部任务栏:显示窗口列表和四个工作区,便于窗口切换。应用程序菜单:按类别组织应用,支持快速访问活动概览。位置菜单:提供常用文件夹的快捷入口,如主目录、文档等。3.GDM(GNOMEDisplayManager)GDM负责用户认证、会话选择和登录界面显示,其配置文件为/etc/gdm/custom.conf。管理员可通过编辑此文件自定义登录行为。4.gnome-session在GDM的帮助下,gnome-session程序负责管理GNOME会话的启动和组件加载,运行GNOME桌面环境。一般情况下gnome-session会加载用户上次成功登录的会话,该会话从一个名为AccountService(账户服务)的程序中检索得到,AccountService程序将此信息存储在/var/lib/AccountsService/users/{username}文件中,这样可以在下次登录系统时,默认使用上次的成功登录会话。2.1.3GNOME配置工具:dconf、gsettings、dconf-editorGNOME的配置基于dconf,dconf是一种基于键值对的配置存储系统,类似于Windows注册表,用于管理用户和系统设置。dconf是gsettings的后端,将系统硬件和软件配置信息以二进制格式储存起来。gsettings是dconf的前端命令行工具,dconf-editor是dconf的前端GUI配置工具。示例如下,GNOMEClassic桌面默认工作区个数为4,可以将其设置为1。gsettingsgetorg.gnome.desktop.wm.preferencesnum-workspaces //输出为4gsettingssetorg.gnome.desktop.wm.preferencesnum-workspaces12.1.4设置中文输入法RHEL10/Rocky10使用IBus(智能输入总线)作为默认输入法框架。安装RHEL10/Rocky10后,默认没有设置中文输入法。设置输入法的步骤:(1)单击图2-2中的齿轮图标,打开“设置”窗口;(2)单击左侧栏的“键盘”选项卡,然后单击“添加输入源”按钮。在弹出的输入源列表中,依次选择“汉语(中国)”→“中文(智能拼音)”,最后单击“添加”按钮以完成输入法的设置。默认切换快捷键为:(1)按下组合键Super+Space切换到下一个输入源;(2)按Shift键临时切换输入源。2.2实例—ShellShell是Linux用户与内核交互的桥梁,充当命令行解释器,负责解析用户输入的命令并调用系统功能执行任务。RHEL10和Rocky10默认使用Bash(BourneAgainShell),不仅提供交互式环境,还支持脚本编写以实现自动化任务。Shell是一个用C语言编写的功能强大的命令行解释器,作为用户与Linux内核沟通的接口,为用户提供输入命令和参数并获取执行结果的环境。作为操作系统的外壳,Shell既是命令行解释器,也是程序设计语言的统称,定义了变量和参数,并提供高级语言中的控制结构,如循环和分支。虽然Shell不是Linux内核的一部分,但它调用内核的大部分功能,执行程序、创建文档,并以并行方式协调程序运行,因此是用户最重要的高效工具,深入掌握其特性和使用方法是高效使用Linux的关键。RHEL10和Rocky10默认安装的Shell是BourneAgainShell(/bin/bash)。Shell的核心功能是解释命令提示符后输入的命令。通过分析命令,将其分解为以空白符(包括空格、换行符和制表符<TAB>)分隔的符号。可在终端窗口执行echo$SHELL命令查看当前Shell(通常为/bin/bash)。2.2实例—ShellShell执行命令时遵循特定顺序:①

首先检查别名,确定命令是否为用户定义的别名;②

接着检查关键字,识别Shell内置的控制结构或保留字;③

然后检查函数,寻找用户或系统定义的Shell函数;④

接下来处理内部命令,直接由Shell自身执行的内置命令;⑤

最后搜索外部命令或脚本,根据环境变量$PATH查找可执行文件。若命令非内部命令且未在$PATH中找到,Shell将显示错误信息提示命令未找到;若找到,Shell会将命令分解为一系列系统调用,并将其传递给Linux内核执行。环境变量$PATH是一个包含可执行程序目录列表的变量,运行echo$PATH可查看其当前设置,该列表决定了Shell搜索外部命令的路径顺序,确保高效定位和执行程序。提示:内部命令是指由Shell自身(比如/bin/bash)内置的命令,直接在Shell解释器中执行,无需调用外部程序,执行效率高,例如cd、echo和history,内部命令对应的二进制代码属于/bin/bash二进制文件的一部分。外部命令是指独立于Shell的可执行文件或脚本,存储在文件系统中,Shell通过环境变量$PATH搜索并调用这些程序执行,例如/bin/ls和/usr/bin/cat,其执行依赖于外部二进制文件或脚本。2.2.1控制台与终端控制台是直接与系统交互的原生命令行环境,而(伪)终端通常指图形界面中的命令行窗口(如GNOMETerminal)。RHEL10/Rocky10默认提供6个虚拟控制台(tty1-tty6),可通过快捷键切换:(1)按组合键Ctrl+Alt+F1进入登录界面;(2)按组合键Ctrl+Alt+F2进入GNOME桌面;(3)按组合键Ctrl+Alt+F3至F6进入虚拟控制台tty3-tty6。可以执行ls/dev/tty*命令列出系统中所有的控制台设备。可以执行ls/dev/pts/命令列出系统中所有的伪终端设备。2.2.2Shell命令行1.Shell命令行格式Shell命令行遵循以下格式:command[subcommand][flags][argument1][argument2]...其中各部分含义如下:command:主命令,例如ls,表示要执行的基本操作。subcommand:子命令,例如systemctlstart中的start,用于指定主命令的特定功能。flags:选项,通常以“-”或“--”开头,例如-l或--all,用于修改命令行为。多个flags可用一个“-”连起来,如ls-l-a与ls-la相同。arguments:参数,通常是文件名或路径,例如/root,表示命令作用的对象。示例如下:ls-la/root //列出/root目录下所有文件(包括隐藏文件),其中-la是选项,/root是参数catfile.txt //显示file.txt文件的内容,其中file.txt是参数manls //查看ls命令的详细手册页面ls--help //显示ls命令的简要帮助信息infocat //查看cat命令的详细说明文档2.2.2Shell命令行2.命令、子命令、选项和参数的自动补全功能Bash的自动补全功能通过Tab键实现,可补全命令、子命令、选项和文件名,大幅提升输入效率。示例如下。system<Tab><Tab> //列出以system开头的命令cd/u<Tab> //补全为/usr/systemctli<Tab><Tab> //列出systemctl以i开头的子命令,如is-active、is-enabledsystemctl-<Tab><Tab> //列出可用的选项3.clear和reset命令clear命令清空终端屏幕,保留当前会话的滚动历史。reset命令重置终端状态,恢复默认设置,适用于终端显示混乱(如乱码或格式错误)。clear //屏幕清空,提示符回到顶部。Ctrl+L在许多shell中等效于clearreset //恢复终端默认状态。reset比clear稍慢,因其执行更多初始化操作,如重置颜色、字符编码4.命令行提示符root用户的命令行提示符是#,普通用户的命令行提示符是$。2.2.3历史命令:historyBash通过历史命令功能记录用户在Shell中执行的命令,提升操作效率,方便重复调用。历史命令默认存储在~/.bash_history文件中(~表示用户主目录,以点开头的文件是隐藏文件)。对于root用户,文件路径为/root/.bash_history;对于普通用户,文件路径为/home/用户名/.bash_history。.bash_history文件的存储路径由环境变量HISTFILE指定,可通过echo$HISTFILE查看。history命令语法如下。无参数时显示整个历史命令列表,指定参数n时显示最后n条历史命令。各选项功能见表2-1。history[n]history[-a|-c|-n|-r|-w][filename]2.2.3历史命令:history1.自定义历史命令列表第1步:新建文件(如/root/history.txt)存储常用命令,每行一条。

第2步:执行history-c清空当前历史命令列表。

第3步:执行history-r/root/history.txt加载自定义命令。2.执行历史命令最简单的方法是用方向键(向上箭头、向下箭头)翻阅,找到命令后按Enter执行。最便捷方法是用history命令显示列表,可后跟整数显示最后几条命令,每条带序号,可按表2-2方法执行。2.2.3历史命令:history3.常用操作history //显示所有历史命令history10 //显示最近10条命令history|greptail //查找包含tail的命令exportHISTTIMEFORMAT="%F%T" //为历史命令添加时间戳exportHISTTIMEFORMAT="" //取消为历史命令添加时间戳exportHISTIGNORE="ls:cd:pwd" //忽略指定命令的记录echo$HISTSIZE //查看历史记录最大条数!42 //执行编号为42的命令!! //重复上一条命令!string //执行以string开头的最近命令sudo!! //以root权限执行上一条命令Ctrl+R //搜索历史命令,输入关键字匹配history-c //清空当前会话历史history-d42 //删除编号为42的记录history-w //保存历史到文件history-r //从文件加载历史history|awk'{print$2}'|sort|uniq-c|sort-nr|head-5 //显示使用频率前5的命令2.2.4命令别名:alias别名基本语法如下。alias[别名]=[命令]注意:等号两边不能有空格,若命令包含空格或特殊字符,需用单引号或双引号括起来。1.示例alias //不加参数,列出当前会话中所有已定义的别名aliasll='ls-alh' //创建别名ll,列出详细文件列表(包括隐藏文件)aliasll //查看指定别名的定义unaliasll //删除别名llaliasgrep='grep-r--color=auto' //创建别名grep,递归搜索并高亮显示aliaslist='ls;ll' //使用分号串联多条命令,确保按顺序执行2.2.4命令别名:alias2.临时别名与永久别名临时别名:通过alias命令创建的别名仅在当前Shell会话有效,退出会话后失效。永久别名:需将别名定义写入用户配置文件~/.bashrc(root用户为/root/.bashrc,普通用户为/home/用户名/.bashrc)。编辑并保存~/.bashrc文件后,执行source~/.bashrc命令应用更改,或重新登录系统,使配置生效。注意:(1)别名优先级高于同名命令。若别名与现有命令冲突,可用反斜杠绕过别名,例如\ls执行原ls命令;(2)命令中包含空格或特殊字符时,必须用引号包裹,否则会导致语法错误;(3)修改~/.bashrc后,需通过source~/.bashrc或重新登录使更改生效;(4)定义别名前,建议先执行“alias别名”命令检查别名是否已存在,避免意外覆盖。2.2.5通配符与文件名在Linux中,文件名可以由字母(A-Z、a-z)、数字(0-9)、下划线(_)以及点(.)、连字符(-)等字符构成,支持大多数特殊字符甚至空格,但不能包含正斜杠(/),因为它是路径分隔符。文件名区分大小写,最大长度通常为255个字符(视文件系统而定)。以点(.)开头的文件为隐藏文件。为避免Shell解析问题,建议避免使用通配符(如*、?)或特殊字符(如|、;),推荐使用字母、数字、下划线、连字符和点以确保兼容性和可读性。在Bash中,文件名是命令中最常用的参数。用户可能只知道文件名的一部分,或希望同时操作具有相同扩展名或特定前缀的多个文件。Bash提供了一组称为通配符的特殊符号,用于模式匹配,包括文件名匹配、路径搜索和字符串查找等场景。通配符通过构建“模式串”简化文件操作,提升命令执行效率。Bash支持的常用通配符如表2-3所示。2.2.5通配符与文件名1.使用示例以下示例展示通配符在文件操作中的应用。lsztg*.txt //列出以“ztg”开头的所有.txt文件,如ztg.txt、ztg123.txtlsztg?.txt //列出“ztg”后跟单个字符的.txt文件,如ztg1.txt、ztgA.txtlsztg[1-3].txt //列出ztg1.txt、ztg2.txt、ztg3.txtrm*.bak //删除所有.bak文件,如file1.bak、backup.bakls[a-c]*.txt //匹配以a、b或c开头的所有.txt文件ls.* //*不匹配隐藏文件,若要匹配隐藏文件,需用.*ls[!a-c]*.txt //匹配不以a、b或c开头的所有.txt文件,在[]中使用!或^否定匹配2.2.6输入/输出重定向与管道Linux中的命令默认从标准输入(stdin,文件描述符0,通常为键盘)获取数据,将结果输出到标准输出(stdout,文件描述符1,通常为显示器),错误信息则发送到标准错误输出(stderr,文件描述符2,通常为显示器)。然而,终端输入的重复性低、修改不便,且屏幕输出无法直接处理。为解决这些问题,Linux引入了输入/输出重定向和管道机制,允许灵活改变数据流向或串联命令处理数据,从而提升操作效率。1.输入重定向输入重定向使用操作符<将命令的输入源从键盘改为指定文件,适用于需要大量数据输入的场景。输入重定向将文件内容作为命令的标准输入,避免手动输入的繁琐。输入重定向的示例如下。wc</etc/passwd //统计文件的行数、单词数和字符数使用<<操作符可从键盘输入多行文本,直到遇到指定结束符(如EOF)。这是一种特殊的输入重定向,适合快速创建文件或提供多行输入。多行输入的示例如下。cat>file.txt<<EOFHello,Linux!Thisisatest.EOF2.2.6输入/输出重定向与管道2.输出重定向输出重定向使用操作符>将命令的标准输出从屏幕重定向到文件,适合保存输出结果以供后续分析。若目标文件已存在,>会覆盖原内容。使用追加操作符>>可将输出追加到文件末尾,保留原有内容。输出重定向的示例如下。echo"Hello">output.txt //覆盖写入output.txt,该文件不存在则新建echo"World">>output.txt //追加到output.txt错误信息通过标准错误输出(stderr)显示,可使用2>重定向到文件,2>>追加到文件。错误输出重定向示例如下。ls/nonexistent2>error.txt //将错误信息写入error.txtls/nonexistent2>>error.txt //追加错误信息到error.txt要将标准输出和标准错误输出重定向到同一文件,可使用&>或>&,等价于>file2>&1。其中,2>&1表示将标准错误(2)重定向到标准输出(1)的位置。注意文件描述符的顺序,在>file2>&1中,需先重定向标准输出,再将标准错误重定向到标准输出,否则可能失效。合并输出的示例如下。ls/etc/nonexistent>out.txt2>&1 //合并标准输出和标准错误输出到out.txtls/etc/nonexistent&>out.txt //同上,简写形式ls/etc/nonexistent&>>out.txt //追加合并标准输出和标准错误输出标准输出和标准错误可分别重定向到不同文件。双重输出重定向的示例如下。ls/etc/nonexistent>results.txt2>error.txt //标准输出到results.txt,标准错误输出到error.txtls/etc/nonexistent>>results.txt2>>error.txt //追加到各自文件将输出重定向到/dev/null可丢弃数据,常用于屏蔽无关输出。丢弃输出的示例如下。ls/nonexistent>/dev/null2>&1 //丢弃所有标准输出和标准错误输出2.2.6输入/输出重定向与管道3.管道管道使用操作符|将一个命令的标准输出直接作为另一个命令的标准输入,无需中间文件,适合连续处理数据。管道串联多个命令,前一个命令的输出成为后一个命令的输入,最后一个命令的输出显示在屏幕上或通过重定向保存到文件。管道直接传递数据,避免临时文件,效率高于通过文件中转。管道的示例如下。cat/etc/passwd|grepbash|wc-l //统计/etc/passwd文件中包含bash的行数find/etc-name"*.conf"|xargsls-l //列出/etc文件夹中所有.conf文件的详细列表4.tee命令tee命令从标准输入或管道读取数据,同时输出到标准输出(屏幕)和指定文件。tee适合需要同时查看和保存管道中间结果的场景。tee命令的示例如下。who|teewho.out //保存who命令输出到who.out并显示ls-l|tee-alog.txt //追加目录列表到log.txt并显示,-a的作用是追加到文件而非覆盖2.2.6输入/输出重定向与管道5.文件描述符Linux使用文件描述符标识输入输出,如表2-4所示。注意:在终端窗口或ssh窗口执行命令ll/proc/self/fd/0,会发现/proc/self/fd/{0,1,2}是/dev/pts/{0,1,2,3,...}的符号链接;在控制台执行命令ll/proc/self/fd/0,会发现/proc/self/fd/{0,1,2}是/dev/tty的符号链接。2.2.7Linux快捷键2.2.7Linux快捷键2.3实例—文本编辑器Linux提供多种文本编辑器,分为图形界面编辑器(如gnome-text-editor)和命令行编辑器(如nano、vim)。图形编辑器直观易用,适合初学者;命令行编辑器高效灵活,适合编程和系统管理。1.gnome-text-editorgnome-text-editor是一款专为GNOME桌面环境设计的轻量级图形界面文本编辑器,支持语法高亮、自动缩进和多种文件类型的编辑,界面简洁易用,适合普通用户使用。2.nanonano是一款简单易用的命令行文本编辑器,特别适合Linux新手,提供了直观的界面和易于学习的快捷键。它具备基本的语法高亮、搜索替换和撤销功能,资源占用低,适合快速编辑,但相比更复杂的编辑器(比如vim),其功能和灵活性有限。3.vimvim(ViImproved)是基于经典Vi文本编辑器的增强版,是Linux和UNIX系统中的标准编辑器,几乎每台机器上都预装了这款软件。作为一款全屏幕窗口编辑器,vim提供上下滚动的编辑界面,能够在字符模式下高效工作,无需图形界面,这使其在服务器管理和系统配置中表现出色。尽管学习曲线陡峭,但一旦熟练掌握,vim的多模式编辑、插件支持、多级撤销、宏和高级文本操作能力将显著提升工作效率。vim广泛应用于编程、批量文本处理和服务器管理场景。2.3实例—文本编辑器vim拥有五种编辑模式,分别是命令模式、输入模式、末行模式、可视化模式和查询模式,各模式通过特定键切换实现。(1)命令模式。这是用户进入vim后的默认状态,如果在其他模式,可以通过按Esc键返回此模式。在命令模式下,可执行光标移动、删除字符、复制段落等操作,并可切换至其他四种模式。常用光标移动命令如表2-7所示,复制粘贴命令如表2-8所示,删除操作如表2-9所示,撤销操作如表2-10所示。2.3实例—文本编辑器2.3实例—文本编辑器2.3实例—文本编辑器(2)输入模式。进入此模式可通过a、A、i、I、o、O键实现,专用于添加和修改文本内容。a在光标后插入,A在行尾插入,i在光标前插入,I在行首插入,o在下方新增行,O在上方新增行。按Esc键返回命令模式。(3)末行模式。在命令模式下按:进入,用于执行辅助编辑功能如保存文件、查找替换等。完成命令或出错后返回命令模式。常用命令如表2-11所示。2.3实例—文本编辑器(4)可视化模式。在命令模式下键入v则进入可视化模式。在该模式下,移动光标以选定要操作的字符串,键入c剪切选定块的字符串,键入y复制选定块的字符串。在命令模式中键入p,可将复制或剪切的内容粘贴在光标所在位置的右边。(5)查询模式。在命令模式下按“/”或“?”进入查询模式(可以看成一种未行模式)。在命令模式,按“/”键就会在左下角出现一个“/”,然后键入要查找的字符串,按Enter键就会开始向下查找,在查找到后,按n查找下一个字符串,按N查找上一个字符串。在命令模式,按“?”键就会在左下角出现一个“?”,然后键入要查找的字符串,按Enter键就会开始向上查找。2.4.1RPM简介RPM(RedHatPackageManager)是一个功能强大的软件包管理系统,由红帽公司开发,现广泛应用于红帽系列的发行版,用于软件的安装、升级、卸载和管理。RPM包以.rpm为后缀,分为两类:(1)二进制包。包含预编译的可执行文件、库文件、配置文件和文档等;(2)源代码包。以.src.rpm结尾,包含未编译的代码,需编译后使用。RPM包的命名遵循以下格式:软件名-主版本号.次版本号.修订版本号-发布号.架构.rpm。例如,httpd-2.4.63-1.el10.x86_64.rpm表示ApacheHTTP服务器,主版本号为2.4,次版本号为57,修订版本号为1,发布号为1,适用于x86_64架构。常见架构包括:(1)x86_64。适用于64位处理器,广泛用于现代服务器和桌面系统;(2)i686。针对Intel32位架构(PentiumPro及以上),现已较少使用;(3)noarch。与硬件架构无关,通常为脚本或配置文件,具有较强的通用性;(4)src。源代码包,适合开发者自定义构建。RPM通过存储在/var/lib/rpm目录下的数据库管理已安装软件包的元数据,包括版本号、依赖关系和文件列表,并支持数字签名以验证软件包的来源和完整性。RPM包按类型分为两类存储目录:(1)RPMS/。存放编译好的二进制RPM包,直接可安装;(2)SRPMS/。存放源代码包(.src.rpm),需编译生成二进制包。2.4.2RPM的使用RPM提供命令行工具rpm,支持安装(-i)、升级(-U)、卸载(-e)、查询(-q)和校验(-V)等多种操作。1.安装软件包安装软件包使用rpm-i(或rpm--install)命令rpm命令语法如下。rpm-i[选项]<软件包文件>.rpm常用选项:-v(显示详细信息)、-h(显示安装进度条,以#表示)、--nodeps(忽略依赖检查,适合特殊场景)、--force(强制安装,忽略冲突)、--prefixpath(指定安装路径)、--test(模拟安装,检查依赖和冲突)。示例如下。rpm-ivhexample.rpm //通过本地文件安装软件包rpm-ivh/example.rpm //通过FTP方式安装软件包rpm-ivh:8080/example.rpm //通过HTTP方式安装软件包2.4.2RPM的使用2.卸载软件包卸载软件包使用rpm-e(或rpm--erase)命令,参数为软件名(不含版本号或.rpm后缀)。RPM会检查依赖,若其他软件依赖目标包,可能拒绝卸载。rpm命令语法如下。rpm-e[选项]<软件包名>常用选项:--nodeps(忽略依赖检查)、--test(模拟卸载)。示例如下。rpm-ehttpd //基本卸载rpm-e--nodepshttpd //忽略依赖卸载2.4.2RPM的使用3.升级软件包升级软件包使用rpm-U(或rpm--upgrade)命令,若软件未安装,则执行安装。升级会保留现有配置文件并替换旧版本。rpm命令语法如下。rpm-U[选项]<软件包文件>.rpm常用选项:-v(显示详细信息)、-h(显示升级进度条)、--oldpackage(允许降级到旧版本)、--force(强制升级)、--replacefiles(替换其他软件包的文件)、--replacepkgs(重新安装已存在的软件包)。示例如下。rpm-Uvhhttpd-2.4.64-1.el10.x86_64.rpm //基本升级rpm-Uvh--forcehttpd-2.4.64-1.el10.x86_64.rpm //强制升级2.4.2RPM的使用4.查询软件包RPM提供强大的查询功能,使用rpm-q(或rpm--query)命令。rpm命令语法如下。rpm-q[选项]<软件包名>常用选项:-a(列出所有已安装软件包)、-i(显示软件包详细信息,如版本、描述)、-l(列出软件包包含的文件)、-f<文件路径>(查询文件所属软件包)、-p<软件包文件>(查询未安装的RPM包信息)、-R(查看包依赖)。示例如下。rpm-qhttpd //检查是否安装rpm-qa|grephttpd //查找相关包rpm-qihttpd //查看详细信息rpm-qlhttpd //列出文件rpm-qf/usr/sbin/httpd //查询文件归属rpm-qiphttpd-2.4.63-1.el10.x86_64.rpm //查询未安装包信息,假设当前目录有该rpm文件rpm-qlphttpd-2.4.63-1.el10.x86_64.rpm //列出未安装包文件rpm-qpRhttpd-2.4.63-1.el10.x86_64.rpm //查看未安装包依赖2.4.2RPM的使用5.验证软件包验证使用rpm-V(或rpm--verify)命令,检查文件完整性。rpm命令语法如下。rpm-V[选项]<软件包名>常用选项:-a(验证所有已安装软件包)。示例如下。rpm-Vhttpd //基本验证rpm-Va //验证所有软件包2.4.2RPM的使用6.提取RPM包中的文件当配置文件(如/etc/httpd/conf/httpd.conf)被误删或损坏时,可通过rpm2cpio和cpio工具提取原始文件。示例步骤如下。rpm-qf/etc/httpd/conf/httpd.conf //确认文件所属包,输出如下1行httpd-core-2.4.63-1.el10.x86_64rpm-qlphttpd-2.4.63-1.el10.x86_64.rpm|grephttpd.conf //检查文件路径,输出如下1行/etc/httpd/conf/httpd.confrpm2cpiohttpd-2.4.63-1.el10.x86_64.rpm|cpio-idv./etc/httpd/conf/httpd.conf //提取文件cpio选项说明:-i(提取文件)、-d(创建目录)、-v(显示详细信息)、-t(列出文件,用于检查路径)。注意,提取路径需与包内相对路径一致。2.4.2RPM的使用7.安装源代码包源代码包(.src.rpm)适合自定义编译场景。安装后,源代码和SPEC文件解压至~/rpmbuild。示例步骤如下。rpm-ivhbusybox-1.36.1-7.el10_0.src.rpm //安装源代码包cd~/rpmbuild/SPECS //进入SPEC目录rpmbuild-babusybox.spec

//编译生成二进制包,输出路径如下~/rpmbuild/RPMS/x86_64/busybox-1.36.1-7.el10_0.x86_64.rpmrpm-ivh~/rpmbuild/RPMS/x86_64/busybox-1.36.1-7.el10_0.x86_64.rpm //安装二进制包注意:编译可能需安装依赖(dnfinstallglibc-staticlibselinux-static)。2.4.3实例—安装QQ、微信、WPS、百度网盘执行命令依次安装QQ、微信、WPS、百度网盘。rpm-ivhWeChatLinux_x86_64.rpm //成功安装微信rpm-ivhQQ_3.2.18_250626_x86_64_01.rpm //因缺少依赖,故安装QQ失败错误:依赖检测失败: libXScrnSaver被linuxqq-3.2.18_36580-1.x86_64需要 xdg-utils被linuxqq-3.2.18_36580-1.x86_64需要rpm-ivhwps-office-7900-1.x86_64.rpm //因缺少依赖,故安装WPS失败错误:依赖检测失败: libXss.so.1()(64bit)被wps-office-7900-1.x86_64需要rpm-ivhbaidunetdisk_4.17.7_x86_64.rpm //因缺少依赖,故安装百度网盘失败错误:依赖检测失败: libXScrnSaver被baidunetdisk-4.17.7-1.x86_64需要 xdg-utils被baidunetdisk-4.17.7-1.x86_64需要2.4.3实例—安装QQ、微信、WPS、百度网盘从RPM软件包在线资源库rpmfind下载libXScrnSaver、xdg-utils、libatomic、libxcb-icccm、libxcb-image、libxcb-render-util、libxcb-keysyms,下载libXScrnSaver-1.2.4-3.fc40.x86_64.rpm、xdg-utils-1.2.0-3.el10.noarch.rpm、libatomic-14.2.1-7.el10.x86_64.rpm、libxcb-icccm4-0.4.1-1.24.x86_64.rpm、libxcb-image0-0.4.1-160000.1.12.x86_64.rpm、libxcb-render-util0-0.3.10-160000.1.12.x86_64.rpm、libxcb-keysyms1-0.4.1-160000.1.9.x86_64.rpm。执行如下命令解决上面依赖问题。提示:在终端窗口执行wechat等命令,通过错误信息可以知道缺少哪些软件包。2.4.3实例—安装QQ、微信、WPS、百度网盘rpm-ivhlibXScrnSaver-1.2.4-3.fc40.x86_64.rpmrpm-ivhxdg-utils-1.2.0-3.el10.noarch.rpmrpm-ivhlibatomic-14.2.1-7.el10.x86_64.rpmrpm-ivhlibxcb-icccm4-0.4.1-1.24.x86_64.rpmrpm-ivhlibxcb-image0-0.4.1-160000.1.12.x86_64.rpmrpm-ivhlibxcb-render-util0-0.3.10-160000.1.12.x86_64.rpmrpm-ivhlibxcb-keysyms1-0.4.1-160000.1.9.x86_64.rpmrpm-ivhQQ_3.2.18_250626_x86_64_01.rpm //成功安装QQrpm-ivhwps-office-7900-1.x86_64.rpm //成功安装WPSrpm-ivhbaidunetdisk_4.17.7_x86_64.rpm //成功安装百度网盘编辑/usr/share/applications/qq.desktop文件,进行如下修改。Exec=/opt/QQ/qq%U //将该行修改为如下1行Exec=/opt/QQ/qq%U--no-sandbox编辑/usr/share/applications/wechat.desktop文件,进行如下修改。Exec=/usr/bin/wechat%U //将该行修改为如下1行Exec=/usr/bin/wechat%U--no-sandbox2.5YUM与DNFYUM(YellowdogUpdaterModified)和DNF(DandifiedYUM)是基于RPM的高级包管理器,通过仓库机制自动解决依赖关系,极大地简化了软件管理流程。在RHEL10和RockyLinux10中,DNF已成为默认的包管理工具,而YUM仅作为兼容性别名存在。2.5.1YUM与DNF简介YUM是RHEL7及更早版本的包管理器,基于Python开发,擅长处理RPM包的依赖关系。DNF作为YUM的继任者,从RHEL8起成为默认工具,通过优化依赖解析、内存占用和运行速度,显著改进了性能。在RHEL10中,yum命令是指向dnf的符号链接,确保与旧脚本的兼容性。DNF的核心优势有:(1)自动依赖解析。DNF根据仓库元数据自动下载并安装依赖包;(2)模块化支持。通过ApplicationStream(AppStream)提供多版本软件(如Node.js18/20);(3)高效性能。改进了算法,减少资源占用,适合大规模部署;(4)灵活的仓库管理。支持HTTP、FTP、本地文件系统等多种源。DNF依赖于仓库(Repository),仓库存储RPM包及其元数据(header),这些元数据描述了包的依赖、文件列表等信息。客户端通过分析header,确定安装或升级的正确顺序。2.5.2实例—使用dnf命令1.安装软件包DNF自动解析依赖,从启用的仓库下载并安装所需包。示例如下。dnfinstallnginx //安装nginxdnfinstallnginxhttpd //安装多个包dnflocalinstallWeChatLinux_x86_64.rpm //安装本地RPM包dnfgrouplist //列出可用组dnfgroupinstall网络服务器 //安装网络服务器2.删除软件包DNF在删除软件包时会检查依赖,确保系统完整性。示例如下。dnfremovenginx //删除nginx及未使用的依赖dnfautoremove //清理无用依赖dnfgroupremove网络服务器 //删除网络服务器2.5.2实例—使用dnf命令3.升级软件包DNF支持系统级或单包升级。示例如下。dnfcheck-update //检查可用更新dnfupgrade //升级所有包dnfupgradenginx //升级nginxdnfgroupupdate网络服务器 //升级Web服务器组dnfdowngradenginx //降级nginx到旧版本2.5.2实例—使用dnf命令4.查询与搜索DNF提供丰富的查询功能。示例如下。dnfsearchnginx //搜索nginx相关包dnflistinstalled //列出已安装包dnflistavailable //列出可用包dnfinfonginx //显示nginx详情dnfprovides/usr/sbin/nginx //查询提供nginx二进制的包dnfrepoquery--requiresnginx //查询nginx依赖dnfgrouplist //列出软件包组dnfgroupinfo网络服务器 //显示组详情2.5.2实例—使用dnf命令5.清理缓存DNF缓存元数据和下载的RPM包,定期清理可释放空间。示例如下。dnfcleanall //清理所有缓存dnfmakecache //重新生成缓存6.历史记录管理DNF记录操作历史,支持撤销或重做。示例如下。dnfhistorylist //列出操作历史dnfhistoryundo12 //撤销ID为12的操作dnfhistoryredo12

//重做ID为12的操作dnfhistoryrollback12 //回滚到ID12之前的状态2.5.3dnf的配置文件DNF的配置文件分为两部分:全局配置(/etc/dnf/dnf.conf)和仓库配置(/etc/yum.repos.d/*.repo)。在RHEL10中,/etc/yum.conf是/etc/dnf/dnf.conf的符号链接。1.全局配置/etc/dnf/dnf.conf包含[main]段,定义全局选项。常用参数如下。gpgcheck=1 #启用GPG签名校验installonly_limit=3

#限制仅安装包(如内核)的版本数cachedir=/var/cache/dnf #缓存目录keepcache=1 #保留下载的RPM包clean_requirements_on_remove=True #删除时清理无用依赖执行命令dnfconfig-manager--dump查看配置。2.5.3dnf的配置文件2.仓库配置仓库文件位于/etc/yum.repos.d/,以.repo结尾,格式如下。[repo-id] #唯一标识name=RepositoryNamebaseurl=/repo/ #支持http://、ftp://、file://协议enabled=1 #启用仓库(0为禁用)gpgcheck=1gpgkey=/key #GPG密钥地址管理仓库的命令如下。dnfconfig-manager--add-repo/repo.repodnfconfig-manager--set-enabledepeldnfconfig-manager--set-disabledepeldnfrepolist //列出启用的仓库。BaseOS和AppStream是RHEL10的必备仓库,需确保启用dnfrepolist--all2.5.3dnf的配置文件3.BaseOS和ApplicationStreamRHEL10和RockyLinux10通过两个主要仓库分发软件:BaseOS和ApplicationStream(AppStream),它们分别满足不同需求。BaseOS提供操作系统核心组件,包括内核、标准库(如glibc)和系统工具(如systemd)。这些组件以传统RPM包形式分发,其生命周期与RHEL10一致(通常为10年),确保企业级稳定性和兼容性。AppStream提供用户空间应用(如Node.js、PostgreSQL、Python),支持更灵活的生命周期,可能短于RHEL10。2.5.4实例—安装第三方源RHEL10和RockyLinux10的官方仓库软件有限,第三方源可扩展应用选择。常用第三方源包括EPEL(ExtraPackagesforEnterpriseLinux)和RPMFusion。1.添加EPEL软件源EPEL由Fedora社区维护,提供额外开源软件,如htop、vlc。dnfinstallepel-release //安装EPEL软件源dnfrepolist //列出当前启用的软件源,检查可用仓库dnf--enablerepo=epelinstallhtop //启用EPEL软件源并安装htop2.添加RPMFusion软件源RPMFusion提供多媒体和专有软件,分为免费(free)和非免费(nonfree)仓库。//执行如下命令安装RPMFusion免费软件源,为RockyLinux10提供额外的开源软件包dnfinstall/free/el/rpmfusion-free-release-10.noarch.rpm//执行如下命令安装RPMFusion非免费软件源,为RockyLinux10提供专有或非开源软件包dnfinstall/nonfree/el/rpmfusion-nonfree-release-10.noarch.rpmdnfinstallvlc //执行该命令安装VLC播放器2.5.4实例—安装第三方源3.添加Fedora40软件源创建一个新的软件源配置文件/etc/yum.repos.d/fedora40.repo,内容如下。[fedora40]name=Fedora40-Basebaseurl=/fedora/releases/40/Everything/$basearch/os/enabled=1gpgcheck=0[fedora40-updates]name=Fedora40-Updatesbaseurl=/fedora/updates/40/Everything/$basearch/enabled=1gpgcheck=0执行如下命令刷新软件源元数据,更新软件源缓存。dnfmakecache2.5.4实例—安装第三方源4.启用或禁用第三方源在使用第三方源(如EPEL、RPMFusion)时,需确保软件包的安全性和来源可信。以下是启用、禁用第三方源及相关安全措施的详细说明。(1)验证GPG密钥。第三方源提供的RPM包通常使用GPG签名以验证其完整性和来源。导入GPG公钥是启用第三方源前的必要步骤,以防止安装来源不明的软件包。示例如下。rpm--import/keys //为RPMFusion导入GPG密钥rpm-qagpg-pubkey //查看已导入的密钥如果GPG密钥未导入或签名验证失败,DNF会拒绝安装软件包并提示错误。若不再需要某个密钥,可执行命令rpm-egpg-pubkey-<key-id>删除。(2)启用或禁用源。DNF允许通过dnfconfig-manager命令启用或禁用仓库,修改/etc/yum.repos.d/中对应.repo文件的enabled字段。示例如下。dnfconfig-manager--set-disabledfedora40 //禁用仓库dnfconfig-manager--set-disabledfedora40-updates //禁用仓库dnfconfig-manager--set-enabledfedora40 //启用仓库dnfconfig-manager--add-repo/repo.repo //添加新仓库dnfrepolist //查看启用的仓库dnfrepolist--all //查看所有仓库(包括禁用状态)(3)临时启用/禁用源。在某些情况下,可临时启用/禁用源,不会修改配置文件,仅对当前操作有效,适合一次性安装或测试。示例如下。dnf--enablerepo=rpmfusion-freeinstallvlc //临时启用dnf--disablerepo=rpmfusion-freeinstall<package> //临时禁用2.5.5实例—创建本地仓库在无网络环境或需要自定义软件源时,可创建本地仓库,使用ISO镜像或RPM包集合(需确保所有依赖的RPM包齐全)作为源。创建本地仓库的步骤如下。1.共享ISO镜像将宿主机中包含Rocky-10.0-x86_64-dvd1.iso文件的文件夹共享到虚拟机的/mnt/share。2.挂载ISO镜像mkdir/mnt/iso //创建挂载点mount-oloop/mnt/share/Rocky-10.0-x86_64-dvd1.iso/mnt/iso3.创建符号链接mkdir/mnt/iso_copycd/mnt/isoforitemin*;doln-s/mnt/iso/"$item"/mnt/iso_copy/"$item"done2.5.5实例—创建本地仓库4.生成仓库元数据dnfinstallcreaterepo //安装createrepo工具cd/mnt/iso_copycreaterepo. //生成仓库元数据5.配置本地仓库cat<<EOF>/etc/yum.repos.d/localiso.repo[localiso]name=LocalRHEL10Repobaseurl=file:///mnt/iso_copyenabled=1gpgcheck=0EOF6.验证和刷新缓存d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论