本书是“十二五”普通高等教育本科国家级规划教材和北京高等教育精品教材。本书全面、系统且由浅入深地介绍Linux系统的概念、使用方法、原理、开发工具和管理知识等内容。书中通过大量应用实例,循序渐进地引导读者学习Linux系统。全书共11章,主要包括Linux系统概述、Linux常用命令、文本编辑、Linux shell程序设计、Linux内核、常用开发工具、Linux环境编程、Linux系统管理、网络应用及管理、系统安全保护和Linux基础实验。除第11章外,其余各章均配有习题。本书为任课教师免费提供电子资料。本书可作为高等学校计算机相关专业的Linux操作系统教材,也可作为广大Linux用户、管理员及Linux系统自学者的学习用书。
孟庆昌,男,北京信息科技大学教授,长期从事UNIX系统和C语言等方面的研究、教学和编著工作,是国内最早从事该领域研究和普及的专家之一。先后主持或参加了多项国家和省部级项目。
第1章 Linux系统概述 1
1.1 计算机基础知识 1
1.1.1 硬件 1
1.1.2 软件 2
1.2 操作系统的概念、功能和类型 3
1.2.1 操作系统的概念 3
1.2.2 操作系统的主要功能 4
1.2.3 操作系统的基本类型 6
1.3 Linux系统的发展历史、现状和特点 10
1.3.1 Linux的发展历史 10
1.3.2 Linux的现状 11
1.3.3 Linux的特点 12
1.3.4 Linux的版本 13
1.3.5 Linux的发展优势与存在的问题 15
1.4 国产操作系统的发展状况 16
1.5 Linux图形环境 17
1.5.1 X Window系统 17
1.5.2 GNOME 19
1.5.3 KDE 20
1.5.4 银河麒麟V10的桌面环境 20
习题1 27
第2章 Linux常用命令 28
2.1 系统命令 28
2.1.1 进入shell界面 28
2.1.2 命令格式 29
2.1.3 输入命令 29
2.2 简单命令 30
2.3 文件系统和文件类型 31
2.3.1 文件系统 31
2.3.2 文件类型 32
2.4 文件操作命令 34
2.4.1 文件显示命令 34
2.4.2 查找、排序及显示指定内容命令 37
2.4.3 比较和查找文件命令 39
2.4.4 复制、删除和移动文件命令 42
2.4.5 文件内容统计命令 44
2.5 目录及其操作命令 45
2.5.1 目录结构 45
2.5.2 创建和删除目录命令 46
2.5.3 切换工作目录和显示目录内容命令 48
2.5.4 链接文件命令 50
2.5.5 修改文件或目录存取权限命令 52
2.5.6 修改用户组和文件主命令 56
2.5.7 切换用户身份命令 57
2.6 联机帮助命令 58
2.6.1 man命令 59
2.6.2 help命令 60
2.7 进程管理命令 60
2.7.1 ps命令 60
2.7.2 nice命令 62
2.7.3 kill命令 63
2.7.4 sleep命令 64
2.8 文件压缩和解压缩命令 64
2.8.1 gzip命令 64
2.8.2 unzip命令 65
2.9 DOS命令 66
习题2 67
第3章 文本编辑 68
3.1 图形用户界面文本编辑器 68
3.1.1 打开方式 68
3.1.2 菜单栏 69
3.1.3 基本操作 70
3.2 常用的文件操作 73
3.2.1 在目录间复制文件 73
3.2.2 使用U盘复制文件 73
3.2.3 截图 74
3.2.4 浏览文档 75
3.3 vim 77
3.3.1 3种工作方式 77
3.3.2 进入和退出vim 77
3.3.3 常用命令列表 78
习题3 79
第4章 Linux shell程序设计 80
4.1 shell概述 80
4.1.1 shell的特点和种类 80
4.1.2 简单shell程序示例 81
4.1.3 shell脚本的建立和执行 82
4.2 历史命令 83
4.2.1 显示历史命令 83
4.2.2 执行历史命令 84
4.2.3 配置历史命令环境 85
4.3 名称补全 85
4.4 别名 86
4.4.1 定义别名 86
4.4.2 取消别名 87
4.5 shell特殊字符 87
4.5.1 通配符 87
4.5.2 引号 88
4.5.3 输入和输出重定向符 90
4.5.4 注释、管道线和后台命令 93
4.5.5 命令执行操作符 94
4.5.6 成组命令 95
4.6 shell变量 96
4.6.1 用户定义的变量 96
4.6.2 数组 98
4.6.3 变量引用 99
4.6.4 输入和输出命令 100
4.6.5 位置参数 102
4.6.6 移动位置参数 103
4.6.7 预先定义的特殊变量 104
4.6.8 环境变量 105
4.6.9 环境文件 107
4.6.10 export语句与环境设置 108
4.7 参数置换变量 111
4.8 算术运算 113
4.8.1 let命令和算术运算符 113
4.8.2 expr命令 115
4.9 控制结构 115
4.9.1 if语句 115
4.9.2 条件测试 117
4.9.3 case语句 120
4.9.4 while语句 121
4.9.5 until语句 122
4.9.6 for语句 123
4.9.7 break命令和continue命令 125
4.9.8 exit命令 126
4.9.9 select语句 126
4.10 函数 127
4.11 作业控制 128
4.11.1 jobs命令 128
4.11.2 kill命令 128
4.11.3 bg命令和fg命令 129
4.12 shell内置命令 129
4.13 shell脚本调试 131
4.13.1 解决环境配置问题 132
4.13.2 解决脚本错误问题 132
4.14 shell脚本示例 133
习题4 136
第5章 Linux内核 137
5.1 Linux内核概述 137
5.2 进程管理 138
5.2.1 进程和线程的概念 138
5.2.2 进程的结构 140
5.2.3 对进程的操作 141
5.2.4 进程调度 143
5.2.5 shell的基本工作原理 145
5.3 文件系统 145
5.3.1 ext2文件系统 146
5.3.2 VFS 150
5.4 内存管理 154
5.4.1 请求分页机制 154
5.4.2 内存交换 157
5.5 进程通信 158
5.5.1 信号机制 159
5.5.2 管道机制 160
5.5.3 System V IPC机制 161
5.6 设备管理 161
5.6.1 设备管理概述 162
5.6.2 设备驱动程序与内核
之间的接口 162
5.7 中断处理和系统调用 165
5.7.1 中断处理 165
5.7.2 系统调用 166
5.8 网络系统 166
5.8.1 Socket 167
5.8.2 网络分层结构 167
习题5 168
第6章 常用开发工具 169
6.1 gcc编译系统 169
6.1.1 文件扩展名 169
6.1.2 C语言编译过程 170
6.1.3 gcc命令行选项 171
6.2 gdb程序调试工具 176
6.2.1 启动gdb和查看内部命令 177
6.2.2 显示源程序和数据 178
6.2.3 修改和显示目录或路径 181
6.2.4 控制程序的执行 181
6.2.5 其他常用命令 184
6.2.6 应用示例 185
6.3 make程序维护工具 187
6.3.1 make的工作机制 187
6.3.2 变量 189
6.3.3 隐式规则 191
6.3.4 常用的make命令选项 191
习题6 192
第7章 Linux环境编程 194
7.1 系统调用和库函数 194
7.1.1 系统调用 194
7.1.2 库函数 195
7.1.3 调用方式 195
7.2 文件操作 196
7.2.1 文件操作的相关系统调用 196
7.2.2 应用示例 197
7.3 进程控制 200
7.3.1 进程控制的相关系统调用 200
7.3.2 应用示例 201
7.4 进程通信 203
7.4.1 进程通信的相关函数 203
7.4.2 应用示例 204
7.5 内存管理 207
7.6 综合编程示例 208
习题7 210
第8章 Linux系统管理 211
8.1 系统管理概述 211
8.2 Linux系统安装 212
8.2.1 安装前的准备工作 212
8.2.2 系统安装过程 214
8.2.3 常用硬件配置 219
8.2.4 安装软件 221
8.3 用户和用户组管理 222
8.3.1 用户账号的相关文件 222
8.3.2 用户账号的创建和维护 225
8.3.3 用户硬盘空间限制及其实现 230
8.4 文件系统及其维护 233
8.4.1 分区 233
8.4.2 文件系统管理 238
8.4.3 Linux主要目录的内容 242
8.5 文件系统的备份 245
8.5.1 备份策略 245
8.5.2 备份与还原工具 247
8.6 系统性能优化 249
8.6.1 磁盘I/O性能的优化 249
8.6.2 系统监控 251
习题8 252
第9章 网络应用及管理 253
9.1 网络配置 253
9.1.1 网络连接设置 253
9.1.2 网络互联 255
9.1.3 基本网络命令 256
9.2 电子邮件配置 260
9.2.1 电子邮件系统简介 260
9.2.2 用户邮箱配置 261
9.3 网络文件系统配置 263
9.3.1 NFS简介 263
9.3.2 NFS的配置及使用 264
9.4 网络管理 266
9.4.1 网络管理简介 266
9.4.2 SNMP 267
9.4.3 基于SNMP的管理应用程序 270
习题9 272
第10章 系统安全保护 273
10.1 系统安全管理 273
10.1.1 安全管理简介 273
10.1.2 安全管理要素 274
10.1.3 用户密码和账号的管理 275
10.1.4 文件和目录权限的管理 276
10.1.5 系统日志 277
10.2 网络安全配置 279
10.2.1 网络安全简介 279
10.2.2 Linux安全问题及对策 281
10.2.3 计算机病毒 289
10.3 防火墙设置 292
10.3.1 防火墙技术的基本概念 292
10.3.2 防火墙的基本技术 292
10.4 系统安全保护工具 294
10.4.1 安全中心 294
10.4.2 Linux网络安全工具 302
习题10 304
第11章 Linux基础实验 305
实验1 Linux系统常用命令(1) 305
实验2 Linux系统常用命令(2) 307
实验3 文本编辑器 309
实验4 shell编程(1) 309
实验5 shell编程(2) 311
实验6 常用开发工具 313
实验7 Linux环境下的C语言编程 315
实验8 Linux系统的安装与简单配置 317
实验9 系统管理 321
实验10 网络管理 322
参考文献