基础篇 2
第1章 系统简介 2
1.1 UNIX系统简介 2
1.1.1 UNIX系统的发展历史 2
1.1.2 UNIX系统的特点 5
1.2 Linux系统简介 7
1.2.1 Linux系统的发展历史 7
1.2.2 Linux系统的特点 8
1.2.3 Linux系统的发行版本介绍 9
1.2.4 Linux系统的应用 11
习题1 12
第2章 系统入门 13
2.1系统的开机与界面切换 13
2.1.1系统的开机 13
2.1.2两种操作界面及切换 14
2.2用户的登录与注销 15
2.2.1系统的登录 15
2.2.2注销 17
2.2.3 CLI终端仿真界面 18
2.2.4程序的启动 18
2.3 Linux系统的关闭与重启动 19
2.3.1字符界面 19
2.3.2系统的运行级别及切换 20
2.3.3图形界面 21
2.4 Linux系统的图形界面介绍 21
2.4.1 GNOME桌面简介 22
2.4.2 Ubuntu的Unity桌面简介 24
2.4.3设置中心(Settings) 25
2.5 Linux系统的在线帮助与资源 27
2.5.1 man 27
2.5.2 textinfo 29
2.5.3 yelp 29
2.5.4 Linux系统的其他帮助和资源 29
2.6 LibreOffice办公套件简介 30
2.6.1 LibreOffice Writer 31
2.6.2 LibreOffice Calc 31
2.6.3 LibreOffice Impress 32
2.6.4 LibreOffice Draw 32
习题2 32
实验2 33
第3章 shell与shell基本操作 34
3.1 shell基本功能与基本概念 34
3.1.1 shell基本功能 34
3.1.2字符与保留字 34
3.1.3文件命名及文件类型 36
3.1.4目录结构与路径 38
3.1.5 shell命令格式与命令编辑 40
3.1.6标准流与输入/输出重定向 42
3.1.7管道与三通 44
3.1.8环境变量与变量 45
3.1.9引号机制、命令替换与变量替换 46
3.1.10 shell命令的执行 47
3.1.11 shell种类 48
3.2 Linux系统的基本命令 49
3.2.1目录基本操作命令 49
3.2.2文件操作基本命令 51
3.2.3文件属性基本操作 57
3.2.4文本文件编辑与操作基本命令 59
3.2.5日期、时间与时区管理命令 67
3.2.6进程管理基本命令 70
3.2.7文件或目录比较命令 75
3.2.8其他操作命令 79
习题3 85
实验3 86
系统管理篇 88
第4章 用户、组和密码管理 88
4.1 UNIX系统的用户和组 88
4.1.1用户与uid 88
4.1.2组与gid 88
4.2与用户和组管理相关的文件 88
4.2.1 /etc/passwd 88
4.2.2 /etc/shadow 89
4.2.3 /etc/group 90
4.2.4 /etc/login.defs 90
4.2.5其他文件 90
4.3用户管理命令 91
4.3.1增加用户(useradd) 91
4.3.2用户删除(userdel) 93
4.3.3用户修改(usermod) 93
4.4组管理命令 93
4.4.1组创建(groupadd) 94
4.4.2组删除(groupdel) 94
4.4.3组修改(groupmod) 94
4.5密码管理 95
4.5.1密码管理综述 95
4.5.2密码管理命令(passwd) 95
4.5.3密码管理示例 96
4.6用户、组和密码管理图形界面 96
4.6.1添加用户 97
4.6.2用户属性修改 97
4.6.3用户删除 98
4.7与用户身份和位置相关的其他命令 98
4.7.1显示与用户和组相关的身份信息(id) 98
4.7.2显示已登录用户的信息(who) 99
4.7.3显示使用者的用户名(whoami) 100
4.7.4向系统中的指定用户发信息(write) 100
4.7.5向系统中已登录的所有用户发信息(wall) 100
4.7.6确定用户所使用的终端设备(tty) 100
4.7.7不退出系统而将自己切换成其他用户(su) 101
4.7.8以其他用户身份执行程序(sudo) 102
习题4 104
实验4 104
第5章 文件系统管理及使用 105
5.1文件系统权限及管理 105
5.1.1三种权限 105
5.1.2三类人 105
5.1.3权限控制 105
5.1.4默认权限与umask 106
5.2权限管理命令 107
5.2.1设置文件创建掩码(umask) 107
5.2.2改变文件的权限(chmod) 108
5.2.3改变文件的所有者(chown) 108
5.2.4改变文件的组(chgrp) 109
5.2.5 ext2+文件系统的新增属性及其管理 109
5.3文件系统管理 111
5.3.1 UNIX/Linux支持的文件系统 111
5.3.2 UNIX/Linux系统使用的存储设备 113
5.3.3磁盘分区管理与文件系统的创建 114
5.3.4文件系统的使用 119
5.3.5文件系统的检查、修复与同步 124
5.4与文件系统管理相关的其他命令 126
5.4.1文件综合查找命令(find) 126
5.4.2文件按名查找命令(locate) 128
5.4.3文件复制命令(dd) 129
5.4.4链接管理命令(ln) 130
5.4.5特别文件创建(mknod,mkfifo) 130
5.4.6磁盘空间和文件系统的使用情况统计(df) 131
5.4.7目录使用磁盘空间情况统计(du) 132
5.4.8数据备份与文件归档管理(tar,cpio) 132
5.4.9文件的压缩与解压缩 136
5.5图形界面下的文件和目录管理 139
习题5 140
实验5 141
第6章 进程、任务与作业管理 142
6.1程序和进程的概念 142
6.1.1程序、进程、作业和任务 142
6.1.2调度策略与优先级的计算 142
6.1.3 Linux操作系统的启动 142
6.1.4 0#进程与1#进程 143
6.1.5进程状态及查询(ps) 144
6.1.6三类进程 145
6.2登录shell的启动与定制 146
6.2.1用户登录过程与登录shell的启动 146
6.2.2用户登录控制与shell的定制 147
6.3 Linux系统的启动过程分析 148
6.3.1 SysVinit 148
6.3.2 upstart 151
6.3.3 systemd 154
6.4服务管理 158
6.4.1 systemctl 158
6.4.2早期的服务管理 159
6.4.3超级服务器(xinetd) 161
6.4.4 rc-local.service 164
6.5进程管理与调度命令 164
6.5.1可执行文件的setuid、setgid权限和目录的sticky属性 164
6.5.2进程管理与调度命令 166
6.5.3改变进程的家目录(chroot) 170
6.6任务的自动调度 172
6.6.1 at和batch 172
6.6.2 crontab 174
6.6.3系统crontab 176
6.7进程管理图形界面 176
习题6 176
实验6 177
第7章 系统安装、扩充、启动与管理 178
7.1系统安装 178
7.1.1安装任务与准备 178
7.1.2硬盘的物理结构与分区划分 178
7.1.3安装Linux系统所需的基本分区 182
7.1.4安装过程 183
7.1.5虚拟机的安装与使用 187
7.2引导器(grub) 188
7.2.1 grub常用术语 188
7.2.2操作界面 189
7.2.3 grub及其配置 190
7.2.4系统的启动及启动参数修改 195
7.3软件包管理 197
7.3.1红帽系统的软件包管理 197
7.3.2 ubuntu的软件包管理 201
7.3.3其他格式的软件包管理 204
7.3.4图形界面 206
7.4系统升级 206
7.5日志管理 207
7.5.1日志系统 207
7.5.2常见日志文件及阅读 209
7.5.3日志滚动 211
7.6系统管理 212
7.6.1系统管理的任务 212
7.6.2系统管理的工具与命令 213
7.7内核配置与参数在线调整 218
7.7.1内核配置、编译与安装 219
7.7.2编译与安装新内核 221
7.7.3模块管理 222
7.7.4内核参数在线调整 223
习题7 223
实验7 224
第8章 设备管理 225
8.1设备管理概述 225
8.1.1 Linux系统支持的设备 225
8.1.2设备发现与udev简介 226
8.1.3系统设置与查看 227
8.2打印机的管理与使用 229
8.2.1 cups的安装 230
8.2.2打印机的安装与配置 230
8.2.3 cups系统的启动管理 233
8.2.4打印机使用 234
8.2.5打印任务管理 235
8.2.6 cups的配置文件 236
8.3交换区管理 236
8.3.1概述 236
8.3.2使用交换设备 237
8.3.3使用交换文件 238
8.4串口的管理与使用 238
8.4.1 Linux系统的串口设备 238
8.4.2串口管理程序(setserial) 239
8.4.3串口和调制解调器管理及通信程序(minicom) 240
习题8 242
实验8 243
第9章 网络配置、管理与基本应用 244
9.1 TCP/IP基础知识 244
9.1.1 IP地址 244
9.1.2端口及服务 246
9.1.3物理地址与逻辑地址 247
9.1.4主机名及设置 247
9.1.5网卡命名方案 248
9.2 TCP/IP配置 249
9.2.1与网络有关的配置文件 249
9.2.2网络服务及管理 254
9.2.3 IP地址配置 255
9.3网络管理命令 258
9.3.1测试网络是否通(ping) 258
9.3.2检查网络状态(netstat) 259
9.3.3地址解析协议缓存中的项目管理(arp) 261
9.3.4网络接口配置(ifconfig) 262
9.3.5网络IP管理(ip) 263
9.3.6网络接口的启用与停止(ifup/ifdown) 264
9.3.7路由表维护(route) 264
9.3.8主机及地址查询(nslookup/host) 266
9.3.9网络路由跟踪(traceroute) 267
9.4网络应用常用命令简介 267
9.4.1远程登录 267
9.4.2文件传输 268
9.4.3邮件收发 268
9.4.4文件下载 270
习题9 270
实验9 271
第10章 Linux系统的安全 272
10.1 Linux系统安全概述 272
10.1.1 Linux操作系统的基本安全机制 272
10.1.2 Linux系统可能遇到的安全问题及防范策略 273
10.2检查和监督系统的运行情况 276
10.2.1检查网络 276
10.2.2用ps或pstree检查进程 276
10.2.3检查系统的日志文件 276
10.2.4停止不需要的服务 276
10.2.5去掉多余的具有SUID和SGID属性的文件 277
10.3入侵检测和事件报告 277
10.3.1使用完整性检查工具 277
10.3.2事件报告制度 278
10.4防火墙 279
10.4.1 iptables 279
10.4.2 Firewalld 281
10.4.3 ufw 285
10.5 SELinux 286
10.5.1 SELinux中的安全类型和角色 286
10.5.2 SELinux中的策略 288
10.5.3 SELinux的Targeted策略 288
10.5.4 SELinux的策略及改变 289
10.5.5 SELinux中的布尔值及改变 290
10.5.6检查SELinux的状态 290
10.5.7 SELinux安全上下文管理 291
10.5.8 SELinux的应用 293
习题10 295
实验10 295
编程与开发篇 297
第11章 bshell编程 297
11.1正则表达式 297
11.1.1字符集 297
11.1.2 shell正则表达式 299
11.2流编辑(sed) 299
11.2.1功能及用法 299
11.2.2参数与说明 300
11.2.3脚本命令 300
11.2.4 sed示例 301
11.3模式搜索与处理(awk) 302
11.3.1功能及用法 302
11.3.2参数说明 302
11.3.3记录和域 302
11.3.4变量 302
11.3.5操作符 303
11.3.6控制语句 304
11.3.7常用函数 304
11.3.8 awk程序的执行 305
11.3.9 awk使用示例 305
11.4 Boume shell及其编程 306
11.4.1特殊字符 306
11.4.2 I/O重定向 307
11.4.3变量与参数 308
11.4.4 shell的状态 309
11.4.5 shell的调用与变量传递 310
11.4.6 shell程序设计 311
11.4.7命令行参数与选项的处理 324
11.4.8 shell程序调试 328
11.4.9 shell脚本程序格式 329
习题11 332
实验11 333
第12章 C/C++及其他编程环境 335
12.1编译器 335
12.1.1功能及用法 335
12.1.2参数及说明 336
12.1.3示例 336
12.1.4 gcc/g++的工作过程 338
12.2头文件 338
12.3链接器与库文件 339
12.4静态库 339
12.4.1静态库的管理 339
12.4.2构造静态库 340
12.4.3使用自己的库 340
12.5共享库 341
12.5.1共享库构造 341
12.5.2共享库的管理 341
12.5.3共享库编程 342
12.5.4共享库使用示例 343
12.6 make与Makefile 344
12.6.1 make的用法简介 344
12.6.2 Makefile文件 345
12.6.3 Makefile示例 347
12.7调试器(gdb) 350
12.7.1 gdb功能 350
12.7.2 gdb基本命令 351
12.7.3程序调试方法 351
12.8 UNIX/Linux其他编程工具简介 353
12.8.1常用库与GNOME/GTK开发 353
12.8.2 KDevelop/Qt开发 354
12.8.3 eclipse 354
12.8.4 Java开发 355
12.8.5 Perl开发 356
12.8.6数据库开发 357
12.8.7 PHP开发 358
12.8.8 Objective-C开发 358
12.8.9 Python 359
12.8.10 R语言 360
12.8.11虚拟化、云计算和大数据应用 363
习题12 364
实验12 365
网络服务与应用篇 367
第13章 网络时间服务NTP 367
13.1 NTP协议 367
13.1.1 NTP简介 367
13.1.2 NTP的工作模式 367
13.1.3 NTP服务器选择 368
13.2通过ntp配置NTP 368
13.2.1软件包的安装 368
13.2.2服务管理 368
13.2.3配置文件及配置 369
13.2.4文件/etc/sysconfig/ntpd和/etc/default/ntp 371
13.2.5防火墙设置 371
13.2.6配置文件实例 371
13.2.7配置测试 372
13.2.8无NTP服务的NTP客户端 374
13.3通过chrony配置NTP 375
13.3.1 chrony软件包的安装 375
13.3.2服务管理 375
13.3.3配置文件chrony.conf及默认配置 376
13.3.4配置实例 377
13.3.5配置测试 378
13.3.6其他说明 380
习题13 380
实验13 380
第14章 基础服务OpenSSH和VNC 381
14.1 OpenSSH 381
14.1.1 OpenSSH协议 381
14.1.2软件安装与启动管理 381
14.1.3配置文件与服务器设置 382
14.1.4客户端及应用 385
14.1.5与防火墙和SELinux的关系 387
14.2 VNC 388
14.2.1红帽的TigerVNC 388
14.2.2客户端及使用 390
14.2.3 Ubuntu的xllvnc 390
习题14 391
实验14 391
第15章 Web服务器Apache 392
15.1 Apache概述 392
15.2 Apache的安装和启动 392
15.2.1 Apache的安装 392
15.2.2 Apache服务器启动管理 393
15.2.3 Apache服务的测试 394
15.3 Apache的配置文件和配置指令 394
15.3.1 Apache主配置文件的结构 394
15.3.2 Apache的配置指令 395
15.4 Web服务器配置实例 404
15.4.1 Web服务器配置实例 405
15.4.2 Fedora的图形配置工具 409
15.5 httpd与防火墙和SELinux的关系 409
15.5.1 httpd与防火墙的关系 410
15.5.2 httpd与SELinux的关系 410
习题15 411
实验15 411
第16章 DHCP服务器 412
16.1 DHCP介绍 412
16.1.1 DHCP协议 412
16.1.2 DHCP的工作过程 413
16.2 DHCP服务器的安装与启动管理 414
16.2.1 DHCP服务器软件安装 414
16.2.2启动管理 414
16.3 DHCP的配置 415
16.3.1配置文件 415
16.3.2配置文件中的定义、参数和选项及意义 417
16.4 DHCP规划 419
16.4.1在不同的网络中使用DHCP 419
16.4.2设置DHCP中继 419
16.4.3设置备份DHCP 420
16.5 DHCP客户端设置 421
16.6 DHCP与防火墙的关系 421
习题16 422
实验16 422
第17章 FTP与TFTP服务器 423
17.1 FTP与FTP服务器概述 423
17.1.1 FTP的相关概念 423
17.1.2 Linux系统的FTP服务器 425
17.2 vsftpd服务器 426
17.2.1 vsftpd服务器的安装与启动 426
17.2.2 vsftpd的配置 427
17.2.3 vsftpd.conf的常见应用配置 432
17.3 FTP服务器的使用 435
17.3.1用浏览器访问 435
17.3.2使用客户端命令ftp 435
17.4 TFTP与TFTP服务器的使用简介 439
17.4.1 TFTP协议 439
17.4.2 TFTP的安装和配置及应用 439
17.5与防火墙和SELinux的关系 441
17.5.1与防火墙的关系 441
17.5.2与SELinux的关系 442
习题17 442
实验17 443
第18章 网络资源共享服务 444
18.1网络资源共享简介 444
18.2 Samba服务 444
18.2.1 SMB协议与Samba 444
18.2.2 Samba的安装与启动管理 446
18.2.3 Samba的配置 447
18.2.4配置共享打印机 452
18.2.5 Samba共享服务使用 453
18.2.6 Samba图形界面配置 455
18.2.7关于防火墙和SELinux的说明 456
18.3 NFS服务器 457
18.3.1 NFS介绍 457
18.3.2 NFS文件系统配置 458
18.3.3 NFS系统的使用 461
18.3.4 NFS的其他功能 462
18.3.5关于NFS的其他说明 465
习题18 466
实验18 466
第19章 域名服务器DNS 467
19.1 DNS概述 467
19.1.1 IP与域名的转换 467
19.1.2域名空间和区域 468
19.1.3 DNS查询 469
19.1.4客户端与域名解析相关的配置文件 470
19.1.5 DNS服务器的类型 470
19.2 BIND 471
19.2.1 BIND简介 471
19.2.2安装BIND 471
19.2.3 bind的启动管理 472
19.2.4 DNS服务器的运行方式及工作目录 472
19.2.5 DNS服务器配置基础 473
19.3 DNS服务器配置示例 479
19.4测试DNS服务器 481
19.5 DNS与防火墙及SELinux的关系 483
19.5.1 DNS与防火墙的关系 483
19.5.2 DNS与SELinux的关系 484
习题19 484
实验19 484
参考文献 485