目录
第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、dconfeditor41
2.1.4GDM43
2.1.5gnomesession43
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系统监视器: gnomesystemmonitor130
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: gnomesoftware247
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方式: gnomecontrolcenter、nmconnectioneditor277
7.1.2CLI方式: ifconfig、dhclient、route、/etc/resolv.conf277
7.1.3NetworkManager与nmcli282
7.1.4nettools与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配置: firewallconfig、firewallcmd333
7.6.3实例——NAT的设置: firewallcmd340
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、QEMUKVM、libvirt、virsh和virtmanager363
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: systemdrun371
8.6.2删除cgroup372
8.6.3修改cgroup373
8.6.4获得关于cgroup的信息: systemdcgls、systemdcgtop375
8.7namespace376
8.8容器和云377
8.8.1容器377
8.8.2云378
8.9服务器管理软件Cockpit379
8.10本章小结381
8.11习题381
参考文献383
附录网站资源384