基础篇 3
第1章 Linux概述 3
1.1 初识Linux 3
1.1.1 Linux的发展史 3
1.1.2 Linux的特性 4
1.1.3 Linux与UNIX的区别 4
1.2 自由软件文化 5
1.2.1 自由软件的概念 5
1.2.2 FSF的理念 5
1.2.3 GNU与自由软件 6
1.3 Linux发行版简介 6
1.3.1 Red Hat Linux 6
1.3.2 Fedora Core 7
1.3.3 CentOS 7
1.3.4 Slackware Linux 8
1.3.5 SUSE Linux 8
1.3.6 Mandriva Linux 9
1.3.7 Debian GNU/Linux 9
1.3.8 Ubuntu Linux 10
1.3.9 Gentoo Linux 10
1.3.10 中科红旗Linux 11
1.4 Red Hat Linux 9 11
1.4.1 选用Red Hat Linux 11
1.4.2 Red Hat Linux 9的新特性 12
1.5 课后习题与实验 12
1.5.1 课后习题 12
1.5.2 实验:了解Linux 13
第2章 Red Hat Linux 9安装 14
2.1 安装Red Hat Linux 9 14
2.1.1 安装前的准备 14
2.1.2 选择安装界面 15
2.1.3 开始安装 16
2.1.4 磁盘分区 18
2.1.5 系统配置 22
2.1.6 安装完成 29
2.2 系统的登录与关闭 33
2.2.1 登录系统 33
2.2.2 注销与关机 34
2.3 引导管理器概述 35
2.3.1 GRUB 35
2.3.2 LILO 36
2.4 课后习题与实验 37
2.4.1 课后习题 37
2.4.2 实验:Red Hat Linux 9安装 37
第3章 Linux常用命令 39
3.1 浏览命令 39
3.1.1 列表命令ls 39
3.1.2 显示当前目录命令pwd 40
3.1.3 切换当前目录命令cd 41
3.1.4 显示状态信息命令stat 41
3.2 文件和目录基本命令 42
3.2.1 复制命令cp 42
3.2.2 删除命令rm 43
3.2.3 移动命令mv 43
3.2.4 创建目录命令mkdir 44
3.2.5 删除目录命令mdir 44
3.2.6 改变时间戳命令touch 45
3.2.7 链接命令ln 46
3.2.8 通配符介绍 46
3.3 文件阅读命令 47
3.3.1 显示文件内容命令cat 47
3.3.2 显示文件部分内容命令head/tail 48
3.3.3 逐页显示命令more/less 49
3.4 压缩和备份命令 49
3.4.1 压缩命令(1)gzip 49
3.4.2 压缩命令(2)bzip2 50
3.4.3 备份命令tar 51
3.5 系统信息命令 52
3.5.1 显示以前的命令history 52
3.5.2 显示时间命令date 53
3.5.3 显示月历命令cal 55
3.5.4 登录命令login 56
3.5.5 注销命令logout 56
3.5.6 重启系统命令reboot 56
3.5.7 关闭系统命令shutdown 57
3.6 查询与统计命令 58
3.6.1 查询命令find 58
3.6.2 模式搜索命令grep 60
3.6.3 正则表达式 61
3.7 其他命令 64
3.7.1 清屏命令clear 64
3.7.2 查询帮助手册命令man 64
3.7.3 软件包管理命令rpm 65
3.7.4 重定向与管道命令 66
3.8 课后习题与实验 66
3.8.1 课后习题 66
3.8.2 实验:Linux常用命令 67
第4章 Linux文本编辑 69
4.1 文本编辑器VI 69
4.1.1 VI简介 69
4.1.2 VI的操作流程 70
4.1.3 VI中的基本命令 70
4.1.4 设置VI环境 71
4.1.5 VIM简介 73
4.2 图形文本编辑器gedit 73
4.2.1 gedit简介 73
4.2.2 gedit基本操作 74
4.3 课后习题与实验 75
4.3.1 课后习题 75
4.3.2 实验:用VI进行文本编辑 75
第5章 Linux桌面环境 77
5.1 X Window系统介绍 77
5.5.1 X Window系统概述 77
5.1.2 与Windows系统的比较 77
5.1.3 桌面环境介绍 78
5.1.4 窗口管理器介绍 79
5.1.5 桌面环境与窗口管理器 82
5.2 GNOME桌面环境 82
5.2.1 GNOME面板 82
5.2.2 GNOME桌面 83
5.3 KDE桌面环境 84
5.3.1 KDE面板 84
5.3.2 KDE桌面 86
5.4 桌面切换 87
5.4.1 在X Window下切换桌面 87
5.4.2 在字符模式下进入桌面 87
5.5 课后习题与实验 87
5.5.1 课后习题 87
5.5.2 实验:图形界面操作 87
系统篇 91
第6章 用户管理 91
6.1 用户的管理 91
6.1.1 Linux下的用户 91
6.1.2 账号系统文件 92
6.1.3 创建、修改和删除用户 93
6.1.4 用户环境的设定 96
6.1.5 用户权限管理 99
6.1.6 超级用户 101
6.2 组的管理 101
6.2.1 Linux下的组和组文件 101
6.2.2 组的添加和删除 102
6.2.3 组属性的修改 103
6.3 磁盘配额 103
6.3.1 磁盘配额介绍 103
6.3.2 磁盘配额设置 104
6.3.3 磁盘配额管理 106
6.4 课后习题与实验 107
6.4.1 课后习题 107
6.4.2 实验:用户管理与磁盘配额 108
第7章 设备管理 110
7.1 硬件设备 110
7.1.1 设备文件 110
7.1.2 设备分类 111
7.2 使用设备 112
7.2.1 硬盘 112
7.2.2 DVD-ROM 113
7.2.3 USB存储设备 113
7.2.4 打印机 114
7.2.5 显示设备 118
7.2.6 声卡 119
7.2.7 网卡 120
7.3 课后习题与实验 120
7.3.1 课后习题 120
7.3.2 实验:Linux设备管理 121
第8章 文件系统管理 122
8.1 文件系统基础 122
8.1.1 磁盘分区 122
8.1.2 文件系统概述 123
8.1.3 Linux的目录结构 125
8.2 创建文件系统 126
8.2.1 创建磁盘分区 126
8.2.2 建立文件系统 128
8.2.3 交换分区 129
8.2.4 proc文件系统 130
8.3 文件系统的挂载和卸载 132
8.3.1 手动挂载和卸载文件系统 132
8.3.2 自动安装文件系统 133
8.4 文件系统的维护 135
8.4.1 检查文件系统 135
8.4.2 磁盘坏块的检查 136
8.4.3 文件系统管理命令 136
8.5 课后习题与实验 137
8.5.1 课后习题 137
8.5.2 实验:Linux中的分区与文件系统的管理 138
第9章 进程管理 140
9.1 系统初始化 140
9.1.1 系统启动过程 140
9.1.2 init进程的配置 141
9.1.3 rc命令介绍 144
9.2 进程管理 144
9.2.1 进程概念 144
9.2.2 进程的启动 145
9.2.3 管理系统进程 146
9.3 守护进程 149
9.3.1 守护进程概述 149
9.3.2 xinetd服务 151
9.4 课后习题与实验 152
9.4.1 课后习题 152
9.4.2 实验:Linux的进程管理 153
第10章 日志文件管理 154
10.1 日志文件概述 154
10.1.1 日志系统介绍 154
10.1.2 图形化显示日志 154
10.2 管理日志 156
10.2.1 syslog设备 156
10.2.2 日志文件介绍 157
10.2.3 查看二进制日志 159
10.3 课后习题与实验 163
10.3.1 课后习题 163
10.2.3 实验:Linux下日志文件的管理 163
网络篇 167
第11章 TCP/IP网络设置 167
11.1 Linux网络基础 167
11.1.1 网络模型 167
11.1.2 TCP/IP协议族概述 169
11.1.3 TCP/IP配置概念 170
11.1.4 TCP/IP网络配置 172
11.1.5 IPv6简介 173
11.2 网络配置命令 174
11.2.1 hostname 174
11.2.2 ifconfig 174
11.2.3 ping 175
11.2.4 route 175
11.2.5 traceroute 176
11.2.6 netstat 177
11.2.7 nslookup 177
11.2.8 tcpdump 178
11.3 课后习题与实验 179
11.3.1 课后习题 179
11.3.2 实验:TCP/IP网络设置 180
第12章 Apache Web服务器 182
12.1 Apache Web服务器概述 182
12.1.1 WWW服务简介 182
12.1.2 Apache发展史 183
12.2 Apache的默认配置 183
12.2.1 安装和启动Apache 183
12.2.2 httpd.conf 186
12.2.3.htaccess配置文件 191
12.2.4 配置Web站点 193
12.3 Apache的高级配置 194
12.3.1 访问控制 194
12.3.2 认证和授权 196
12.3.3 页面重定向 198
12.4 Apache日志管理 199
12.4.1 Apache日志访问 199
12.4.2 日志配置 200
12.5 虚拟主机 202
12.5.1 虚拟主机概述 202
12.5.2 基于IP地址的虚拟主机 202
12.5.3 基于域名的虚拟主机 205
12.6 动态站点简介 205
12.6.1 基于CGI的动态站点 205
12.6.2 基于PHP的动态站点 206
12.6.3 基于JSP的动态站点 208
12.7 课后习题与实验 209
12.7.1 课后习题 209
12.7.2 实验:在Linux下配置Apache Web Server 209
第13章 文件传输服务器 212
13.1 FTP概述 212
13.1.1 FTP简介 212
13.1.2 Linux下的FTP服务器 213
13.2 vsftpd的安装和配置 214
13.2.1 安装和启动vsftpd 214
13.2.2 vsftpd默认配置文件 216
13.2.3 匿名上传配置 218
13.2.4 访问控制配置 219
13.3 FTP客户端 221
13.3.1 FTP命令行工具 221
13.3.2 FTP图形化工具 222
13.4 课后习题与实验 223
13.4.1 课后习题 223
13.4.2 实验:在Linux下配置vsftp 223
第14章 网络服务器简介 225
14.1 DHCP服务器 225
14.1.1 DHCP概述 225
14.1.2 配置DHCP服务 227
14.2 DNS服务器 228
14.2.1 DNS概述 228
14.2.2 DNS服务配置 230
14.3 电子邮件服务器 232
14.3.1 电子邮件概述 232
14.3.2 sendmail服务配置 234
14.4 Samba文件共享服务器 235
14.4.1 Samba简介 235
14.4.2 Samba服务配置 236
14.5 Squid代理服务器 237
14.5.1 代理服务概述 237
14.5.2 squid服务器配置 238
14.6 防火墙和NAT 240
14.6.1 防火墙概述 240
14.6.2 包过滤防火墙iptables 240
14.6.3 NAT概述 241
14.7 课后习题与实验 243
14.7.1 课后习题 243
14.7.2 实验:配置Samba服务器 243
开发篇 247
第15章 Linux编程概述 247
15.1 Linux程序设计语言概述 247
15.1.1 Linux编程 247
15.1.2 C/C++++ 247
15.1.3 Java 249
15.1.4 Python 250
15.1.5 Ruby 251
15.1.6 Perl 252
15.1.7 PHP 252
15.2 Linux集成开发环境 253
15.2.1 KDevelop简介 253
15.2.2 Eclipse简介 253
15.2.3 Emacs简介 254
15.3 Linux编程风格 255
15.3.1 GNU风格 255
15.3.2 Linux内核风格 258
15.4 课后习题与实验 260
15.4.1 课后习题 260
15.4.2 实验:了解Linux编程 260
第16章 Linux语言环境 261
16.1 Shell编程 261
16.1.1 Shell的基本概念 261
16.1.2 Shell语法 264
16.1.3 Shell编程示例 272
16.2 C/C+++语言编程 273
16.2.1 GCC 273
16.2.2 GNU make 276
16.2.3 调试工具GDB 281
16.3 课后习题与实验 283
16.3.1 课后习题 283
16.3.2 实验:Shell及C编程 283
第17章 Linux内核概述 285
17.1 内核简介 285
17.1.1 内核结构介绍 285
17.1.2 内核版本 286
17.1.3 内核配置及编译 286
17.1.4 内核补丁安装 288
17.2 可加载模块 288
17.2.1 可加载模块概述 288
17.2.2 模块工具 289
17.3 课后习题与实验 290
17.3.1 课后习题 290
17.3.2 实验:Linux动态模块的加载 290
参考文献 292