编辑推荐 本书聚焦于资深系统管理员推荐的一系列Linux进阶知识,从基本原理、基础命令到具体用法,再到真实案例,逐层递进地讲解,囊括了Linux系统管理的方方面面。 在阅读本书的过程中,你将学习如何管理和监控运行中的进程,探索特殊文件系统的强大功能,以及在不重启的情况下监控和调整内核。然后,你将了解正则表达式,以及它在命令行中用于模式匹配的能力,并学会从命令行管理打印任务,解锁运行Linux操作系统的硬件的秘密。 接着,你将学习如何在命令行中编程,并自动化各种管理任务、网络设置及Linux系统所需的各种服务。通过查看日志文件来寻找问题的线索,确认系统运行是否正常。此外,你还将学习如何提升Linux系统的安全性,以及如何轻松执行本地和远程备份。 通过阅读本书,你将学习: 逻辑卷管理,文件管理器及特殊文件系统的使用。 “一切皆文件”的理念。 执行命令行编程,实现基本的自动化任务。 配置打印机和管理其他硬件。 使用systemd管理系统服务,处理用户管理和安全性问题,并进行本地和远程备份。无论是想要成为更专业的Linux用户,还是希望在系统管理方面有所建树,本书都是理想的选择。 内容推荐 本书聚焦于资深Linux系统管理员推荐的一系列进阶知识,揭示Linux运行和编程的深层逻辑,覆盖逻辑卷管理、进程管理和监控、特殊文件系统、正则表达式、通过命令行打印、编程和管理任务自动化、利用Ansible简化远程主机上的大规模自动化管理、配置定时任务、NetworkManager的功能、B树文件系统及其特性、systemd相关知识、利用D-Bus和udev实现设备的即插即用管理、传统Linux日志文件的使用、用户管理以及基本的防火墙管理操作等,帮助读者成为Linux系统管理员。 目录 译者序 前言 致谢 作者简介 第1章逻辑卷管理1 1.1逻辑卷管理的必要性1 1.1.1VirtualBox中磁盘空间不足2 1.1.2恢复安装2 1.2逻辑卷管理器的结构2 1.3扩展逻辑卷3 1.4创建和扩展卷组6 1.4.1创建新的卷组6 1.4.2扩展现有卷组9 1.5使用技巧提示10 1.6高级功能11 总结11 练习12 第2章文件管理器13 2.1概述13 2.1.1文本界面14 2.1.2图形界面14 2.2默认的文件管理器14 2.3文本模式的文件管理器14 2.4其他文本模式的文件管理器23 2.4.1Vifm文件管理器24 2.4.2nnn文件管理器24 2.5图形文件管理器25 2.5.1Krusader文件管理器25 2.5.2Thunar文件管理器28 2.5.3Dolphin文件管理器28 2.5.4XFE文件管理器29 2.6其他文件管理器30 总结31 练习31 第3章一切皆文件32 3.1什么是文件32 3.2设备文件33 3.3udev设备管理守护进程34 3.3.1udev命名规则34 3.3.2udev规则变更的困扰34 3.4设备数据流35 3.5设备文件分类36 3.6设备文件的强大功能和灵活性37 3.7随机性、零值及其他概念40 3.8备份主引导记录42 3.9“一切皆文件”的含义48 总结48 练习49 第4章进程管理50 4.1进程50 4.2工具51 4.2.1top51 4.2.2负载平均值55 4.2.3传输信号55 4.3CPU占用程序56 4.4进程调度57 4.5终止进程60 4.6其他交互式工具61 4.6.1atop61 4.6.2htop63 4.6.3Glances68 4.6.4其他工具70 4.7观察者效应74 总结74 练习75 第5章特殊文件系统76 5.1概述76 5.2/proc文件系统77 5.3/sys文件系统85 5.4基于存储的swap空间88 5.4.1Linux中swap的类型89 5.4.2内存抖动89 5.4.3基于存储的swap空间的合适大小90 5.4.4在非LVM磁盘环境中添加swap空间91 5.4.5在LVM磁盘环境中添加swap空间95 5.4.6LVM环境下的其他swap配置98 5.5使用Zram拓展swap空间98 5.5.1Zram存在的意义99 5.5.2需要多少swap空间99 5.5.3管理Zram交换100 5.5.4创建Zram交换101 5.5.5增加Zram交换102 5.6优化swap空间102 5.6.1关于swap空间大小的建议103 5.6.2移除传统的swap分区和文件103 总结105 练习105 第6章正则表达式106 6.1引入正则表达式106 6.2正则表达式入门指南107 6.3正则表达式检索工具grep113 6.3.1数据流114 6.3.2正则表达式构建块114 6.3.3重复操作116 6.3.4其他元字符117 6.4sed流式编辑器118 6.5其他实现正则表达式的工具119 6.6资源120 总结120 练习120 第7章打印122 7.1概述122 7.2关于打印机123 7.2.1打印语言123 7.2.2打印机和Linux124 7.2.3CUPS打印集成服务125 7.2.4创建打印队列127 7.3打印到PDF文件132 7.4文件转换工具134 7.4.1a2ps135 7.4.2ps2pdf136 7.4.3pr137 7.4.4ps2ascii137 7.5操作系统相关的转换工具138 7.5.1unix2dos139 7.5.2dos2unix141 7.5.3unix2mac和mac2unix141 7.6其他工具142 7.6.1lpmove142 7.6.2wvText和odt2txt144 总结145 练习145 第8章硬件检测146 8.1概述146 8.2dmidecode147 8.3lshw152 8.4lsusb155 8.5usb-devices156 8.6lspci158 8.7清理160 总结161 练习161 第9章命令行编码162 9.1概述162 9.2程序的定义163 9.3入门级CLI程序163 9.3.1基本语法164 9.3.2输出至屏幕164 9.3.3关于变量166 9.4控制运算符168 9.4.1返回码168 9.4.2运算符169 9.5程序流控制171 9.5.1true和false171 9.5.2逻辑运算符172 9.6组合程序语句180 9.7扩展知识184 9.7.1大括号扩展184 9.7.2波浪线扩展184 9.7.3路径名扩展184 9.7.4命令替换186 9.7.5算术扩展187 9.8for循环188 9.9其他循环192 9.9.1while循环192 9.9.2until循环194 总结194 练习195 第10章Bash脚本自动化196 10.1概述196 10.2为什么使用shell脚本197 10.2.1shell脚本197 10.2.2脚本和编译程序198 10.3更新198 10.3.1关于更新199 10.3.2创建需求列表199 10.3.3CLI程序200 10.3.4安全性200 10.3.5将CLI程序转换为脚本200 10.3.6添加逻辑201 10.3.7仅限root用户使用202 10.3.8添加命令行选项203 10.3.9检查更新205 10.3.10是否需要重启206 10.3.11添加帮助函数208 10.3.12完成脚本211 10.4关于测试212 10.4.1在生产中测试212 10.4.2模糊测试212 10.4.3测试脚本213 |