第1章 Linux应用简介 1
1.1 Linux简介 1
1.2 虚拟化软件VirtualBox 2
1.3 Linux企业级的一般应用 3
1.3.1 为什么选择Linux 3
1.3.2 文件服务器 4
1.3.3 企业门户网站 5
1.3.4 数据备份 5
本章小结 6
第2章 Linux基本命令详解 7
2.1 命令之路 7
2.2 来自系统的援助——man 7
2.3 目录与文件操作 9
2.3.1 目录浏览与管理 9
2.3.2 文件操作 12
2.4 查找命令与正则表达式 15
2.4.1 grep 16
2.4.2 正则表达式 17
2.4.3 find 19
2.5 有用的小命令以及重定向 21
2.5.1 文本处理 21
2.5.2 date & time 24
2.5.3 重定向 25
2.6 系统管理命令 27
2.6.1 进程管理 27
2.6.2 用户管理 31
2.6.3 权限管理 34
2.7 实用工具与任务管理 36
2.7.1 压缩文件 36
2.7.2 uname 37
2.7.3 容量查看 38
2.7.4 任务管理 39
本章小结 42
第3章 LAMP的基本安装与配置 43
3.1 安装前的注意事项 43
3.2 Apache 44
3.2.1 Apache的安装 44
3.2.2 Apache的配置 44
3.3 MySQL 45
3.3.1 MySQL的安装 45
3.3.2 MySQL的配置 46
3.4 PHP 47
3.4.1 PHP的安装 47
3.4.2 PHP的配置 48
3.5 安装测试 48
本章小结 49
第4章 远程定期自动增量备份 50
4.1 shell脚本的基本语法 50
4.2 数据备份简介 51
4.2.1 数据备份设备 52
4.2.2 数据备份方案 52
4.3 远程定期自动增量备份 52
4.3.1 定期功能——crontab 53
4.3.2 增量功能——find 53
4.3.3 压缩功能——tar 53
4.3.4 远程备份——ftp 53
4.3.5 远程定期自动增量备份综合实例 54
本章小结 55
第5章 Linux编程基础 56
5.1 Vim编辑器 56
5.1.1 使用Vim建立一个名为example.txt的文件 57
5.1.2 进入编辑模式 58
5.1.3 按Esc键返回一般模式 58
5.1.4 退出和存盘 58
5.2 GCC编译器 61
5.2.1 GCC简介 61
5.2.2 第一个Linux下的C程序 62
5.3 GDB调试器 64
5.3.1 GDB简介 64
5.3.2 GDB实例 64
5.4 make 66
5.4.1 Makefile文件 66
5.4.2 make使用实例 66
本章小结 67
第6章 文件和目录 68
6.1 Linux/UNIX的文件结构 68
6.1.1 文件和目录 68
6.1.2 文件和设备 70
6.2 系统调用和设备驱动程序 70
6.3 库函数 71
6.4 文件I/O 71
6.4.1 open函数 71
6.4.2 访问权限的初始化值 72
6.4.3 write函数 73
6.4.4 read函数 73
6.4.5 close函数 74
6.4.6 ioctl函数 74
6.4.7 其他系统调用函数 76
6.5 标准I/O库 77
6.5.1 fopen、freopen和fdopen函数 78
6.5.2 fread函数 78
6.5.3 fwrite函数 79
6.5.4 fclose函数 79
6.5.5 fflush函数 79
6.5.6 fseek函数 79
6.5.7 fgetc、getc和getchar函数 80
6.5.8 fputc、putc和putchar函数 80
6.5.9 fgets、gets函数 80
6.6 格式化输入和输出 81
6.6.1 printf、fprintf和sprintf函数 81
6.6.2 scanf、fscanf和sscanf函数 81
6.6.3 其他流函数 82
6.6.4 文件流错误处理 82
6.7 文件和目录的维护 82
6.7.1 chmod系统调用函数 83
6.7.2 chown系统调用函数 83
6.7.3 unlink系统调用函数 83
6.7.4 mkdir和rmdir系统调用函数 84
6.7.5 chdir系统调用和getcwd函数 84
本章小结 84
第7章 进程控制 85
7.1 Linux进程概述 85
7.1.1 进程简介 85
7.1.2 进程标识 86
7.2 创建进程 87
7.2.1 fork函数 87
7.2.2 vfork函数 89
7.3 终止进程 90
7.4 等待进程 91
7.4.1 wait函数 91
7.4.2 waitpid函数 93
7.5 exec函数 94
7.6 system函数 96
7.7 综合实例 97
本章小结 98
第8章 进程间通信 99
8.1 管道 99
8.1.1 什么是管道 99
8.1.2 popen和pclose函数 102
8.1.3 命名管道FIFO 103
8.2 信号量 107
8.2.1 什么是信号量 107
8.2.2 信号量的相关函数 108
8.2.3 信号量实例 110
8.3 消息队列 114
8.3.1 什么是消息队列 114
8.3.2 消息队列的相关函数 114
8.3.3 消息队列实例 117
本章小结 119
第9章 多线程 121
9.1 什么是线程 121
9.1.1 线程的特点 121
9.1.2 线程的分类 122
9.2 线程编程基础 122
9.2.1 创建线程函数 124
9.2.2 等待线程结束的函数 124
9.2.3 取自己线程ID函数 125
9.2.4 终止线程函数 125
9.3 线程属性 125
9.4 线程访问控制 127
本章小结 134
第10章 Linux网络编程 135
10.1 计算机网络简介 135
10.1.1 IP地址 135
10.1.2 端口 135
10.1.3 域名 136
10.1.4 TCP/IP体系模型 136
10.1.5 C/S模型 136
10.2 套接字简介 137
10.2.1 套接字的概念 137
10.2.2 套接字的分类 138
10.2.3 套接字相关的数据类型 138
10.3 涉及套接字的网络编程 139
10.3.1 面向连接的TCP模型 139
10.3.2 无连接的UDP模型 147
本章小结 152
第11章 Linux综合编程——微博服务器设计简介 153
11.1 有状态和无状态的TCP通信 153
11.2 服务器设计的方案与思路 154
11.2.1 服务器设计涉及的数据结构 155
11.2.2 服务器的实现 158
本章小结 171