第1部分 Linux的安装和配置
第1章 系统介绍 2
1.1 Linux、GNU、GPL的关系 2
1.1.1 什么是Linux 2
1.1.2 什么是GNU(自由软件组织) 3
1.1.3 什么是GPL(GNU公共许可证) 3
1.2 Linux主要发行版本 3
1.2.1 Red Hat简介 4
1.2.2 Ubuntu简介 4
1.2.3 其他常见的Linux版本介绍 5
1.3 Linux系统的特性以及它与
Windows系统的区别 6
1.4 如何学好Linux 7
1.5 小结 8
1.6 习题 8
第2章 系统部署 9
2.1 安装Linux系统 9
2.1.1 获取安装文件 9
2.1.2 磁盘分区划分 9
2.1.3 必要的系统配置 11
2.1.4 设置用户名和密码 12
2.2 其他安装方式介绍 13
2.2.1 使用U盘安装Linux 13
2.2.2 使用光盘安装Linux 13
2.2.3 在虚拟机中安装Linux 14
2.3 Grub程序简介 16
2.3.1 配置Grub 16
2.3.2 修复Grub引导程序 18
2.4 Linux系统初始化 20
2.4.1 安装中文软件包 20
2.4.2 选择合适的中文输入法 21
2.4.3 设置基本网络连接 21
2.5 硬件设备的设置 22
2.5.1 设置声卡 22
2.5.2 设置鼠标 23
2.5.3 如何获取更新 23
2.5.4 硬件驱动程序 24
2.5.5 在Linux中如何获取帮助help
命令 25
2.6 Linux系统桌面环境 25
2.6.1 桌面控件介绍 25
2.6.2 X-Window桌面介绍 26
2.6.3 Gnome桌面简介 27
2.6.4 KDE桌面简介 27
2.7 让桌面更炫 28
2.7.1 安装特效 28
2.7.2 设置屏幕保护程序 28
2.7.3 设置壁纸 28
2.7.4 设置屏幕分辨率 29
2.7.5 移动Unity所处位置 29
2.8 小结 30
2.9 习题 30
第3章 应用管理 31
3.1 办公软件 31
3.1.1 Openoffice的使用 31
3.1.2 PDF文件阅读 34
3.2 收发邮件 35
3.3 多媒体 37
3.3.1 音乐播放器 38
3.3.2 视频播放器 42
3.4 光盘刻录 44
3.4.1 制作音乐CD 44
3.4.2 刻录镜像文件 45
3.5 浏览网页 45
3.5.1 Mozilla Firefox 45
3.5.2 Opera 51
3.5.3 Lynx 51
3.5.4 其他浏览器 54
3.6 打印机配置 54
3.6.1 打印机还是计算机 54
3.6.2 打印机的语言:PDL 55
3.6.3 驱动程序和PDL的关系 55
3.6.4 Linux如何打印:CUPS 55
3.6.5 连接打印机 56
3.6.6 配置打印机选项 57
3.6.7 测试当前的打印机 58
3.7 小结 58
3.8 习题 58
第2部分 Linux的管理
第4章 基本命令 60
4.1 Linux的目录与路径 60
4.1.1 特殊目录文件介绍 60
4.1.2 绝对路径和相对路径 61
4.1.3 查看当前路径:pwd 62
4.2 目录操作命令 62
4.2.1 创建目录 62
4.2.2 移动目录 62
4.2.3 删除目录 64
4.2.4 复制目录 64
4.2.5 跳转目录 65
4.3 查看文件 65
4.3.1 查看目录:ls 65
4.3.2 查看普通文件:cat 67
4.3.3 文件内容查找:grep 68
4.3.4 查看文件开头和结尾:
head和tail 69
4.3.5 查看部分内容:more和less 69
4.4 权限操作 71
4.4.1 文件权限介绍 71
4.4.2 更改权限:chmod 73
4.4.3 更改文件所有权:chown和chgrp 74
4.5 链接文件 75
4.5.1 查看文件类型 75
4.5.2 创建软链接文件 75
4.5.3 创建硬链接文件 76
4.6 文件重定向 76
4.6.1 什么是重定向 77
4.6.2 输入重定向 77
4.6.3 输出重定向 78
4.7 文件查找和定位 79
4.7.1 文件的查找:find 79
4.7.2 文件的定位:which 81
4.8 管道简介 81
4.9 小结 81
4.10 习题 81
第5章 用户管理 83
5.1 用户管理基础 83
5.1.1 系统用户和普通用户 83
5.1.2 root用户 84
5.1.3 用户分组 84
5.2 添加用户 85
5.2.1 使用useradd添加新用户 85
5.2.2 使用图形化工具添加用户 86
5.2.3 更改密码 87
5.3 删除用户 87
5.3.1 使用userdel删除用户 88
5.3.2 使用图形工具删除用户 88
5.4 添加用户分组groupadd 88
5.5 用户间的切换 89
5.5.1 su命令 89
5.5.2 sudo命令 90
5.6 配置文件介绍 91
5.6.1 /etc/passwd文件 91
5.6.2 /etc/group文件 92
5.7 记录用户操作:history 93
5.8 小结 94
5.9 习题 94
第6章 进程管理 96
6.1 进程概述 96
6.1.1 什么是进程 96
6.1.2 进程分类 97
6.2 进程的属性 98
6.2.1 进程标识PID 98
6.2.2 父进程标识PPID 98
6.2.3 群组标识GID 98
6.2.4 优先级 98
6.3 进程监控 99
6.3.1 静态监控:ps 99
6.3.2 动态监控:top 100
6.4 向进程发送信号:kill 101
6.5 调整进程优先级:nice和renice 103
6.6 读懂/PROC文件系统 104
6.7 小结 105
6.8 习题 105
第7章 磁盘管理 107
7.1 认识Linux中的文件系统 107
7.1.1 文件系统介绍 107
7.1.2 ext文件系统介绍 108
7.1.3 交换空间介绍 108
7.2 磁盘管理常用命令 109
7.2.1 磁盘监控命令fdisk 109
7.2.2 剩余空间df 112
7.2.3 空间使用量du 113
7.3 文件系统的挂载 113
7.3.1 何为挂载 113
7.3.2 挂载实际操作mount 114
7.3.3 卸载操作 116
7.4 系统备份 117
7.4.1 打包文件tar 117
7.4.2 压缩文件zip 118
7.4.3 备份文件系统 119
7.5 小结 123
7.6 习题 123
第8章 软件包管理 125
8.1 软件包管理概述 125
8.2 DEB软件包管理机制 125
8.2.1 安装软件包 126
8.2.2 卸载软件包 126
8.3 RPM软件包管理机制 126
8.3.1 安装软件包 126
8.3.2 卸载软件包 127
8.3.3 更新软件包 128
8.4 APT软件包管理工具 128
8.4.1 APT简介 128
8.4.2 配置apt-get 129
8.4.3 下载和安装软件包 129
8.4.4 图形化操作方式 131
8.5 小结 133
8.6 习题 133
第9章 任务计划 134
9.1 简单的定时at命令 134
9.1.1 at命令的使用 134
9.1.2 定时备份系统文件 135
9.2 控制计划任务的命令crontab 136
9.2.1 crontab的原理 136
9.2.2 crontab的使用 137
9.2.3 任务配置文件介绍 137
9.3 小结 139
9.4 习题 139
第10章 网络管理 141
10.1 网络的基本配置 141
10.1.1 IP地址 141
10.1.2 网关配置 142
10.1.3 路由配置 143
10.1.4 在命令行下配置网络 144
10.2 网络监控 146
10.2.1 检测网络是否通畅ping 146
10.2.2 检测端口netstat 146
10.2.3 流量监控 146
10.3 其他上网方式 147
10.3.1 拨号上网 147
10.3.2 无线上网 151
10.3.3 局域网连接 152
10.4 小结 152
10.5 习题 152
第3部分 Linux下的网络服务与编程
第11章 搭建网络服务 156
11.1 服务器基础知识 156
11.1.1 Linux启动的基本步骤 156
11.1.2 init和运行级 157
11.1.3 服务器启动脚本 158
11.1.4 Ubuntu和Debian的init配置 160
11.1.5 管理守护进程 160
11.1.6 服务器守护进程的运行方式 161
11.1.7 配置xinetd 161
11.1.8 演示:通过xinetd启动SSH
服务 164
11.1.9 配置inetd 165
11.2 FTP服务器 166
11.2.1 FTP服务器简介 166
11.2.2 FTP服务器动手实践 166
11.2.3 安装FTP服务器 167
11.2.4 配置服务器 169
11.2.5 启动与停止 175
11.3 NFS服务器 177
11.3.1 NFS服务器简介 177
11.3.2 NFS服务器动手实践 177
11.3.3 配置服务器 178
11.3.4 启动与停止 179
11.4 Samba服务器 180
11.4.1 Samba服务器简介 180
11.4.2 Samba服务器动手实践 180
11.4.3 安装Samba服务器 181
11.4.4 配置服务器 183
11.4.5 启动与停止 189
11.5 Apache服务器 190
11.5.1 Apache服务器简介 190
11.5.2 Apache服务器动手实践 190
11.5.3 安装Apache服务器 191
11.5.4 配置服务器 193
11.5.5 启动与停止 198
11.6 远程登录 198
11.6.1 登录另一台Linux服务器 199
11.6.2 登录Windows服务器 203
11.6.3 为什么不使用telnet 204
11.7 小结 204
11.8 习题 204
第12章 安全设置 205
12.1 计算机病毒 205
12.1.1 计算机病毒简介 205
12.1.2 计算机病毒分类 206
12.1.3 计算机病毒的危害 206
12.2 杀毒软件的使用 206
12.2.1 ClamAV简介 206
12.2.2 ClamAV的基本配置 206
12.2.3 图形化操作 208
12.3 iptables防火墙 209
12.3.1 iptables简介 209
12.3.2 iptables语法格式 210
12.3.3 iptables的基本配置 210
12.3.4 iptables备份与还原 213
12.4 网络安全工具 214
12.4.1 端口扫描工具 NMap 214
12.4.2 漏洞扫描工具Nessus 216
12.5 小结 217
12.6 习题 217
第13章 编程开发 218
13.1 编辑器介绍 218
13.1.1 gedit编辑器 218
13.1.2 Vim编辑器 218
13.1.3 GNU介绍 224
13.1.4 GCC介绍 224
13.1.5 G++介绍 224
13.1.6 程序编译过程 224
13.2 Shell编程 225
13.2.1 什么是Shell 225
13.2.2 编写第一个Shell脚本 225
13.2.3 执行Shell脚本 226
13.2.4 定义变量 226
13.2.5 流程控制 228
13.2.6 函数 236
13.2.7 自定义数组 237
13.2.8 sed编程 238
13.2.9 awk编程 240
13.3 C/C++编程 241
13.3.1 定义变量 241
13.3.2 数据类型 242
13.3.3 表达式 242
13.3.4 程序结构 244
13.3.5 数组和赋值 246
13.3.6 指针 248
13.3.7 函数 249
13.3.8 结构体、联合体和枚举 252
13.4 GUI编程 258
13.4.1 GUI的发展 259
13.4.2 GDK简介 259
13.5 QT编程基础 259
13.5.1 QT简介 259
13.5.2 关键概念:信号和槽 260
13.6 版本控制系统 261
13.6.1 什么是版本控制 261
13.6.2 安装Subversion 261
13.6.3 建立项目仓库 262
13.6.4 创建项目并导入源代码 262
13.6.5 开始项目开发 263
13.6.6 修改代码和提交改动 263
13.6.7 解决冲突 264
13.6.8 撤销改动 267
13.6.9 命令汇总 267
13.7 小结 268
13.8 习题 268