麒麟操作系统教程(微课版) 课件 第6-10章 软件安装- 麒麟服务器操作系_第1页
麒麟操作系统教程(微课版) 课件 第6-10章 软件安装- 麒麟服务器操作系_第2页
麒麟操作系统教程(微课版) 课件 第6-10章 软件安装- 麒麟服务器操作系_第3页
麒麟操作系统教程(微课版) 课件 第6-10章 软件安装- 麒麟服务器操作系_第4页
麒麟操作系统教程(微课版) 课件 第6-10章 软件安装- 麒麟服务器操作系_第5页
已阅读5页,还剩157页未读 继续免费阅读

下载本文档

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

文档简介

第6章

软件安装麒麟操作系统实用教程(微课版)本章内容导览6.1安装和管理DEB软件包Linux的软件包概念DEB软件包格式与依赖关系使用安装器安装DEB包使用dpkg工具管理DEB包6.2使用APT工具管理软件包APT基础与工作机制apt常用命令安装、卸载与升级软件包配置APT软件源6.3源码编译安装软件源码编译安装基本步骤configure脚本常用选项Python源码编译安装示例卸载源码编译安装的软件6.4安装Windows软件Wine技术原理麒麟Wine助手安装Windows软件管理Windows软件与容器CHAPTER6.1安装和管理DEB软件包DEB软件包基础·软件包依赖·安装器与dpkg工具DEB软件包依赖管理dpkg工具6.1.1Linux的软件包软件包将二进制文件、配置文档和帮助文档打包,通过包管理器执行安装、卸载、升级和查询操作。比较项目DEBRPM文件扩展名.deb.rpm包管理器dpkgrpm高级包管理器aptyum、dnfLinux发行版Debian、Ubuntu及其衍生版RedHat、Fedora、CentOS麒麟桌面操作系统使用DEB软件包,不能直接安装RPM包软件包优势:预编译的二进制文件和通用组件,用户无需从源码编译,通过包管理器即可完成安装、卸载、升级和查询,大大简化了软件管理流程。6.1.2DEB软件包DEB软件包格式基本格式:软件包名_版本号_架构名.deb常见架构名:amd64/x86_64—x8664位arm64/aarch64—ARM64位mips64el—MIPS64位小端loongarch64—龙芯架构i386—x8632位6.1.3DEB软件包与软件包依赖软件包依赖依赖类型:运行时依赖—软件运行需要其他包编译时依赖—构建时需要其他包解决方式:自动解决—安装时自动下载依赖手动解决—依赖问题无法自动解决时手动处理不同架构的软件包不能通用!安装失败的主要原因:1)硬件架构不匹配(如在ARM上安装x86_64版本);2)依赖关系不满足。安装前必须保证所依赖的库和软件已安装到系统上。6.1.4使用安装器安装DEB软件包安装步骤1.从官网下载对应硬件架构的DEB包(如browser360-cn-stable_13.3.1017.20-1_amd64.deb)2.双击DEB包文件,安装器自动启动,单击"一键安装"3.弹出"授权"对话框,输入当前用户密码,单击"授权"4.若为未知来源应用,麒麟安全中心弹出"安全中心"对话框,单击"允许安装"5.安装完成后提示安装完成,单击"确定"6.从开始菜单或桌面找到并试用新安装的软件批量安装从开始菜单打开安装器→单击"添加"→选择多个DEB包→单击"安装“

→授权认证→允许安装→完成安装器支持批量安装、版本信息识别和依赖包自动补全。卸载软件通过开始菜单找到要卸载的软件→右击→选择"卸载"→单击"确定"也可通过软件商店直接卸载通过安装器安装的软件。6.1.5使用dpkg工具管理DEB包查看已安装包信息dpkg-l[DEB包名]—列出已安装包简要信息dpkg-s包名—查看详细状态信息dpkg-S包名—查看已安装包有哪些文件状态标识(3字符):第1字符=期望状态(u/i/r/p/h)第2字符=当前状态(n/i/c/U/F/H)第3字符=错误状态(h/r/x/空)"ii"=请求安装且已完成配置安装与卸载dpkg-i<软件包文件>—安装DEB包dpkg-r包名—卸载保留配置dpkg-P包名—彻底清除(含配置)dpkg不自动解决依赖问题!若缺少依赖,执行:sudoaptinstall-f-f=--fix-broken修复依赖dpkg命令示例$dpkg-l|grepwps#查询已安装的WPSiiwps-office11.8.2...amd64WPSOfficeproductivitysuite$dpkg-swps-office#查看详细信息Package:wps-officeStatus:installokinstalledArchitecture:amd64Depends:libc6,libfreetype6,libcups2,...6.1.5dpkg安装与卸载示例安装360安全浏览器示例$ls下载browser360-cn-stable_13.3.1017.20-1_amd64.deb$sudodpkg-i下载/browser360-cn-stable_13.3.1017.20-1_amd64.deb正在选中未选择的软件包browser360-cn-stable(正在读取数据库...系统当前共安装有201059个文件和目录)准备解压.../browser360-cn-stable(13.3.1017.20-1)...正在解压browser360-cn-stable(13.3.1017.20-1)...正在设置browser360-cn-stable(13.3.1017.20-1)...Createdlauncheron/home/tester/桌面Installationsuccessfullycompleted!正在处理用于desktop-file-utils的触发器...#若出现依赖问题,执行修复命令$sudoaptinstall-f#卸载示例$sudodpkg-rbrowser360-cn-stable正在卸载browser360-cn-stable(13.3.1017.20-1)...Deletedlauncheron/home/tester/桌面6.2.1APT基础APT三大功能1.从软件源下载元数据和二进制包2.利用本地元数据完成搜索和更新3.安装卸载时自动解决依赖关系APT位于dpkg上层,调用底层dpkg完成实际操作软件源存放位置:/etc/apt/sources.list/etc/apt/sources.list.d/*.list软件源软件源=存放软件包的服务器(软件仓库)包含大量软件包文件通过包管理器下载和安装类型:官方软件仓库第三方可靠软件源要求计算机能够联网访问软件源高级安装工具(AdvancedPackageTool,APT)是Debian系列Linux最常用的包管理器,通过整合dpkg和软件仓库,实现高效的软件管理流程。麒麟桌面操作系统继承APT工具。CHAPTER6.2使用APT工具管理软件包APT基础·APT工作机制·APT命令使用·软件源配置在线安装自动依赖软件更新6.2.1APT工作机制与自动解决依赖APT工作机制/var/lib/apt/lists—存放软件包列表信息/var/cache/apt/archives—存放下载的软件包/var/lib/dpkg/available—可用软件包描述/var/lib/dpkg/status—软件包状态信息更新软件源时扫描服务器获取最新信息安装时根据列表文件向服务器请求下载自动解决依赖APT安装最新版本软件包所依赖的其他软件包一并自动安装建议安装的软件包给出提示但不安装可能安装失败的情况:软件包与系统中其他包冲突依赖包在软件源中不存在依赖包版本不符合要求APT返回错误并终止安装软件包更新APT智能从软件源下载最新版本并安装,无需重启(除非更新Linux内核)。支持从一个发布版本升级到新的发布版本,自动处理依赖关系变化。6.2.2apt常用命令apt命令传统命令功能说明aptupdateapt-getupdate获取最新软件包列表,同步软件源索引aptupgradeapt-getupgrade更新所有已安装软件包及其依赖aptinstallapt-getinstall下载安装软件包并自动解决依赖aptremoveapt-getremove卸载指定软件包aptautoremoveapt-getautoremove自动卸载未使用的软件包aptpurgeapt-getpurge卸载软件包及其配置文件aptcleanapt-getclean清理已下载的软件包缓存aptlist无列出符合条件的软件包aptsearchapt-cachesearch搜索软件包aptshowapt-cacheshow显示软件包详细信息提示:apt命令是apt-get、apt-cache和apt-config三个传统命令的常用子命令和选项的集合。作为普通用户,应优先使用apt命令,它更简洁且交互性更好。6.2.2更新与查询软件包aptlist列出软件包aptlist—所有可安装的软件包aptlist--installed—已安装的软件包aptlist--all-versions—所有版本aptlist--upgradable—可升级的软件包aptlist软件包名—特定软件包信息aptsearch表达式—正则表达式搜索aptshow软件包名—详细信息aptdepends软件包名—查看依赖aptrdepends软件包名—查看被依赖aptupdate更新列表安装前通常先执行aptupdate从软件源获取最新软件包信息更新本地存储的元数据作用:确保安装最新版本正确处理依赖关系避免信息过时装旧版本aptpolicy软件包名—显示安装状态和版本查询示例$sudoaptupdate命中:1/kylin/KYLIN-ALL10.1InRelease获取:2/DEB/KYLIN_DEBV10-SP1InRelease[15.7KB]已下载15.7KB,耗时1秒有14个软件包可以升级$aptsearchwps#搜索含"wps"的软件包$aptshownano#显示nano详细信息6.2.2安装、卸载与升级软件包安装与卸载aptinstall软件包名自动解决依赖并安装软件包aptremove软件包名卸载软件包,保留配置文件aptpurge软件包名卸载并删除配置文件aptautoremove清理失去依赖的软件包升级与重新安装aptupgrade升级所有已安装软件包aptfull-upgrade升级并处理依赖关系变化aptinstall--reinstall重新安装软件包aptclean清理下载的软件包缓存常用操作示例$sudoaptupdate&&sudoaptupgrade#更新并升级$sudoaptinstallnginx#安装Nginx$sudoaptremovenginx#卸载Nginx保留配置$sudoaptpurgenginx#彻底卸载Nginx$sudoaptautoremove#清理无用依赖$sudoaptinstall--reinstallvim#重新安装vim$sudoaptclean#清理缓存6.2.3配置APT软件源sources.list格式每行包含4个部分:类型、URL、发行版、分类类型:deb(二进制包)或deb-src(源码包)分类:main(官方支持)、restricted(受限版权)、universe(社区维护)、multiverse(非自由软件)麒麟主配置文件受保护不可修改,自定义源添加到/etc/apt/sources.list.d/目录配置步骤1.创建/etc/apt/sources.list.d/下的.list文件2.按格式添加软件源地址3.保存文件4.执行sudoaptupdate更新注意事项选择可信的软件源,避免安全风险修改后必须执行aptupdate生效官方源速度较慢时可换国内镜像源不同发行版的源不可混用软件源配置示例$cat/etc/apt/sources.list.d/kylin.listdeb/kylin/KYLIN-ALL10.1mainrestricteduniversemultiverseCHAPTER6.3源码编译安装软件源码编译安装步骤·Python编译安装示例·软件卸载源码编译编译安装软件卸载6.3.1源码编译安装基本步骤1准备编译工具安装GCC编译器安装make工具安装pkg-config安装其他依赖库sudoaptinstallbuild-essential2下载解压源码官网下载源码包tar命令解压-j:bzip2格式-J:xz格式-z:gzip格式tar-xvJfxxx.tar.xz3执行configure生成Makefile检测系统环境检查依赖库--prefix指定安装路径./configure--prefix=/usr/local4编译源码执行make命令根据Makefile编译生成目标文件链接生成可执行文件make-j$(nproc)并行加速编译5安装软件执行makeinstall复制文件到系统需要root权限sudomakeinstall验证安装结果完整编译安装流程$sudoaptinstallbuild-essentialmakegccpkg-config#步骤1:安装编译工具$wget/software-1.0.tar.gz#步骤2:下载源码$tar-xvzfsoftware-1.0.tar.gz#解压源码包$cdsoftware-1.0$./configure--prefix=/usr/local#步骤3:配置(指定安装路径)$make-j$(nproc)#步骤4:编译(多核并行)$sudomakeinstall#步骤5:安装$software--version#验证安装6.3.1configure脚本常用选项选项参数/示例功能说明--help无显示所有可用选项和帮助信息--prefix--prefix=/usr/local指定安装位置(默认/usr/local)--exec-prefix--exec-prefix=/usr指定可执行文件安装路径--libdir--libdir=/usr/lib指定库文件安装路径--sysconfdir--sysconfdir=/etc指定配置文件安装路径--enable-FEATURE--enable-ssl启用某项功能特性--disable-FEATURE--disable-shared禁用某项功能特性--with-PACKAGE--with-zlib指定依赖包位置提示:执行./configure--help可查看该软件支持的所有配置选项。合理设置安装路径便于后续管理和卸载。6.3.2源码编译安装Python示例Python3.13.1源码编译安装#步骤1:下载源码包$wget/ftp/python/3.13.1/Python-3.13.1.tar.xz#步骤2:解压源码包$tar-xvJfPython-3.13.1.tar.xz$cdPython-3.13.1#步骤3:阅读README了解编译要求$catREADME.rst#步骤4:安装编译依赖$sudoaptinstallbuild-essentiallibssl-devzlib1g-devlibncurses5-dev#步骤5:执行configure(启用优化)$./configure--enable-optimizations--prefix=/usr/local#步骤6:编译$make-j$(nproc)#步骤7:安装$sudomakeinstall#步骤8:验证$python3--versionPython3.13.16.3.3卸载源码编译安装的软件方式一:makeuninstall如果源码的Makefile提供了uninstall目标:$sudomakeuninstall这是最干净的卸载方式,自动删除所有安装的文件。注意:需要保留原始源码目录。方式二:手动删除如果没有uninstall目标,需要手动删除:1.确认安装路径(find查找)2.删除相关文件和目录3.清理配置文件和环境变量4.验证卸载结果手动卸载示例#查找安装的文件$sudofind/usr/local-name"*python*"-typef#删除可执行文件$sudorm-f/usr/local/bin/python3.13/usr/local/bin/pip3.13#删除库文件和目录$sudorm-rf/usr/local/lib/python3.13#删除头文件$sudorm-rf/usr/local/include/python3.13#验证卸载$python3.13--versionbash:python3.13:未找到命令CHPATER6.4安装Windows软件Wine技术·麒麟Wine助手Wine技术麒麟Wine助手Windows应用6.4.1Wine技术与麒麟Wine助手Wine技术Wine全称"WineIsNotanEmulator"不是模拟器,而是提供WindowsAPI实现将WindowsAPI调用转换为POSIX调用让Windows程序在Linux上原生运行支持大量Windows应用程序性能接近原生Windows环境麒麟Wine助手基于Wine技术深度定制集展示、下载、安装、管理于一体提供图形化操作界面简化Windows软件安装流程通过软件商店安装麒麟Wine助手支持官方软件列表和第三方软件安装麒麟Wine助手方式一:通过软件商店安装打开软件商店→搜索"Wine助手"→单击"安装"→等待安装完成方式二:通过命令行安装$sudoaptinstallkylin-wine-helper安装完成后从开始菜单启动麒麟Wine助手6.4.2使用麒麟Wine助手安装Windows软件安装步骤1.打开麒麟Wine助手,浏览软件列表2.选择要安装的软件,单击"安装"3.创建容器:设置容器名称、选择Windows版本、选择Wine版本4.自动下载并安装所需依赖5.下载Windows软件安装包6.在容器中执行安装程序7.安装完成,从开始菜单启动官方软件列表麒麟Wine助手提供常用Windows软件列表包括微信、QQ、钉钉、WPS等国产软件一键安装,自动配置最佳运行环境6.4.2使用麒麟Wine助手安装Windows软件安装步骤1.打开麒麟Wine助手,浏览软件列表2.选择要安装的软件,单击"安装"3.创建容器:设置容器名称、选择Windows版本、选择Wine版本4.自动下载并安装所需依赖5.下载Windows软件安装包6.在容器中执行安装程序7.安装完成,从开始菜单启动官方软件列表麒麟Wine助手提供常用Windows软件列表包括微信、QQ、钉钉、WPS等国产软件一键安装,自动配置最佳运行环境6.4.2使用麒麟Wine助手安装Windows软件安装步骤1.打开麒麟Wine助手,浏览软件列表2.选择要安装的软件,单击"安装"3.创建容器:设置容器名称、选择Windows版本、选择Wine版本4.自动下载并安装所需依赖5.下载Windows软件安装包6.在容器中执行安装程序7.安装完成,从开始菜单启动官方软件列表麒麟Wine助手提供常用Windows软件列表包括微信、QQ、钉钉、WPS等国产软件一键安装,自动配置最佳运行环境6.4.2管理Windows软件与容器软件管理在麒麟Wine助手主界面查看已安装软件启动软件:单击软件图标运行卸载软件:单击"卸载"按钮移除支持创建桌面快捷方式支持从开始菜单直接启动6.4.2管理Windows软件与容器容器管理容器是独立的Windows运行环境查看信息:容器名称、Windows版本、Wine版本Wine配置:调整Windows版本、驱动器、注册表应用启动:运行第三方程序、创建快捷方式每个软件可拥有独立容器,互不干扰容器管理操作示例创建新容器:软件管理→容器管理→创建容器→设置名称和版本→完成删除容器:容器管理→选择容器→删除→确认(容器内所有软件将被删除)运行第三方程序:应用启动→选择.exe文件→选择容器→创建快捷方式→运行备份容器:容器管理→导出容器→保存到指定位置,便于迁移和恢复6.4.2使用麒麟Wine助手安装Windows软件第三方软件安装通过"应用启动"功能运行第三方程序选择本地.exe安装文件自动创建容器并执行安装6.4.2使用麒麟Wine助手安装Windows软件第三方软件安装通过"应用启动"功能运行第三方程序选择本地.exe安装文件自动创建容器并执行安装6.4.2使用麒麟Wine助手安装Windows软件第三方软件安装通过"应用启动"功能运行第三方程序选择本地.exe安装文件自动创建容器并执行安装6.5习题与上机实验本章习题与上机实验思考题1.为什么要使用软件包管理?2.安装软件包为什么要考虑硬件架构?3.使用dpkg命令能查看通过麒麟软件商店安装的软件包吗?4.简述APT工具的基本功能。5.在麒麟桌面操作系统中能够直接安装RPM软件包吗?6.简述APT的工作机制。7.简述源码编译安装的基本步骤。8.什么是Wine?其主要作用是什么?上机实验实验1:使用dpkg命令安装Chrome浏览器下载DEB包,使用dpkg-i安装,查看软件包信息,使用dpkg-r卸载实验2:使用apt命令安装Emacs软件执行aptupdate,使用aptinstall安装,验证安装,使用aptremove/purge卸载实验3:使用源码编译安装Nginx软件下载源码包,解压,执行configure、make、makeinstall,启动Nginx服务验证本章学习目标理解Linux软件包的概念和DEB格式掌握使用安装器和dpkg安装DEB软件包熟练使用APT工具管理软件包掌握源码编译安装软件的方法了解使用麒麟Wine助手运行Windows软件CHAPTER06COMPLETED本章学习完成掌握DEB软件包安装、APT工具使用、源码编译安装、Windows软件安装的技能DEB软件包安装器dpkg工具APT工具在线安装自动依赖源码编译configuremakeWindows软件Wine技术麒麟Wine助手人民邮电出版社Linux创新人才培养系列教材第7章系统高级管理麒麟操作系统实用教程(微课版)人民邮电出版社·Linux创新人才培养系列教材本章内容导览7.1进程管理进程概述ps与top命令启动与切换进程结束进程与优先级查看服务与端口7.2systemd管理systemd概述单元与单元文件依赖关系与目标systemctl命令服务与启动目标7.3定时任务调度Cron服务定时任务crontab个人任务systemd定时器定时器示例7.4麒麟安全中心安全中心功能概览安全体检与账户保护网络保护配置病毒防护与应用保护设备安全管理7.5Shell脚本Shell脚本特点与构成脚本执行方式系统自动化管理示例AI辅助编写运维脚本CHAPTER7.1进程管理进程概述·查看监视进程·管理进程运行进程类型进程监视进程管理7.1.1进程概述核心概念程序:静态实体,存储在磁盘上的可执行文件进程:运行中的程序,动态概念,分配系统资源线程:进程中共享资源的执行单元进程是操作系统资源分配的基本单位每个进程拥有独立的地址空间和资源进程类型交互进程:由Shell启动,前台或后台运行批处理进程:与终端无关,提交到队列顺序执行守护进程:后台运行,系统启动时自动启动服务与守护进程本质相同Linux惯例守护进程名称后加"d"如sshd、httpd、mysqld进程关系示意图程序→进程→线程程序(静态文件)执行后成为进程(动态实例)进程可以包含一个或多个线程,线程共享进程资源进程状态:运行(R)、睡眠(S)、停止(T)、僵尸(Z)每个进程由唯一的进程ID(PID)标识7.1.2使用ps命令查看进程选项说明功能-e/-A所有进程显示系统中所有进程-a与终端关联显示与当前终端关联的进程-u特定用户显示指定用户的进程-f全格式显示完整格式的进程信息-l长格式显示长格式的进程信息aux组合选项显示所有用户的所有进程(最常用)psaux输出列说明USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDroot10.00.116844812345?Ss09:000:01/sbin/init#关键列说明USER—进程所有者PID—进程ID%CPU—CPU使用率%MEM—内存使用率VSZ—虚拟内存RSS—物理内存TTY—终端STAT—进程状态COMMAND—命令7.1.2使用top命令实时监视进程top显示内容系统信息:系统时间、运行时间、负载任务统计:总进程数、运行中、睡眠、停止、僵尸CPU使用率:用户空间、系统、空闲、等待内存使用:物理内存总量、已用、空闲、缓存交换空间:总量、已用、空闲进程列表:动态更新的进程信息交互命令空格—立即刷新显示Ctrl+L—重写屏幕q—退出topM—按内存使用率排序P—按CPU使用率排序k—杀死指定PID进程刷新间隔默认5秒top命令启动与常用操作$top#启动top实时监视$top-d2#设置刷新间隔为2秒$top-utester#只显示tester用户的进程#top交互模式下按M键→按内存排序按P键→按CPU排序按k键→输入PID→回车结束进程按q键→退出top7.1.3启动与切换进程进程启动方式手动启动:前台运行:直接输入命令执行后台运行:命令后加&符号调度启动:通过at或cron定时执行系统启动时自动运行前后台切换Ctrl+Z—挂起当前前台进程bg%n—将挂起的作业n放到后台运行fg%n—将后台作业n切换到前台jobs-l—显示后台作业列表显示作业号、PID、状态、命令%n中n为作业号前后台切换示例$firefox&#后台启动Firefox[1]12345$jobs-l#查看后台作业[1]+12345Runningfirefox&$fg%1#切换到前台#按Ctrl+Z挂起[1]+Stoppedfirefox$bg%1#后台恢复运行[1]+12345Runningfirefox&7.1.3结束进程与优先级管理结束进程命令killPID—发送TERM信号(15)终止kill-9PID—强制结束(SIGKILL)killall进程名—按名称结束nohup命令&不挂断执行,退出终端后继续运行输出重定向到nohup.out优先级管理nice值范围:-20~19值越小优先级越高nice-n值命令以指定优先级启动进程renice值PID调整运行中进程的优先级普通用户只能提高nice值进程管理示例$kill12345#正常终止PID为12345的进程$kill-912345#强制结束进程$killallfirefox#结束所有firefox进程$nohuppython3server.py&#后台运行,退出终端不停止$nice-n10./backup.sh#低优先级运行备份脚本$sudorenice-512345#提高进程优先级7.1.4查看服务与端口netstat命令-a—显示所有端口-l—仅显示监听端口-t—显示TCP连接-u—显示UDP连接-n—数字显示地址和端口常用组合:netstat-tlnp查看监听端口及对应进程ss与lsof命令ss命令功能类似netstat,速度更快ss-tlnp查看监听端口lsof命令lsof-i:端口号查看占用指定端口的进程lsof-i:22查看SSH服务查看端口占用示例$sudonetstat-tlnp#查看监听端口和进程ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programnametcp00:22:*LISTEN1234/sshdtcp00:80:*LISTEN5678/nginx$sudolsof-i:22#查看22端口占用COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEsshd1234root3uIPv4123450t0TCP*:ssh(LISTEN)$ss-tlnp|grep80#快速筛选80端口CHAPTER7.2使用systemd管理

系统和服务systemd基础·单元管理·服务管理·系统启动管理systemd服务管理启动管理7.2.1systemd概述什么是systemdsystemd替代传统的SysVinit使用目标(Target)代替运行级别核心进程/bin/systemd,PID为1兼容SysVinit和LSB脚本向后兼容传统init脚本现代Linux发行版的标准初始化系统核心优势并行启动:同时启动多个服务大幅缩短系统启动时间按需启动:按需激活守护进程减少系统资源占用事务性依赖控制:确保服务按正确顺序启动systemdvsSysVinit对比SysVinit(传统):串行启动,按顺序逐个启动服务;运行级别概念(0-6);脚本复杂,依赖管理困难systemd(现代):并行启动,同时启动无依赖的服务;目标(Target)替代运行级别;单元文件简洁,自动解决依赖$ps-p1-ocomm=#查看PID1的进程名,确认使用systemdsystemd7.2.2systemd单元与单元文件单元类型说明service系统服务(最常见)device内核识别的设备mount文件系统挂载点automount自动挂载点socket进程间通信套接字swap交换分区或文件path文件或目录路径timer定时器(替代cron)target目标(替代运行级别)snapshot系统状态快照单元文件存放目录(优先级由高到低)/etc/systemd/system/—管理员自定义单元文件(最高优先级)/run/systemd/system/—运行时生成的单元文件/lib/systemd/system/—软件包安装的单元文件(最低优先级)同名单元文件,优先级高的覆盖优先级低的7.2.2systemd依赖关系与目标依赖关系required(强依赖):目标单元必须成功启动,否则当前单元失败wants(弱依赖):目标单元最好启动,失败不影响当前单元事务完整性保证无循环引用systemd自动检测并拒绝循环依赖目标(Target)目标替代传统的运行级别多个目标可以同时启动目标之间可以存在依赖关系常用目标:graphical.target—图形界面multi-user.target—多用户文本rescue.target—救援模式运行级别与systemd目标对应运行级别systemd目标说明0poweroff.target关机1rescue.target单用户救援模式3multi-user.target多用户文本模式5graphical.target图形界面模式6reboot.target重启7.2.3systemctl命令行工具列出单元list-units—列出已加载单元显示五列:UNIT/LOAD/ACTIVE/SUB/DESCRIPTION--all—列出所有单元--state=状态—按状态过滤--type=类型—按类型过滤systemctllist-units--type=service查看状态与配置status单元名查看单元运行状态和日志show单元名查看单元详细配置属性is-active单元名检查单元是否正在运行is-enabled单元名检查单元是否开机启动systemctl常用查询命令$systemctllist-units--type=service#列出所有服务$systemctllist-units--state=failed#列出失败的服务$systemctlstatussshd.service#查看SSH服务状态$systemctlshowsshd.service#查看SSH详细配置$systemctlis-activesshd#检查SSH是否运行$systemctlis-enabledsshd#检查SSH是否开机启动$systemctllist-units--type=target#列出所有目标7.2.4单元状态转换操作命令语法功能startstart单元名启动单元stopstop单元名停止单元restartrestart单元名重启单元(先stop再start)reloadreload单元名重载配置(不中断服务)try-restarttry-restart单元名运行则重启,未运行不操作killkill单元名向单元进程发送信号list-dependencieslist-dependencies单元列出单元的依赖关系editedit--full单元名编辑单元文件提示:restart会中断服务,reload不中断。生产环境优先使用reload重载配置。edit命令默认创建覆盖文件,--full编辑整个单元文件。修改单元文件后需执行daemon-reload重新加载。7.2.5单元文件管理单元文件状态enabled—开机自动启动disabled—不开机启动static—静态单元,被其他单元依赖masked—屏蔽状态,无法启动list-unit-files列出所有单元文件及状态显示STATE和VENDORPRESET管理命令enable—设置开机启动disable—禁用开机启动mask—屏蔽单元(完全禁用)unmask—解除屏蔽daemon-reload重新加载所有单元文件配置修改单元文件后必须执行单元文件管理示例$systemctllist-unit-files--type=service#列出所有服务单元文件$systemctlenablesshd.service#设置SSH开机启动$systemctldisablesshd.service#禁用SSH开机启动$systemctlmasksshd.service#屏蔽SSH服务$systemctlunmasksshd.service#解除屏蔽$sudosystemctledit--fullnginx.service#编辑Nginx单元文件$sudosystemctldaemon-reload#重新加载配置7.2.6使用systemd管理服务常用服务管理systemctl[命令]服务名.servicestart—启动服务stop—停止服务restart—重启服务reload—重载配置status—查看状态enable--now—启用并立即启动disable--now—禁用并立即停止自定义服务单元[Service]节关键字段:Type—服务类型(simple/forking/oneshot)ExecStart—启动命令ExecStop—停止命令ExecReload—重载命令Restart—自动重启策略创建/etc/systemd/system/下的.service文件服务管理示例$sudosystemctlstartnginx.service#启动Nginx$sudosystemctlstopnginx.service#停止Nginx$sudosystemctlrestartnginx.service#重启Nginx$sudosystemctlenable--nownginx#开机启动并立即运行$sudosystemctldisable--nownginx#禁用并立即停止$sudosystemctlstatusnginx#查看Nginx状态$sudojournalctl-unginx#查看Nginx日志7.2.7管理系统启动目标查看与设置默认目标get-default查看当前默认启动目标set-default目标名更改默认启动目标常用目标:graphical.target—图形界面(默认)multi-user.target—多用户文本模式临时切换目标isolate目标名临时切换到指定目标不影响默认启动设置list-units--type=target查看已启动的目标isolate会停止当前目标中新目标不需要的服务启动目标管理示例$systemctlget-default#查看默认目标graphical.target$sudosystemctlset-defaultmulti-user.target#设置为文本模式$sudosystemctlisolaterescue.target#临时进入救援模式$systemctllist-units--type=target#查看已启动目标$sudosystemctlset-defaultgraphical.target#恢复图形界面7.3.1Cron服务实现定时任务系统级定时任务/etc/crontab管理系统级任务格式:分时日月周用户名命令特殊符号:*—通配,任意值-—区间,如1-5,—列表,如1,3,5/—间隔,如*/5预定义目录将脚本放入对应目录即可定时执行:/etc/cron.hourly/—每小时执行一次/etc/cron.daily/—每天执行一次/etc/cron.weekly/—每周执行一次/etc/cron.monthly/—每月执行一次/etc/crontab示例$cat/etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/bin#分时日月周用户命令02***root/usr/sbin/backup.sh#每天2:00备份*/5****root/usr/sbin/check.sh#每5分钟检查00**0root/usr/sbin/weekly.sh#每周日0:00执行031**root/usr/sbin/monthly.sh#每月1日3:00执行CHAPTER7.3定时任务调度Cron服务·systemd定时器Cron服务定时任务systemd定时器7.3.1定制个人Cron任务crontab命令-e—编辑当前用户的crontab-l—显示当前用户的crontab-r—删除当前用户的crontab-u用户名—指定用户(需root权限)配置文件位置:/var/spool/cron/crontabs/用户名Cron监测周期为1分钟注意事项修改crontab后无需重启服务Cron自动检测文件变化命令建议使用绝对路径避免环境变量问题输出重定向到文件或/dev/null避免邮件通知堆积crontab使用示例$crontab-e#编辑个人定时任务#每分钟执行echo测试*****echo"test">>/tmp/cron_test.log#每5分钟同步时间*/5****/usr/sbin/ntpdate$crontab-l#查看当前任务$crontab-r#删除所有任务7.3.2systemd定时器定时器单元结构需要两个单元文件配合:.timer—定时器单元定义触发时间和规则.service—服务单元定义要执行的任务定时器触发时启动对应服务[Timer]节常用字段OnActiveSec—定时器激活后多久触发OnBootSec—系统启动后多久触发OnUnitActiveSec—上次触发后多久再次触发OnCalendar—按日历时间触发Persistent—持久化(错过则补执行)Unit—指定触发的服务单元类型:单调定时器(相对时间)实时定时器(绝对时间,如cron)定时器单元文件示例#/etc/systemd/system/backup.timer[Unit]Description=Dailybackuptimer[Timer]OnCalendar=dailyPersistent=trueUnit=backup.service[Install]WantedBy=timers.target7.3.2systemd定时器示例创建定时器完整流程1.创建任务脚本(如/usr/local/bin/my-task.sh)2.创建.service服务单元文件,ExecStart指向脚本3.创建.timer定时器单元文件,设置触发规则4.执行daemon-reload重新加载配置5.执行enable--now启用并立即启动定时器6.使用list-timers查看定时器状态7.验证执行结果(检查日志或输出文件)8.使用disable--now停用并删除(如需清理)定时器操作命令#创建并启用定时器$sudosystemctldaemon-reload$sudosystemctlenable--nowmy-task.timer#查看定时器状态$systemctllist-timers--all$systemctlstatusmy-task.timer#停用并删除定时器$sudosystemctldisable--nowmy-task.timer$sudorm/etc/systemd/system/my-task.timerCHAPTER7.4使用麒麟安全中心安全体检·账户保护·网络保护·病毒防护·应用保护·设备安全安全体检账户保护网络保护7.4安全中心功能概览麒麟安全中心Kysec安全框架,六大功能模块:1.安全体检—系统安全扫描与一键修复2.账户保护—密码策略与账户锁定3.网络保护—防火墙与应用联网控制4.病毒防护—奇安信引擎智能查杀5.应用保护—来源检查与权限控制6.设备安全—外设管控与设备策略启动方式方式一:开始菜单开始菜单→安全中心方式二:设置窗口设置→安全与更新→安全中心方式三:命令行$kylin-security-center安全建议定期执行安全体检及时修复发现的安全问题保持病毒库最新启用自动更新漏洞补丁合理配置防火墙规则控制应用程序联网行为7.4.1实施安全体检安全体检多维度系统安全扫描检测系统漏洞、配置问题一键修复:自动修复发现的安全问题自动更新漏洞补丁:保持系统安全更新及时修复已知漏洞7.4.3网络保护配置防火墙配置两种网络模式:公用网络:不可被其他设备检测防火墙规则更严格专用网络:可被其他设备检测允许更多共享功能配置访问规则:名称、应用、方向、协议、IP、端口防火墙规则配置示例添加访问规则步骤:网络保护→防火墙→添加规则→设置规则名称→选择应用→设置方向(入站/出站)→选择协议(TCP/UDP/ICMP)→设置IP地址→设置端口→选择动作(允许/阻止)常用规则示例:允许SSH(22端口入站)—远程管理需要允许HTTP(80端口入站)—Web服务器需要阻止所有入站—最高安全性配置7.4.3网络保护配置应用联网控制管控应用程序的联网行为三种策略:允许—应用可以自由联网阻止—禁止应用联网警告—联网时弹出提示按应用单独配置策略精细控制网络访问权限7.4.4实施病毒防护病毒防护集成奇安信杀毒引擎三种查杀模式:智能查杀—快速扫描关键位置全盘查杀—扫描整个系统自定义查杀—指定目录扫描扫描模式:性能优先/速度优先病毒查杀操作建议日常维护:建议每周执行一次智能查杀,每月执行一次全盘查杀下载文件后执行自定义查杀发现病毒时:选择处理方式:清除(尝试清除病毒)、隔离(移动到隔离区)、删除(直接删除文件)7.4.5配置应用保护应用保护应用来源检查:阻止/警告/关闭检查应用签名和来源应用访问权限控制:限制应用访问系统资源应用执行控制:阻止/警告/关闭应用防护控制:进程防杀死、内核模块防卸载、文件防篡改应用保护建议:启用应用来源检查(警告模式),保持应用防护控制开启7.4.5配置应用保护应用保护应用来源检查:阻止/警告/关闭检查应用签名和来源应用访问权限控制:限制应用访问系统资源应用执行控制:阻止/警告/关闭应用防护控制:进程防杀死、内核模块防卸载、文件防篡改应用保护建议:启用应用来源检查(警告模式),保持应用防护控制开启7.4.5配置应用保护应用保护应用来源检查:阻止/警告/关闭检查应用签名和来源应用访问权限控制:限制应用访问系统资源应用执行控制:阻止/警告/关闭应用防护控制:进程防杀死、内核模块防卸载、文件防篡改应用保护建议:启用应用来源检查(警告模式),保持应用防护控制开启7.4.6设备安全管理外设管控功能控制接口开关:USB接口、光驱等设备的启用/禁用设备控制与权限:USB移动存储读写控制外置光驱、内置光驱控制设备策略管理:未授权设备处理设备连接记录审计配置建议建议保持默认配置默认配置经过安全优化高安全需求环境可:禁用USB存储设备禁用光驱设备记录所有设备连接设备策略支持白名单只允许特定设备接入设备安全应用场景场景一:防止数据泄露禁用USB存储设备,禁止文件通过U盘拷贝外传场景二:防止恶意软件入侵禁用自动运行,插入U盘不自动执行程序场景三:审计追踪开启设备连接记录,追溯所有外设接入历史场景四:办公环境管控只允许公司认证的USB设备接入,拒绝未知设备CHAPTER7.5编写Shell脚本实现

自动化管理Shell脚本特点·脚本构成·脚本执行·自动化管理示例Shell脚本自动化运维脚本7.5.1-7.5.2Shell脚本特点与构成Shell脚本特点解释执行:无需编译,直接运行汇集命令:将连续命令整合为脚本自动化:整合各种命令实现自动化适合系统管理任务批量处理、定时执行简化重复性操作脚本基本构成Shebang:#!/bin/bash指定解释器路径注释:#注释内容变量定义:name=value命令执行条件判断:if/then/else函数定义source/.—合并外部脚本Shell脚本示例#!/bin/bash#系统信息收集脚本HOSTNAME=$(hostname)DATE=$(date+%Y-%m-%d)echo"主机名:$HOSTNAME"echo"日期:$DATE"echo"CPU负载:$(uptime|awk-F'loadaverage:''{print$2}')"echo"磁盘使用:$(df-h/|tail-1|awk'{print$5}')"source/etc/profile#加载环境变量7.5.3Shell脚本执行方式方式命令说明1chmod+x后./脚本赋予执行权限后,通过路径执行。当前目录需加./前缀2bash脚本指定Shell解释器执行,无需执行权限3source脚本或.脚本在当前Shell环境执行,变量和函数保留在当前环境4bash<脚本通过输入重定向执行,从标准输入读取脚本内容提示:直接执行当前目录的脚本需要加./前缀(如./script.sh),因为当前目录通常不在PATH环境变量中。source方式执行会改变当前Shell环境,适合加载环境变量配置。推荐生产环境使用chmod+x方式,明确脚本的执行权限。7.5.4系统自动化管理脚本示例监控脚本功能监控系统负载和磁盘使用率超过阈值时记录警报脚本逻辑:1.定义阈值变量2.获取当前负载和磁盘使用率3.自定义send_alert函数4.条件判断,超限则发送警报5.记录到sys_alert.log结合Cron定时执行将监控脚本加入Cron实现自动化周期性检查每5分钟执行一次:*/5****/usr/local/bin/sys_monitor.sh每小时执行一次:0****/usr/local/bin/sys_monitor.sh持续监控系统健康状态7.5.4系统自动化管理脚本示例系统监控脚本示例#!/bin/bashLOAD_THRESHOLD=2.0DISK_THRESHOLD=80LOG_FILE="/var/log/sys_alert.log"send_alert(){echo"$(date)ALERT:$1">>$LOG_FILE}CURRENT_LOAD=$(uptime|awk-F'loadaverage:''{print$2}'|cut-d','-f1)DISK_USAGE=$(df/|tail-1|awk'{print$5}'|tr-d'%')if(($(echo"$CURRENT_LOAD>$LOAD_THRESHOLD"|bc-l)));thensend_alert"Loadaverage$CURRENT_LOADexceeds$LOAD_THRESHOLD"fi7.5.4使用AI助手编写运维脚本国内常用AI助手DeepSeek—深度求索,代码能力强Kimi—月之暗面,长文本处理通义千问—阿里云,中文优化豆包—字节跳动,多模态均可辅助编写Shell脚本提供代码解释和优化建议提示词组织方法1.明确需求清晰描述要实现的功能2.指定场景说明操作系统和环境3.要求格式指定输出为Shell脚本要求包含注释和错误处理示例:批量创建用户、批量删除用户7.5.4使用AI助手编写运维脚本AI辅助脚本示例:批量创建用户#!/bin/bash#为开发团队批量创建用户并设置密码USERS=("dev1""dev2""dev3""dev4")PASSWORD="DevTeam2024!"foruserin"${USERS[@]}";doifid"$user"&>/dev/null;thenecho"用户$user已存在,跳过"elseuseradd-m-s/bin/bash"$user"echo"$user:$PASSWORD"|chpasswdecho"用户$user创建成功"fidone7.6习题与上机实验本章习题与上机实验思考题1.简述程序、进程和线程的关系。2.简述守护进程的特点。3.简述ps命令的常用选项及其作用。4.如何将前台进程切换到后台运行?5.简述systemd与传统SysVinit的区别。6.什么是单元(Unit)?有哪些常见类型?7.简述crontab的时间格式。8.麒麟安全中心有哪些主要功能?9.Shell脚本有哪些执行方式?上机实验实验1:查看和监视进程使用ps、top命令查看进程信息,练习前后台切换、结束进程实验2:systemd单元管理使用systemctl管理服务,设置开机启动,查看服务状态实验3:Shell脚本编写编写系统监控脚本,使用Cron定时执行实验4:使用麒麟安全中心进行安全体检,配置账户保护、网络保护、病毒防护实验5:使用AI助手编写运维脚本利用AI工具辅助编写自动化运维脚本本章学习目标理解进程、线程的概念和管理方法熟练使用systemd管理系统和服务掌握定时任务调度方法了解麒麟安全中心的使用掌握Shell脚本编写和自动化管理CHAPTER07COMPLETED本章学习完成掌握进程管理、systemd系统管理、定时任务调度、系统安全、Shell脚本自动化等高级技能进程管理ps/topkill/nicesystemdsystemctl服务管理定时任务Cron定时器系统安全安全中心病毒防护Shell脚本自动化运维脚本人民邮电出版社Linux创新人才培养系列教材人民邮电出版社·Linux创新人才培养系列教材第8章系统监控与故障排查《麒麟操作系统实用教程(微课版)》CONTENTS本章目录018.1系统监控系统信息查询、系统监视器、/proc目录、硬件信息查看028.2日志管理与错误排查rsyslog配置、systemd日志、日志工具使用、错误排查方法038.3系统启动与救援启动过程分析、GRUB配置、救援模式进入与操作048.4习题与上机实验理论习题、系统监视器实验、日志工具实验、密码重设实验CHAPTER8.1系统监控系统资源监测与管控的核心技术掌握系统运行状态的实时掌控能力8.1.1系统信息查询uname命令查看操作系统版本信息的核心命令uname-r内核版本5.10.0-9-genericuname-a所有详细信息Linuxkylin-dt5.10.0-9-generic...通过/etc/os-release可查看发行版信息激活状态查询kylin_activation_check查看系统激活状态kylin-verify查看授权到期时间用户登录信息who当前登录用户last历史登录情况lastlog所有用户最后登录主机名管理hostname查看主机名hostnamectlset-hostname永久修改主机名8.1.2使用系统监视器系统监视器是监控系统进程、系统资源和文件系统的专业工具,通过简洁明了的界面直观显示系统相关信息,支持实时监控处理器状态、内存占用率、网络上传下载速度。8.1.2使用系统监视器进程管理应用程序监测系统中运行的应用程序进程我的进程监测当前用户的进程全部进程监测系统当前运行的全部进程支持搜索、排序、结束进程、改变优先级服务监测监测系统服务状态,支持右键管理查看服务运行状态启动/停止/重启服务设置开机自启动运行中active已停止inactive磁盘监测监测所有磁盘分区的状态,主要是磁盘占用情况/dev/sda175%/dev/sda245%实时显示磁盘使用率实时硬件监控45%处理器62%内存23%交换空间↓1.2↑0.8网络(MB/s)8.1.3通过/proc目录获取系统实时状态/proc目录是Linux中非常特殊的虚拟文件系统,提供系统内核和进程的信息,包含系统和进程的动态信息,如进程状态、内存使用情况、CPU信息、设备信息等。硬件信息/proc/cpuinfoCPU详细信息•处理器型号名称•CPU主频•缓存大小/proc/meminfo内存使用情况•MemTotal:总内存•MemFree:空闲内存•Buffers/Cached:缓存/proc/uptime系统运行时间(秒)进程信息/proc/[pid]/status进程详细状态[pid]为进程ID,包含进程名称、状态、内存使用等信息/proc/[pid]/fd/文件描述符包含进程打开的文件描述符符号链接,用于调试和监控文件操作/proc/[pid]/maps内存映射信息显示内存区域的起止地址、权限等,用于分析内存布局设备驱动/proc/devices设备列表•字符设备•块设备•主设备号信息/proc/driver/驱动程序目录各驱动程序在此创建入口文件,显示配置参数和状态信息/proc是虚拟文件系统,不占用磁盘空间8.1.4查看系统硬件信息工具箱是麒麟桌面操作系统预装的应用,可以非常方便地查看和管理硬件设备,针对运行在操作系统上的硬件设备,可进行参数状态查看、数据信息导出等操作。整机信息通过开始菜单打开工具箱,单击左侧导航栏中的"整机信息"本机基本信息•操作系统版本•内核版本•系统架构本机硬件信息•处理器(CPU)•内存(RAM)•主板、硬盘、网卡•显卡、声卡等硬件参数单击左侧导航栏中的"硬件参数",通过标签页查看详细信息处理器内存显卡主板网卡硬盘显示器声卡键盘硬件监测实时查看硬件设备的温度和使用率驱动管理查看所有驱动信息,便于更新驱动程序8.1.4查看系统硬件信息lshw命令获取较为全面的硬件视图,包括所有连接的设备和硬件状态,提供树状结构的硬件信息基本用法sudolshw建议以root特权执行以获取更全面、更准确的信息-html输出为HTML页面-xml输出为XML格式-json输出为JSON格式-short列表形式显示-class仅显示指定类别dmidecode命令查看详细的硬件配置信息,特别是BIOS、主板、处理器和内存的详细规格DMI类型参数biosBIOS信息system系统信息baseboard主板信息processor处理器信息memory内存信息cache缓存信息其他专用工具lscpuCPU架构、核心数、频率lsblk存储设备和分区信息lsusbUSB设备信息lspciPCI设备(显卡、网卡等)CHAPTER8.2日志管理与错误排查日志记录、管理与故障排查的完整解决方案构建系统维护的闭环机制8.2.1配置管理rsyslog系统日志rsyslog是syslog的多线程增强版,是麒麟桌面操作系统默认的系统日志服务。rsyslog进程负责写入日志,logrotate进程负责备份和删除旧日志。主配置文件/etc/rsyslog.conf模块加载imuxsock-本地系统日志支持imudp/imtcp-网络日志接收imklog-内核日志支持日志格式设置设置默认模板、重复消息过滤、高精度时间戳等文件权限配置设置日志文件的所有者、组、创建模式等日志规则配置/etc/rsyslog.d/50-default.conf标准日志文件auth,authpriv.*→auth.log*.*;auth,authpriv.none→syslogkern.*→kern.logmail.*→mail.log语法格式信息来源.优先级处理方式使用-前缀表示延迟写入模式8.2.1配置管理rsyslog系统日志信息来源(设施)auth/authpriv安全/授权cron定时任务daemon守护进程kern内核mail邮件系统user用户级别syslogsyslogd内部local0-7保留使用逗号分隔多个来源,*表示所有来源优先级debug调试信息info一般信息notice正常提示warn警告信息err错误信息crit关键状态alert警报信息emerg紧急状况日志轮转logrotate自动实现日志定期清理•配置文件:/etc/logrotate.conf•每周清理、保存4个轮换日志•使用日期作为轮转文件后缀集中式日志服务将一台Linux主机作为日志服务器,其他主机作为客户端,实现日志集中收

温馨提示

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

评论

0/150

提交评论