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