目录 第1章Linux简介与安装1 1.1Linux简介1 1.1.1Linux的起源2 1.1.2Linux的特点4 1.1.3Linux的版本4 1.2硬盘分区7 1.2.1MBR分区7 1.2.2GPT分区9 1.3实例——用U盘安装Red Hat Enterprise Linux 811 1.4引导工具GRUB Legacy的设置与应用16 1.4.1GRUB的设置17 1.4.2实例——GRUB的应用19 1.5引导工具GRUB2的设置与应用20 1.5.1GRUB2与GRUB Legacy的区别20 1.5.2GRUB2配置文件21 1.5.3GRUB2脚本的修改23 1.5.4删除GRUB2中多余的引导菜单项25 1.5.5GRUB2命令行环境下的常用命令25 1.5.6实例——GRUB2的应用28 1.6RHEL 8的启动流程29 1.6.1RHEL 8的启动流程——BIOS+MBR30 1.6.2RHEL 8的启动流程——UEFI+GPT35 1.7本章小结36 1.8习题36 第2章Linux的用户接口与文本编辑器38 2.1GNOME及其配置工具38 2.1.1GNOME38 2.1.2GNOME Shell和GNOME Classic392.1.3GNOME配置工具: dconf、gsettings、dconfeditor41 2.1.4GDM43 2.1.5gnomesession43 2.1.6输入法44 2.2Shell44 2.2.1控制台与终端45 2.2.2Shell命令行46 2.2.3命令、子命令、选项和参数的自动补全功能46 2.2.4历史命令: history47 2.2.5命令别名: alias48 2.2.6通配符与文件名49 2.2.7输入/输出重定向与管道51 2.2.8Linux快捷键54 2.3Linux中的文本编辑器简介56 2.3.1GNOME中的文本编辑器56 2.3.2Vi、Vim与Emacs文本编辑器57 2.4Vim的5种编辑模式57 2.5实例——使用Vim编辑文件60 2.6本章小结64 2.7习题64 第3章系统管理67 3.1用户管理67 3.1.1用户管理: useradd、passwd、userdel、usermod、chage67 3.1.2组管理: groupadd、groupdel、groupmod、gpasswd、newgrp71 3.1.3用户查询: who、w、id、whoami、last、lastlog75 3.1.4su和sudo命令78 3.2进程管理84 3.2.1监视进程: ps、pstree、top84 3.2.2搜索进程: pgrep、pidof、ps|grep91 3.2.3终止进程: kill、killall、pkill、xkill92 3.2.4进程的优先级: nice、renice94 3.2.5前台进程与后台进程: command &、Ctrl+Z、jobs、fg、bg96 3.2.6周期性/定时执行任务: crontab、at、batch、watch96 3.2.7以守护进程方式执行任务: nohup102 3.2.8终端复用: tmux102 3.3系统和服务管理103 3.3.1系统和服务管理器: systemd103 3.3.2监视和控制systemd的命令: systemctl104 3.3.3系统资源: Unit105 3.3.4Unit的配置文件107 3.3.5目标(target)、运行级别(runlevel)110 3.3.6systemd定时器113 3.3.7开机启动: systemd115 3.3.8开机启动: rc.local115 3.3.9systemd系统管理116 3.3.10日志管理: journalctl117 3.4其他系统管理119 3.4.1查询系统信息: uname、hostname、free、uptime、dmidecode、 lscpu、lsmem、lspci、lsusb119 3.4.2/proc目录和sysctl命令122 3.4.3系统日志和dmesg命令124 3.4.4关机等命令: shutdown、halt、reboot、init、runlevel、logout、 startx125 3.4.5其他命令: man、date、hwclock/clock、tzselect、cal、eject、 clear/reset127 3.5系统监视130 3.5.1GNOME系统监视器: gnomesystemmonitor130 3.5.2系统活动情况报告: sar130 3.6本章小结133 3.7习题133 第4章磁盘与文件管理136 4.1磁盘管理136 4.1.1文件系统挂载: fdisk l、mount、umount、findmnt、lsblk、 blkid、partx、/etc/fstab、e2label/xfs_admin136 4.1.2查看磁盘空间: df、du144 4.1.3其他磁盘相关命令: fdisk、mkfs、mkswap、fsck、vmstat、iostat146 4.1.4制作镜像文件: dd、cp、mkisofs155 4.1.5数据同步: sync157 4.2文件与目录管理158 4.2.1Linux文件系统的目录结构158 4.2.2查看目录内容: cd、pwd、ls、nautilus160 4.2.3查看文件内容: more、less、cat、tac、nl、head、tail、wc164 4.2.4检查文件类型: file、stat166 4.2.5文件完整性: cksum、md5sum168 4.2.6文件与目录的创建、复制、删除、转移及重命名: touch、 mkdir、rmdir、mv、rm、cp170 4.2.7文件搜索命令: find、locate、which、whereis、type175 4.2.8文件操作命令: grep、sed、awk、tr179 4.2.9文件的追加、合并、分割: echo、cat、uniq、cut、paste、join、split186 4.2.10文件的比较、排序: diff、patch、cmp、sort192 4.2.11文件的链接: ln196 4.2.12设备文件: mknod198 4.2.13进程与文件: lsof198 4.2.14文件下载命令: curl、wget、HTTPie201 4.3文件与目录的安全203 4.3.1chmod与umask命令203 4.3.2chown命令205 4.3.3chgrp命令207 4.3.4chroot命令208 4.4强制位与粘贴位208 4.5文件隐藏属性: lsattr、chattr210 4.6访问控制列表(ACL): getfacl、setfacl、chacl、+212 4.7文件的压缩与解压缩217 4.7.1gzip、gunzip命令218 4.7.2bzip2、bunzip2命令220 4.7.3显示压缩文件的内容: zcat、zless、bzcat、bzless220 4.7.4tar命令221 4.7.5cpio命令223 4.8文件关联225 4.8.1MIME类型225 4.8.2添加自定义MIME类型226 4.9本章小结227 4.10习题228 第5章软件包管理230 5.1RPM230 5.1.1RPM简介230 5.1.2RPM的使用232 5.2YUM与DNF237 5.2.1YUM与DNF简介237 5.2.2使用YUM命令238 5.2.3YUM的配置文件240 5.2.4BaseOS和AppStream242 5.2.5安装第三方源243 5.2.6创建本地仓库246 5.2.7升级系统(Fedora)247 5.3软件包管理GUI: gnomesoftware247 5.4本章小结247 5.5习题247 第6章Linux中的Shell编程249 6.1Shell编程基础249 6.1.1Shell脚本的建立和执行249 6.1.2有效期与环境配置文件251 6.1.3Shell变量252 6.1.4控制Shell提示符256 6.1.5测试命令: test257 6.1.6算术运算260 6.1.7内部命令261 6.2Shell程序设计的流程控制263 6.2.1复合结构: {}、()263 6.2.2条件分支: if、case264 6.2.3循环结构: for、while、until266 6.2.4循环退出: break、continue270 6.3Shell脚本中的函数272 6.4Shell脚本的调试274 6.5本章小结275 6.6习题275 第7章网络服务与管理277 7.1网络接口配置277 7.1.1GUI方式: gnomecontrolcenter、nmconnectioneditor277 7.1.2CLI方式: ifconfig、dhclient、route、/etc/resolv.conf277 7.1.3NetworkManager与nmcli282 7.1.4nettools与iproute2285 7.2DHCP服务及配置288 7.2.1DHCP概述288 7.2.2实例——配置DHCP服务器290 7.2.3实例——配置DHCP客户端296 7.3Samba服务器的设置297 7.3.1Samba概述297 7.3.2实例——配置Samba服务器298 7.3.3Samba服务器的配置文件300 7.3.4SELinux: getsebool、setsebool、chcon、restorecon303 7.4WWW服务器的设置307 7.4.1Apache308 7.4.2Apache服务器的默认配置308 7.4.3实例——静态网站建设310 7.4.4实例——为每个用户配置Web站点311 7.4.5实例——配置基于IP的虚拟主机313 7.4.6实例——基于主机的授权314 7.4.7实例——基于用户的认证315 7.4.8实例——组织和管理Web站点317 7.4.9CGI运行环境的配置318 7.5防火墙的设置——iptables319 7.5.1netfilter/iptables简介320 7.5.2iptables的语法及其使用321 7.5.3实例——防火墙的设置: iptables323 7.5.4实例——NAT的设置: iptables326 7.6防火墙的设置——firewalld329 7.6.1firewalld简介329 7.6.2firewalld配置: firewallconfig、firewallcmd333 7.6.3实例——NAT的设置: firewallcmd340 7.7防火墙的设置——TCP_Wrappers341 7.8基于xinetd的服务343 7.9本章小结343 7.10习题343 第8章高级系统管理346 8.1逻辑卷管理346 8.1.1逻辑卷管理概述346 8.1.2逻辑卷管理的组成部分346 8.1.3逻辑卷创建过程: pvcreate、pvdisplay、vgcreate、vgdisplay、 lvcreate、lvdisplay347 8.1.4逻辑卷的扩展与缩小: lvextend、resize2fs、lvreduce350 8.1.5卷组的扩展与删除: vgextend、lvremove、vgremove、pvremove350 8.2磁盘阵列351 8.2.1RAID概述及常用的RAID规范351 8.2.2软件RAID描述355 8.2.3mdadm管理工具355 8.2.4软件RAID创建过程355 8.2.5软件RAID配置文件356 8.2.6查看、停止与启动软件RAID356 8.3磁盘配额356 8.3.1相关命令: quota、quotacheck、edquota、quotaon、quotaoff357 8.3.2实例——实现磁盘限额359 8.4虚拟化技术362 8.4.1虚拟化技术概述362 8.4.2QEMU、KVM、QEMUKVM、libvirt、virsh和virtmanager363 8.4.3实例——虚拟机的安装与管理364 8.5cgroups366 8.5.1cgroups概述366 8.5.2cgroups的默认层级367 8.5.3cgroups的子系统370 8.6cgroups与systemd371 8.6.1创建cgroup: systemdrun371 8.6.2删除cgroup372 8.6.3修改cgroup373 8.6.4获得关于cgroup的信息: systemdcgls、systemdcgtop375 8.7namespace376 8.8容器和云377 8.8.1容器377 8.8.2云378 8.9服务器管理软件Cockpit379 8.10本章小结381 8.11习题381 参考文献383 附录网站资源384