第1章 初识Linux 1
1.1 Linux概述 1
1.1.1 Linux的起源与发展 1
1.1.2 Linux的特点 2
1.1.3 GNU项目计划 4
1.2 安装Linux 5
1.2.1 前期准备 5
1.2.2 安装CentOS 7
1.3 网络配置 11
1.4 远程终端访问 18
1.5 本章小结 22
1.6 本章习题 22
第2章 命令与开发工具 24
2.1 Linux常用命令 24
2.1.1 命令格式 24
2.1.2 文件操作命令 25
2.1.3 网络管理与通信命令 36
2.1.4 压缩解压命令 38
2.1.5 帮助命令 39
2.2 Linux常用开发工具 41
2.2.1 vi编辑器 41
2.2.2 GCC编译器 45
2.2.3 GDB调试工具 48
2.3 本章小结 52
2.4 本章习题 52
第3章 用户与用户组管理 54
3.1 概述 54
3.2 用户和用户组管理 55
3.2.1 用户管理 55
3.2.2 用户组管理 59
3.3 用户切换 61
3.3.1 su 61
3.3.2 sudo 62
3.4 本章小结 65
3.5 本章习题 65
第4章 Shell编程 68
4.1 Shell概述 68
4.1.1 Shell的分类 68
4.1.2 Shell的功能 69
4.1.3 Shell命令执行流程 69
4.2 Shell应用技巧 70
4.3 Shell编程 74
4.3.1 第一个Shell程序 74
4.3.2 Shell中的变量 75
4.4 Shell中的条件语句 81
4.4.1 条件判断 81
4.4.2 if条件语句 83
4.4.3 select语句 85
4.4.4 case语句 85
4.5 Shell中的循环语句 87
4.5.1 for循环 87
4.5.2 while循环 88
4.5.3 until循环 88
4.6 Shell脚本调试 89
4.7 Shell中的函数 90
4.8 本章小结 93
4.9 本章习题 93
第5章 Linux文件系统与操作 96
5.1 磁盘与目录 96
5.1.1 磁盘与磁盘分区 96
5.1.2 目录结构 99
5.1.3 inode与dentry 100
5.2 Linux文件系统 101
5.2.1 Linux文件系统版本 101
5.2.2 fdisk/mke2fs 102
5.2.3 ext2/ext3文件系统 105
5.2.4 虚拟文件系统 109
5.2.5 挂载 110
5.3 Linux文件类型 112
5.3.1 文件类型概述 112
5.3.2 链接文件 113
5.3.3 设备文件 114
5.4 文件操作 115
5.4.1 文件描述符 115
5.4.2 文件I/O 116
5.4.3 文件操作 121
5.5 本章小结 123
5.6 本章习题 123
第6章 Linux进程管理 125
6.1 进程概述 125
6.1.1 进程处理机制 125
6.1.2 进程属性 126
6.2 进程控制 129
6.2.1 创建进程 129
6.2.2 exec函数族 135
6.2.3 进程退出 138
6.2.4 进程同步 138
6.3 进程管理命令 144
6.4 本章小结 150
6.5 本章习题 150
第7章 信号 153
7.1 信号及信号来源 153
7.2 信号的产生 156
7.2.1 系统调用 156
7.2.2 软件条件 158
7.2.3 kill命令 160
7.3 信号阻塞 161
7.4 信号捕获 164
7.5 时序竞态 168
7.6 SIGCHLD信号 170
7.7 本章小结 173
7.8 本章习题 174
第8章 进程间通信 176
8.1 管道 176
8.1.1 匿名管道 177
8.1.2 popen()/pclose() 181
8.1.3 命名管道 182
8.2 消息队列 185
8.3 信号量 190
8.4 共享内存 195
8.5 本章小结 201
8.6 本章习题 201
第9章 线程 203
9.1 线程概述 203
9.2 线程操作 205
9.2.1 创建线程 205
9.2.2 线程退出 207
9.2.3 线程终止 209
9.2.4 线程挂起 210
9.2.5 线程分离 213
9.3 线程属性 215
9.4 线程同步 220
9.4.1 互斥锁 221
9.4.2 条件变量 225
9.4.3 信号量 229
9.5 本章小结 232
9.6 本章习题 232
第10章 socket编程 235
10.1 计算机网络概述 235
10.1.1 协议与体系结构 235
10.1.2 网络结构模式 239
10.2 socket编程基础 239
10.2.1 socket编程接口 240
10.2.2 socket通信流程 244
10.2.3 网络编程相关知识 245
10.3 socket网络编程实例 247
10.3.1 基于TCP的网络通信 247
10.3.2 基于UDP的网络通信 249
10.4 socket本地通信 251
10.5 本章小结 259
10.6 本章习题 259
第11章 高并发服务器 261
11.1 多进程并发服务器 261
11.2 多线程并发服务器 265
11.3 I/O多路转接服务器 268
11.3.1 select 268
11.3.2 poll 273
11.3.3 epoll 277
11.4 epoll的工作模式 283
11.5 本章小结 286
11.6 本章习题 287