第1章 Linux概述 1
1.1 什么是Linux 2
1.1.1 Linux的含义 2
1.1.2 Linux的出现 2
1.2 Linux的体系架构及特点 3
1.2.1 Linux体系架构 3
1.2.2 Linux系统特点 7
1.3 Linux的发行版本 8
1.4 Linux的主要应用领域 12
习题 13
第2章 Linux的基本操作 14
2.1 Linux的安装 15
2.1.1 虚拟机内安装Linux 15
2.1.2 生产实践安装Linux 20
2.2 Linux图形界面 27
2.2.1 GUI与X Window 27
2.2.2 KDE桌面和GNOME桌面 28
2.2.3 图形界面的基本操作 29
2.3 Linux命令基础 32
2.3.1 进入Linux CLI 32
2.3.2 Linux命令格式 32
2.3.3 命令行技巧 35
2.4 Linux系统配置 37
2.4.1 配置文件 37
2.4.2 Linux网络配置 39
2.4.3 Linux防火墙设置 41
2.4.4 系统日志 43
习题 44
第3章 Linux文件系统与磁盘管理 45
3.1 Linux文件系统简介 46
3.1.1 Linux目录结构 46
3.1.2 Linux文件类型 49
3.1.3 Linux文件系统结构 49
3.2 文件与目录的基本操作 51
3.2.1 工作目录与目录的切换 51
3.2.2 ls命令 52
3.2.3 目录的创建和删除 53
3.2.4 文件的创建、复制、移动和删除命令 55
3.2.5 其他操作 57
3.3 查找文件 60
3.3.1 文件内容查找命令 61
3.3.2 find命令 63
3.3.3 locate命令 65
3.3.4 whereis命令 65
3.4 归档与压缩 66
3.4.1 tar命令 66
3.4.2 zip命令 67
3.4.3 常用压缩格式 68
3.5 Linux文件链接 70
3.5.1 硬链接 71
3.5.2 符号链接 71
3.6 磁盘管理 72
3.6.1 文件系统 72
3.6.2 磁盘分区 73
3.6.3 磁盘检验 76
3.6.4 磁盘挂载和卸载 76
3.6.5 交换空间 78
习题 79
第4章 Linux用户及权限机制 80
4.1 用户与用户组 81
4.1.1 用户的管理 81
4.1.2 用户组的管理 85
4.1.3 用户配置文件 86
4.2 文件权限管理 88
4.2.1 所有者、所在组和其他用户 88
4.2.2 读、写和执行操作 90
4.2.3 umask属性和特殊权限 92
4.2.4 文件属性控制 94
习题 97
第5章 Linux文本处理 98
5.1 文字处理器 99
5.1.1 Vim简介 99
5.1.2 Vim模式 99
5.1.3 Vim环境下的查找和替换 103
5.2 文本切片和切块 104
5.2.1 剪切命令cut 104
5.2.2 粘贴命令paste 109
5.2.3 连接命令join 111
5.3 文本比较 114
5.3.1 有序文件逐行比较命令comm 114
5.3.2 逐行比较命令diff 115
5.3.3 原文件比较命令patch 118
5.4 文本格式化输出 119
5.4.1 格式化输出命令printf 119
5.4.2 简单文本格式化命令fmt 120
5.4.3 行标命令nl 122
5.4.4 指定行长度命令fold 123
5.5 文本分析工具 125
5.5.1 awk文本分析工具 125
5.5.2 sed编辑器 126
习题 127
第6章 Linux多命令协作 128
6.1 命令行(CLI)数据流 129
6.2 重定向 129
6.2.1 重定向标准输入 130
6.2.2 重定向标准输出 130
6.2.3 重定向标准错误 131
6.3 管道 133
6.3.1 统计字数命令wc 133
6.3.2 管道线分流命令tee 134
6.3.3 查找重复行命令uniq 136
习题 137
第7章 Shell编程 138
7.1 Linux编程基础 139
7.1.1 使用gcc编译C程序 139
7.1.2 使用make编译C程序 140
7.1.3 通过编译源代码安装程序 142
7.2 Shell脚本 144
7.2.1 什么是Shell脚本 144
7.2.2 开始编写Shell脚本 145
7.3 变量及其使用方法 145
7.3.1 Shell变量和环境变量 145
7.3.2 变量的操作 147
7.4 输入、输出和引用 150
7.4.1 输入与输出 150
7.4.2 引用 153
7.5 分支控制语句 155
7.5.1 if语句 155
7.5.2 case语句 158
7.6 循环控制语句 160
7.6.1 while和until循环 160
7.6.2 for循环 162
7.6.3 跳出循环 164
7.7 位置参数 165
7.7.1 获取位置参数 165
7.7.2 位置参数使用案例 166
7.8 数组 168
7.8.1 为什么使用数组 168
7.8.2 数组的创建、赋值和删除 169
7.8.3 遍历访问数组元素 170
7.9 函数 172
7.9.1 函数的定义与调用 172
7.9.2 在函数中使用位置参数 173
7.9.3 使用函数返回值 174
7.9.4 将函数保存到文件 174
习题 176
第8章 进程与设备管理 177
8.1 进程基础 178
8.1.1 进程的概念 178
8.1.2 进程上下文 179
8.2 进程管理 180
8.2.1 进程状态及状态转换 180
8.2.2 进程控制 184
8.3 进程间通信 186
8.3.1 管道及命名管道 187
8.3.2 信号 187
8.3.3 消息队列 188
8.3.4 信号量 189
8.3.5 共享内存 190
8.4 设备管理 192
8.4.1 设备管理的基本概念 192
8.4.2 Linux设备类型 192
8.4.3 设备管理结构 193
8.4.4 设备管理技术 194
习题 195
附录 实验 196
实验1 磁盘分区与挂载 197
实验2 Linux用户及权限机制 204
实验3 综合编程应用 208
参考文献 215