第一篇 Linux基础入门 1
第1章 初识Linux 2
1.1 Linux简介 3
1.1.1什么是Linux 3
1.1.2 Linux系统的产生 3
1.1.3 Linux系统的发展历程 3
1.1.4 Linux系统的应用 4
1.2 Linux系统的特点和组成 5
1.2.1 Linux系统的特点 5
1.2.2 Linux系统的组成 6
1.2.3 Linux系统与Windows系统的比较 6
1.3 Linux的版本介绍 7
1.3.1 Linux内核版本 7
1.3.2 Linux内核的发展史 8
1.3.3 Linux发行版本 8
1.4 Red Hat Linux操作系统介绍 9
1.4.1 Red Hat Linux的优点 9
1.4.2 Red Hat Linux版本介绍 10
1.4.3 Red Hat Enterprise Linux AS 4简介 11
1.5课后练习 12
第2章 Linux系统的安装 13
2.1准备安装 Linux系统 14
2.1.1安装RHEL 4系统的软硬件要求 14
2.1.2 Linux系统下硬盘的基本知识 15
2.2安装Red Hat Enterprise Linux AS 4系统 16
2.2.1安装Linux的步骤 16
2.2.2安装后的初始化配置 23
2.3升级和删除RHEL 4 26
2.3.1升级RHEL 4 26
2.3.2删除安装的RHEL 4 27
2.4 RHEL 4安装过程中的故障排除 27
2.4.1无法引导RHEL 4 27
2.4.2安装起始部分的问题 28
2.4.3安装过程中的问题 28
2.4.4安装后的问题 28
2.5课后练习 29
第3章 走进Linux图形界面 30
3.1登录、注销和关闭系统 31
3.1.1登录系统 31
3.1.2注销 32
3.1.3关机 33
3.2使用GNOME图形化桌面 33
3.2.1使用桌面 33
3.2.2使用面板 34
3.3使用Nautilus文件管理器 35
3.4使用软盘和光盘 36
3.4.1使用软盘 36
3.4.2使用光盘 37
3.5系统设置 38
3.5.1系统监视器 38
3.5.2硬件浏览器 38
3.5.3显示设置 38
3.5.4日期和时间配置 40
3.5.5改变桌面背景 41
3.6 KDE桌面简介 41
3.6.1使用KDE桌面 42
3.6.2使用面板 42
3.6.3使用主菜单 43
3.6.4使用小程序 43
3.6.5使用多个桌面 43
3.6.6查看任务栏 44
3.6.7在面板上添加图标和小程序 45
3.6.8配置KDE面板 45
3.7使用Konqueror管理器 45
3.7.1管理文件 45
3.7.2导航面板 46
3.7.3使用Konqueror浏览万维网 46
3.7.4使用Konqueror来查看图像 46
3.8定制KDE 47
3.9课后练习 48
第4章 Linux应用软件的使用 49
4.1播放音频 50
4.1.1播放音频光盘 50
4.1.2播放数码音乐文件 50
4.2查看图像 51
4.2.1使用Nautilus查看图像 51
4.2.2使用gThumb查看图像 51
4.3上网冲浪 53
4.3.1配置互联网向导 53
4.3.2使用Mozilla Firefox浏览万维网 55
4.4收发电子邮件 55
4.4.1使用Evolution收发电子邮件 55
4.4.2使用KMail 收发邮件 57
4.5刻录CD-R和CD-RW 58
4.5.1使用CD/DVD刻录 58
4.5.2在命令行中使用CD-R和CD-RW 59
4.6 Linux下常用应用程序介绍 60
4.7课后练习 61
第5章 Linux字符界面操作 62
5.1字符界面简介 63
5.1.1进入Linux字符界面 63
5.1.2虚拟控制台 63
5.1.3系统运行级别 63
5.1.4关闭和启动系统 64
5.2在Linux下获取帮助 66
5.2.1使用man手册页 66
5.2.2使用help命令 68
5.2.3 whereis命令 68
5.3 shell基础 68
5.3.1 shell起步 68
5.3.2 shell类型和功能 69
5.3.3开始使用bash 70
5.4 shell实用功能 71
5.4.1命令行自动补全 71
5.4.2命令历史记录 71
5.4.3命令的排列、替换和别名 72
5.4.4文件名匹配和输出重定向 74
5.5 shell变量 77
5.5.1 bash配置文件 77
5.5.2提示符 78
5.5.3改变$PATH 78
5.6 vi编辑器的基本使用方法 80
5.6.1 vi的基本概念 80
5.6.2 vi的基本操作 81
5.6.3命令行模式操作 81
5.6.4末行模式操作 83
5.7课后练习 84
第6章 Linux常用操作命令 85
6.1文件和目录操作 86
6.1.1显示工作目录路径的命令pwd 86
6.1.2更改工作目录路径的命令cd 86
6.1.3列出子目录和文件信息的命令is 87
6.1.4创建空文件、更改文件时间的命令touch 88
6.1.5创建目录的命令mkdir 88
6.1.6删除空目录的命令rmdir 89
6.1.7复制文件和目录的命令cp 89
6.1.8文件和目录改名、移动文件和目录路径的命令mv 90
6.1.9删除文件和目录的命令rm 90
6.1.10统计文件字节数、字数、行数的命令we 91
6.2文本显示和处理 91
6.2.1显示文本文件的命令cat 91
6.2.2分页显示文本文件的命令more 92
6.2.3回卷显示文本文件的命令less 93
6.2.4显示指定文件前若干行的命令head 93
6.2.5查看文件末尾数据的命令tail 93
6.2.6对文件中的数据进行排序的命令sort 94
6.2.7将重复行从输出文件中删除的命令uniq 94
6.2.8从文件每个行中写出选定的字节、字符或字段的命令cut 95
6.2.9比较两个已排过序的文件的命令comm 96
6.2.10逐行比较两个文本文件,列出其不同之处的命令diff 96
6.3文件和命令查找 97
6.3.1查找文件里符合条件字符串的命令grep 97
6.3.2列出文件系统内符合条件的文件的命令find 98
6.3.3在数据库中查找文件的命令locate 98
6.3.4查找指定文件、命令和手册页位置的命令whereis 99
6.3.5查询文件类型的命令file 99
6.3.6查询命令功能的命令whatis 100
6.3.7显示可执行命令路径的命令which 100
6.4系统信息显示 100
6.4.1显示计算机及操作系统相关信息的命令uname 100
6.4.2显示或修改计算机主机名的命令hostname 101
6.4.3显示开机信息的命令dmesg 101
6.4.4显示日历的命令cal 102
6.4.5显示和设置系统日期和时间的命令date 103
6.5信息交流 104
6.5.1在显示器上显示文字的命令echo 104
6.5.2设定是否允许用write命令发送信息的命令mesg 104
6.5.3对全部已登录用户发送信息的命令wall 105
6.5.4向用户发送消息的命令write 105
6.5.5发送信息给其他使用者的命令talk 105
6.6其他命令 106
6.6.1清除屏幕上信息的命令clear 106
6.6.2将缓冲文件写到硬盘中的命令sync 106
6.6.3显示系统已经运行时间的命令uptime 106
6.6.4显示近期用户登录情况的命令last 106
6.7在Linux系统中运行DOS命令 108
6.8课后练习 108
第二篇 Linux系统管理 109
第7章 文件和目录 110
7.1 Linux文件 111
7.1.1 Linux文件的扩展名 111
7.1.2 Linux文件类型 112
7.2 Linux目录结构 114
7.3查看Linux系统的软硬件信息 116
7.3.1查看计算机CPU信息 116
7.3.2查看主机DMA通道信息 117
7.3.3查看文件系统信息 117
7.3.4查看主机中断信息 117
7.3.5查看主机I/O端口号信息 118
7.3.6查看计算机内存信息 118
7.3.7查看Linux版本信息 119
7.3.8查看板卡信息 119
7.3.9查看USB设备 119
7.4链接文件 120
7.4.1链接文件简介 120
7.4.2链接文件的使用 120
7.5课后练习 122
第8章 用户和组群账户管理 123
8.1用户账户管理 124
8.1.1 Linux用户账户概述 124
8.1.2 Linux用户账户配置文件 124
8.1.3图形界面下用户账户的设置 126
8.1.4字符界面下用户账户的设置 128
8.2组群账户管理 132
8.2.1 Linux组群账户配置文件 132
8.2.2图形界面下组群账户的设置 133
8.2.3字符界面下组群账户的设置 134
8.3账户相关文件或目录 135
8.3.1 /etc/skel目录 135
8.3.2 /etc/login.defs配置文件 136
8.3.3 /etc/default/useradd文件 137
8.4创建用户和组群的特殊方法 137
8.4.1修改用户和用户组群配置文件来添加用户和组群 137
8.4.2大批量添加用户 138
8.5用户和组群维护命令 139
8.5.1账户维护命令 139
8.5.2账户信息显示 144
8.6账户安全 146
8.7课后练习 148
第9章 软件包管理 149
9.1 RPM软件包简介 150
9.1.1什么是RPM软件包 150
9.1.2 RPM软件包的设计目标 150
9.1.3 RPM软件包管理的用途 150
9.2 RPM软件包管理 151
9.2.1图形界面管理RPM软件包 151
9.2.2 RPM软件包命令的使用 153
9.3 tar包管理 157
9.3.1 tar包简介 157
9.3.2 tar包使用和管理 158
9.3.3 tar包的特殊使用 160
9.4其他软件包管理命令 161
9.4.1 gzip命令 161
9.4.2 zip和unzip命令 163
9.5课后练习 164
第10章 磁盘管理 165
10.1 Linux硬盘分区 166
10.1.1硬盘分区知识 166
10.1.2使用fdisk进行硬盘分区 166
10.2逻辑卷管理器(LVM) 171
10.2.1什么是LVM 171
10.2.2 LVM 配置 171
10.3 RAID配置 173
10.3.1 RAID简介 173
10.3.2软件RAID配置 175
10.4课后练习 177
第11章 Linux文件系统 178
11.1 Linux文件系统简介 179
11.1.1 Linux文件系统的工作原理 179
11.1.2 Linux主流文件系统 179
11.1.3查看RHEL 4支持的文件类型 181
11.2创建文件系统 182
11.2.1创建文件系统简介 182
11.2.2创建文件系统 183
11.3挂载和卸载文件系统 184
11.3.1挂载文件系统 185
11.3.2卸载文件系统 186
11.3.3查看分区挂载情况 187
11.4检查文件系统的错误 188
11.5使用交换空间 189
11.5.1交换空间简介 189
11.5.2添加交换空间 189
11.5.3删除交换空间 191
11.6设置开机自动挂载文件系统 191
11.6.1 /etc/fstab简介 191
11.6.2 /etc/fstab文件详解 192
11.7课后练习 193
第12章 磁盘配额和权限设置 194
12.1磁盘配额的设置 195
12.1.1磁盘配额简介 195
12.1.2配置磁盘配额 195
12.1.3管理磁盘配额 197
12.2权限设置 198
12.2.1文件和目录权限 198
12.2.2权限设置 200
12.2.3更改文件和目录的所有权 204
12.2.4设置权限掩码 205
12.3课后练习 206
第13章 Linux系统启动 207
13.1 Linux系统的启动过程 208
13.1.1 BIOS自检 208
13.1.2启动GRUB/LILO 209
13.1.3加载内核 209
13.1.4执行init进程 209
13.1.5通过/etc/inittab文件进行初始化 209
13.1.6执行/bin/login程序 211
13.2 init进程 212
13.3维护GRUB 215
13.3.1引导加载程序和GRUB 215
13.3.2 GRUB配置文件 216
13.4课后练习 217
第14章 进程和服务管理 218
14.1 Linux进程管理 219
14.1.1进程及作业的概念 219
14.1.2进程管理 219
14.1.3守护进程工作原理和方式 220
14.2查看系统进程信息 222
14.2.1 ps命令 222
14.2.2 top命令 224
14.3管理服务 226
14.3.1服务配置工具 226
14.3.2 ntsysv命令 228
14.3.3 chkconfig和service命令 229
14.4课后练习 231
第15章 作业控制和任务计划 232
15.1作业控制 233
15.1.1进程的启动方式 233
15.1.2进程的挂起及恢复 234
15.2任务计划 235
15.2.1配置cron实现自动化 235
15.2.2使用at实现自动化 239
15.2.3配置batch作业 242
15.3课后练习 242
第16章 维护Linux系统 243
16.1 Linux日志管理 244
16.1.1日志简介 244
16.1.2日志的查看和配置 244
16.1.3常用的日志文件 246
16.1.4 syslog程序 247
16.2查看系统信息 249
16.2.1查看内存信息 249
16.2.2查看磁盘空间占用情况 250
16.2.3显示目录或文件的大小 252
16.3字符界面的中文化 252
16.3.1 zhcon的特点 253
16.3.2安装和查看zhcon 253
16.3.3 zhcon的使用 254
16.3.4 zhcon配置文件 255
16.4课后练习 258
第三篇 Linux网络服务 259
第17章 网络基本配置 260
17.1网络基础知识 261
17.1.1 Intemet所提供的服务 261
17.1.2网络拓扑结构 261
17.1.3网络互联的方式 263
17.1.4 OSI参考模型 264
17.1.5 TCP/IP 264
17.1.6 IP地址及其分类 266
17.2 Linux网络配置文件 267
17.2.1 /etc/sysconfig/network-scripts/ifcfg-ethN文件 267
17.2.2 /etc/resolv.conf文件 268
17.2.3 /etc/host.conf文件 268
17.2.4 /etc/sysconfig/network文件 268
17.2.5 /etc/hosts文件 268
17.2.6 /etc/services文件 269
17.3网络测试命令 270
17.3.1 traceroute命令 270
17.3.2 ifconfig命令 271
17.3.3 ping命令 272
17.3.4 netstat命令 273
17.3.5 arp命令 274
17.3.6 tcpdump命令 275
17.4字符界面的网络客户端 276
17.4.1使用FTP命令实现远程文件传输 276
17.4.2使用telnet命令访问远程计算机 280
17.4.3使用wget命令下载资料 281
17.5 Linux下路由器的配置 282
17.5.1路由器的基本概念 282
17.5.2静态路由器的配置 283
17.5.3静态路由配置举例 285
17.6 ADSL配置 286
17.6.1 ADSL介绍 286
17.6.2 ADSL配置 287
17.7课后练习 289
第18章 远程管理Linux服务器 290
18.1架设telnet服务器 291
18.1.1安装telnet软件包 291
18.1.2启动telnet服务 291
18.1.3配置telnet服务器 292
18.2 OpenSSH配置 294
18.2.1使用SSH的原因 294
18.2.2 配置OpenSSH服务器 294
18.2.3 Linux客户端的连接 294
18.2.4 Windows客户端的连接 297
18.3使用VNC实现远程管理 299
18.3.1 VNC简介 299
18.3.2 VNC配置 299
18.4课后练习 302
第19章 使用Samba实现文件共享 303
19.1 Samba简介 304
19.1.1 Samba和SMB 304
19.1.2 Samba的功能 304
19.1.3安装和查看Samba软件包 304
19.2图形界面配置Samba服务器 305
19.2.1配置服务器设置 305
19.2.2管理Samba用户 306
19.2.3添加共享 307
19.3字符界面配置Samba服务器 308
19.3.1修改/etc/samba/smb.conf文件 308
19.3.2设置Samba加密口令 309
19.4控制Samba服务器 310
19.5访问Samba共享 310
19.5.1在Linux系统下访问Samba共享 310
19.5.2在Windows系统下访问Samba共享 312
19.6课后练习 313
第20章 DHCP和NFS服务器配置 314
20.1 DHCP服务器配置 315
20.1.1 DHCP简介 315
20.1.2 DHCP服务器配置 316
20.2 NFS服务器配置 321
20.2.1 NFS简介 321
20.2.2 NFS服务器配置 321
20.2.3启动和停止服务器 323
20.2.4挂载NFS文件系统 324
20.3课后练习 326
第21章 使用Apache架设Web网站 327
21.1 Apache简介 328
21.2基本设置 328
21.3默认设置 329
21.3.1页码选项 329
21.3.2记录日志 331
21.3.3环境变量 331
21.3.4目录 332
21.4虚拟主机设置 333
21.4.1添加和编辑虚拟主机 334
21.4.2 SSL 335
21.4.3其他虚拟主机选项 335
21.5服务器设置 335
21.6调整性能 336
21.7保存设置 337
21.8课后练习 337
第22章 实现Linux网络安全 338
22.1提高Linux系统安全性能 339
22.2 Linux系统安全保护措施 341
22.3检测Linux系统 343
22.3.1 Linux入侵检测方法 343
22.3.2查找Linux系统漏洞 345
22.4网络安全工具 347
22.4.1 TCP_Wrappers实现访问控制 347
22.4.2 nmap的使用 347
22.5课后练习 352
第四篇 Linux程序开发 353
第23章 shell编程 354
23.1熟悉shell程序的创建 355
23.1.1语法基本介绍 355
23.1.2一个简单shell程序的创建过程 355
23.1.3显示欢迎界面的shell程序 356
23.2 shell变量 356
23.2.1 shell定义的环境变量 356
23.2.2用户定义的变量 357
23.2.3位置参数 358
23.2.4预定义变量 358
23.2.5参数置换的变量 358
23.3变量表达式 359
23.3.1字符串比较 359
23.3.2数字比较 360
23.3.3逻辑测试 360
23.3.4文件操作 360
23.3.5进行test测试的标准方法 361
23.4 shell程序的执行和跟踪 361
23.4.1 shell程序的执行和调试 361
23.4.2 shell程序的跟踪 362
23.4.3 bash的内部命令 362
23.5 shell流程控制语句 364
23.5.1条件判断 364
23.5.2循环控制 367
23.6函数 370
23.7 shell编程实例 372
23.7.1检查输入参数和环境变量 372
23.7.2当出现错误时,提供一个函数终止脚本 373
23.7.3在每个脚本内捕获每个行命令的返回码 373
23.7.4远程杀死僵进程 374
23.8课后练习 374
第24章 Linux C语言编程基础 375
24.1 C语言简介 376
24.2数据类型 376
24.2.1整型(int) 376
24.2.2浮点型(float) 377
24.2.3字符型(char) 377
24.2.4指针型(*) 378
24.2.5无值型(void) 378
24.3控制流程语句 378
24.3.1条件语句 378
24.3.2循环语句 379
24.3.3 break、 continue和goto语句 383
24.4文件的输入输出函数 384
24.4.1标准文件函数 384
24.4.2非标准文件函数 389
24.5变量 390
24.5.1变量声明 390
24.5.2变量种类 390
24.5.3变量存储类型 391
24.5.4数组变量 393
24.5.5变量的初始化和赋值 394
24.6数组与指针 397
24.6.1结构说明和结构变量定义 398
24.6.2结构变量的使用 399
24.6.3结构数组和结构指针 400
24.6.4结构的复杂形式 402
24.7课后练习 403
第25章 Linux程序编译和调试维护 404
25.1 C语言编译器GCC 405
25.1.1 GCC应用简介 405
25.1.2 GCC的使用 405
25.1.3警告提示功能 406
25.1.4库依赖 407
25.2用GDB调试程序 408
25.2.1 GDB概述 408
25.2.2 GDB基本命令 409
25.2.3 GDB应用举例 410
25.3使用make维护程序 413
25.3.1 makefile文件 413
25.3.2 make命令 415
25.3.3隐含规则 416
25.4课后练习 418