资源名称:Linux Shell编程与编辑器使用详解 PDF

内容简介:

本书由浅入深,全面、系统地介绍了Linux技术,书中提供了大量实例,供读者实战演练。另外,本书有很多关于Linux下的命令操作内容,所以对于每个命令、每个管理设置,作者都实际运行了一遍,供读者参考,在后面的Shell编程中,作者详细介绍了Shell变量、函数、语法、控制结构等重要内容,最后一章中介绍综合实例,使读者对于Shell编程的理解进一步加深。

本书共分5篇。第1篇介绍Shell编程基础、系统管理与设置;第2篇介绍常用的系统管理命令、系统维护命令、正则表达式;第3篇介绍vi编辑器、emacs编辑器;第4篇介绍grep命令、gawk与sed;第5篇介绍其他常用的文本编辑命令、Shell变量及相关操作、条件测试、Shell的控制结构、函数、Shell编程实例。

本书适合Linux初学者、想全面学习Linux开发技术的人员、Linux专业开发人员、利用Linux做开发的工程技术人员、Linux开发爱好者、大中专院校的学生、社会培训班学员等。对于经常使用Linux做开发的人员,更是一本不可多得的案头必备参考书。

作者简介:

刘丽霞:毕业于西安电子科技大学,获博士学位,现就职于武警工程大学。长期从事计算机信息工程专业的教学与科研工作,主要设计开发各种数据库管理信息系统和以面向对象技术为主的大型应用软件。熟悉Java、C++等开发语言和Linux、Windows CE等操作系统,精通SQL Server、Oracle等数据库。

杨宇:毕业于沈阳农业大学,获博士学位,现就职武警工程大学。长期从事计算机应用技术专业的教学与科研工作,从事数字化设计、人工智能等方面的研究,主要设计开发各种信息网站和管理信息系统。熟悉PHP,ASP,Java等开发语言和Linux操作系统,精通MySQL、SQL Server等数据库。主持科研项目1项,作为主要完成人参与科研项目5项,在国内外期刊上发表论文16篇,EI检索4篇,核心期刊12篇,出版个人专著3部。

资源目录:

第1篇 Linux系统学习基础

第1章 Shell编程基础 1

1.1 基本概念 1

1.1.1 Shell的功能 1

1.1.2 Linux Shell的常用命令 1

1.1.3 启动和退出 2

1.2 常用的Shell类型 3

1.2.1 Linux 默认Shell 3

1.2.2 Bourne Shell的扩展版 3

1.2.3 网关接口Shell 3

1.2.4 早期Shell 3

1.2.5 支持后台作业Shell 4

1.3 Shell基本语法 4

1.3.1 Shell脚本中的注释 4

1.3.2 Shell通配符的使用 4

1.3.3 大小写区分 6

1.3.4 指定使用某个Shell 6

1.3.5 IO重定向 7

1.3.6 管道(Pipe) 10

1.3.7 前台与后台执行任务 11

1.3.8 命令的执行顺序 12

1.3.9 Shell中3种引号的用法 13

1.3.10 运行脚本 13

第2章 系统管理与设置 16

2.1 常用的信息显示命令 16

2.1.1 cal命令:日期显示 16

2.1.2 cat /proc/meminfo:内存使用情况查询 17

2.1.3 free命令:内存详细信息查询 18

2.1.4 arch命令:CPU架构显示 19

2.1.5 cat /proc/cpuinfo命令:处理器CPU信息显示 19

2.1.6 cat /proc/modules:查询当前系统被加载模块 20

2.2 系统信息显示命令 21

2.2.1 proc文件系统:访问系统内核信息 21

2.2.2 modinfo命令:内核模块信息 23

2.2.3 cat /etc/issue命令:系统的当前发行版本 23

2.2.4 cat /proc/version:查看系统内核当前版本 24

2.2.5 cat /proc/partitions:查看系统当前分区 24

2.2.6 cat /proc/interrupts命令:显示中断信息 24

2.2.7 cat /proc/filesystems命令:常用文件系统信息 24

2.2.8 dmesg:启动信息查询 25

2.3 系统常用信息设置 26

2.3.1 date命令:系统时间显示与设置 26

2.3.2 hostname命令:当前系统的主机名显示与设置 28

2.3.3 hwclock命令:硬件时钟显示和设置 29

2.3.4 hash命令:显示、添加或清除哈希表 30

2.3.5 sysctl命令:系统核心参数的设置 31

2.4 文件系统信息显示常用命令 32

2.4.1 echo命令:文本行输出显示 32

2.4.2 isosize命令:iso9660文件系统大小的显示 33

2.4.3 minfo命令:ms-dos文件系统的各项参数的显示 34

2.4.4 pwd命令:当前工作目录的显示 34

2.4.5 procinfo命令:系统状态信息的显示 34

2.4.6 stat命令:文件/文件系统的详细信息的显示 37

2.5 Linux操作系统信息查询 38

2.5.1 uname命令:操作系统信息的显示 38

2.5.2 vmstat命令:虚拟内存的统计信息的显示 39

2.5.3 uptime命令:系统的运行信息的显示 39

2.5.4 locale命令:当前系统的语言设置 40

2.5.5 tload命令:系统负载显示 40

2.5.6 runlevel命令:系统运行级别显示 41

2.5.7 lsmod命令:所有已加载模块的显示 42

2.6 进程资源 43

2.6.1 top命令:进程信息显示 43

2.6.2 ipcs命令:IPC设备信息显示 44

2.6.3 time命令:进程执行时间显示 45

2.6.4 pstree命令:以树状图显示程序 45

2.6.5 ps命令:监测进程 46

2.6.6 pmap命令:显示程序的占用资源信息 49

2.6.7 jobs命令:后台作业 49

2.6.8 mev命令:监视鼠标情况 50

2.6.9 fuser命令:用套接口或者文件识别进程 51

2.7 Linux终端命令行操作 52

2.7.1 fgconsole命令:显示当前虚拟终端数目 52

2.7.2 history命令:显示历史指令 52

2.7.3 gdialog命令:Shell脚本创建对话框 53

2.7.4 yes命令:字符串的连续输出 59

第2篇 系统维护与管理

第3章 常用的系统管理命令 61

3.1 常用的系统管理任务 61

3.1.1 apm命令:BIOS电源管理 61

3.1.2 apmsleep命令:低功耗工作 62

3.1.3 open命令:开启虚拟终端 62

3.1.4 vlock命令:锁定终端 63

3.1.5 sudo命令:用户切换 63

3.1.6 rsh命令:远程用户设置登录Shell 64

3.1.7 chsh命令:切换系统登录时Shell 65

3.1.8 clear命令:清除终端屏幕 66

3.1.9 rlogin命令:智能化远端登录 66

3.2 进程任务管理 67

3.2.1 apmd命令:高级电源管理守护进程 67

3.2.2 fg命令:后台任务放前台 67

3.2.3 kill命令:结束进程 68

3.2.4 killall命令:杀死同名进程 70

3.2.5 nice命令:进程优先级切换 71

3.2.6 pgrep命令:查找符合条件的进程 71

3.2.7 pidof命令:查看正在运行程序的进程ID 73

3.2.8 renice命令:设定进程优先级 73

3.2.9 pkill命令:强制杀死进程 74

3.3 设置系统的各种任务 75

3.3.1 ntsysv命令:图形化设置系统的各种服务 75

3.3.2 symlinks命令:管理和维护符号链接工具 76

3.3.3 mtools:软盘操作工具集 77

3.3.4 gcov命令:coverage测试工具 78

3.3.5 screen命令:视窗程序管理工具 79

3.3.6 logrotate命令:管理log文件 81

3.3.7 pwck命令:检查密码文件 82

3.3.8 exec命令:交出控制权 83

3.3.9 &命令:后台执行任务 83

3.3.10 init命令:进程的父进程 83

3.4 后台任务管理 84

3.4.1 bg命令:后台执行程序 84

3.4.2 wait命令:等待程序返回状态 84

3.4.3 depmod命令:显示模块依赖关系 84

3.4.4 rmmod命令:删除模块 85

3.4.5 ipcrm命令:进程间机制管理 86

3.4.6 watch命令:重复执行命令 87

3.4.7 fc命令:修改执行命令 88

3.4.8 nohup命令:退出登录执行命令 89

3.4.9 suspend命令:暂停执行Shell 89

3.4.10 sleep命令:系统休眠 89

第4章 系统维护命令 91

4.1 常用的系统维护命令 91

4.1.1 bind命令:设置按键组合 91

4.1.2 enable命令:Shell内置命令 92

4.1.3 aumix命令:音效装置设置 94

4.1.4 配置系统的认证资源 96

4.1.5 export命令:设置环境变量 98

4.1.6 hostid命令:主机数字标识 103

4.1.7 alias命令:设置命令的别名 103

4.1.8 chkconfig命令:管理系统服务 104

4.1.9 eval命令:多个命令同时执行 106

4.1.10 dircolors命令:配置ls命令显示颜色 106

4.1.11 set命令:设置Shell执行方式 111

4.1.12 telinit命令:设置系统的运行等级 113

4.2 系统的日常配置 113

4.2.1 declare命令:Shell变量 113

4.2.2 fbset命令:帧缓存设备设置 115

4.2.3 insmod命令:加载模块 117

4.2.4 lilo命令:安装启动装载程序 119

4.2.5 modprobe命令:自动安装依赖模块 119

4.2.6 mkraid命令:raid磁盘阵列 120

4.2.7 losetup命令:设置和控制循环设备 121

4.2.8 rpm命令:RPM包管理 121

4.2.9 ldd命令:共享库文件的相互依赖关系 125

4.2.10 ldconfig命令:配置动态链接绑定 126

4.2.11 up2date命令:升级Red Hat Linux系统 129

4.3 其他常用命令 131

4.3.1 false命令:false返回值 131

4.3.2 true命令:true返回值 132

4.3.3 ulimit命令:控制Shell及进程的资源 132

4.3.4 mouseconfig命令:设置鼠标相关参数 134

4.3.5 setup命令:系统公用程序设置 135

4.3.6 swapoff命令:卸载交换区(swap area) 138

4.3.7 swapon命令:加载交换区(swap area) 139

4.3.8 resize命令:调整终端视窗 140

4.3.9 setserial命令:串口设备设置 140

4.3.10 unalias命令:删除指定的别名 141

4.3.11 unset命令:删除变量或函数 141

4.4 自动作业处理 142

4.4.1 anacron命令:调度守护进程任务 142

4.4.2 at命令:多任务执行排队处理 143

4.4.3 atd命令:执行已经排队的任务 145

4.4.4 atq命令:显示排队的任务 145

4.4.5 atrm命令:删除已经排队的任务 146

4.4.6 atrun命令:执行排好队的任务 146

4.4.7 crontab命令:定时执行程序 146

4.4.8 batch命令:批处理 149

4.5 系统日志 150

4.5.1 syslogd命令:启动syslog日志进程 150

4.5.2 syslog.conf:系统日志配置文件 150

4.5.3 logger命令:测试syslog.conf 153

4.5.4 echo清空日志 153

第5章 正则表达式 154

5.1 正则表达式介绍 154

5.2 元字符 154

5.2.1 元字符的定义 154

5.2.2 元字符的应用示例 155

5.3 字符集和类 156

5.3.1 字符集和类的定义 156

5.3.2 元字集和类的应用示例 157

5.4 重复 157

5.4.1 重复的定义 157

5.4.2 重复的应用示例 158

5.5 子表达式 158

5.5.1 子表达式的定义 158

5.5.2 子表达式的应用示例 159

5.6 定位字符串的开始和末尾 159

5.6.1 开始和末尾的定义 159

5.6.2 定位字符串的开始和末尾的应用示例 160

5.7 分支 161

5.7.1 分支的定义 161

5.7.2 分支的应用示例 161

5.8 匹配特殊字符 161

第3篇 vi编辑器与emacs编辑器

第6章 vi(vim)编辑器 163

6.1 vi(vim)编辑器概述 163

6.1.1 vi(vim)编辑器的发展史 163

6.1.2 启动vi(vim) 164

6.1.3 退出vi(vim) 165

6.1.4 命令模式 166

6.1.5 末行模式 166

6.1.6 插入模式 166

6.2 vi(vim)中的常用命令 167

6.2.1 插入文本命令 167

6.2.2 附加文本命令 167

6.2.3 光标移动命令 167

6.2.4 字符与块删除命令 168

6.2.5 添加新行命令 169

6.2.6 修改文本命令 169

6.2.7 行合并命令 170

6.2.8 文本替换命令 170

6.2.9 句点命令 171

6.2.10 撤销修改命令 171

6.2.11 复制文本命令 171

6.2.12 粘贴文本命令 171

6.2.13 重复执行命令 172

6.3 vi(vim)中的字符与文件操作 172

6.3.1 查找指定字符命令 172

6.3.2 普通与增量查找 172

6.3.3 替换指定字符串 172

6.3.4 更改大小写命令 173

6.3.5 文件读入命令 174

6.3.6 文件写入命令 174

6.3.7 定位到指定行命令 174

6.3.8 显示状态信息命令 175

6.3.9 保存和退出命令 175

6.4 窗口操作 175

6.4.1 窗口操作的快捷方式 175

6.4.2 窗口垂直拆分 176

6.4.3 窗口水平拆分 176

6.4.4 关闭窗口 177

6.4.5 屏幕重绘 177

6.4.6 屏幕滚动 178

6.4.7 文本定位 178

6.4.8 交互式Shell 178

6.4.9 在vi(vim)中执行Shell 179

6.4.10 获得帮助 179

第7章 emacs编辑器 181

7.1 emacs概述 181

7.1.1 emacs发展史 181

7.1.2 启动和退出 182

7.1.3 新建文本 183

7.1.4 保存文本 184

7.2 文本编辑 185

7.2.1 常用命令键 185

7.2.2 光标的移动 185

7.2.3 文本的输入 186

7.2.4 文本的删除 187

7.2.5 字符的查找和替换 187

7.3 缓冲区和窗口 188

7.3.1 水平与垂直拆分窗口 188

7.3.2 多个缓冲区同时进行工作 189

7.3.3 缓冲区中内容的滚动 190

7.4 emacs的扩展工具 190

7.4.1 日历显示 190

7.4.2 执行Shell命令 190

7.4.3 游戏调用 191

第4篇 grep命令、gawk与sed,其他常用文本命令

第8章 grep命令 192

8.1 grep介绍 192

8.1.1 grep的功能介绍 192

8.1.2 grep的工作原理 192

8.2 grep与正则表达式 193

8.2.1 grep正则表达式的元字符集 193

8.2.2 grep正则实例 196

8.2.3 grep的常用参数选项 198

8.2.4 grep与管道的配合使用 202

8.2.5 grep的退出状态 203

8.3 egrep与fgrep 203

8.3.1 egrep处理复杂字符串 203

8.3.2 fgrep处理简单字符串 206

第9章 gawk与sed 207

9.1 过滤器gawk 207

9.1.1 gawk发展史 207

9.1.2 gawk的程序处理模式 209

9.1.3 gawk的语法格式 209

9.1.4 gawk注释 211

9.1.5 变量赋值 211

9.1.6 模式的使用 212

9.1.7 指定动作 214

9.1.8 使用重定向输出 214

9.1.9 字段分隔符输出 215

9.1.10 记录与字段的介绍 215

9.2 gawk的编程设计 216

9.2.1 函数 216

9.2.2 关联数组 217

9.2.3 格式化输出命令 218

9.2.4 关系运算符 219

9.2.5 算术运算符 220

9.2.6 流程控制语句 222

9.2.7 getline:控制输入 224

9.2.8 协进程 225

9.2.9 网络数据交换 226

9.2.10 gawk的应用示例 227

9.3 流编辑器sed 228

9.3.1 sed编辑器介绍 229

9.3.2 sed的基本语法 229

9.3.3 地址的作用 230

9.3.4 指令的作用 231

9.3.5 删除指令 232

9.3.6 追加指令 232

9.3.7 打印指令 233

9.3.8 修改指令 233

9.3.9 替换指令 234

9.3.10 插入指令 236

9.3.11 退出指令 236

9.3.12 下一条指令 237

9.3.13 文件写入指令 237

9.3.14 文件读入指令 238

9.3.15 sed的控制结构 238

9.3.16 Pattern区和Hold区 239

9.3.17 sed的应用示例 241

第5篇 Shell编程及编程实战

第10章 其他常用的文本编辑命令 243

10.1 文本编辑常用命令 243

10.1.1 cat命令:标准输出设备显示文本内容 243

10.1.2 ed命令:行文本编辑器 245

10.1.3 fmt命令:重排文本文件 246

10.1.4 gedit命令:图形化文本编辑器 247

10.1.5 ed命令:行文本编辑器 248

10.1.6 jed命令:jed编辑文本文件 249

10.1.7 cut命令:文件剪切 250

10.1.8 colrm命令:删除指定的列 252

10.1.9 comm命令:对已排序文件逐行进行比较 253

10.1.10 od命令:格式化输出文件内容 254

10.1.11 joe命令:ASCII文本编辑器 255

10.1.12 aspell命令:检查文件的拼写错误 258

10.1.13 col命令:过滤控制字符 260

10.1.14 view命令:只读方式查看文件内容 260

10.1.15 more 命令:分屏显示文本内容 261

10.1.16 head命令:部分显示文本内容 262

10.2 其他常用的文本命令与技巧 264

10.2.1 cmp命令:文件属性比较 264

10.2.2 diff命令:文件内容比较 265

10.2.3 diffstat命令:diff结果的统计信息 268

10.2.4 patch命令:文件打补丁 269

10.2.5 csplit命令:按指定行数分割文件 270

10.2.6 uniq命令:显示文件中重复出现的行 271

10.2.7 pr命令:编排文件格式 272

10.2.8 pico命令:编辑文字文件 273

10.2.9 tail命令:读取文件的末尾部分 275

10.2.10 tac命令:反序显示文本内容 277

10.2.11 less 命令:前后翻阅文本内容 278

10.2.12 sort 命令:文件排序 279

10.2.13 indent命令:调整c代码文件格式 281

10.2.14 tr命令:转换文本指定字符串 285

10.2.15 join命令:连接两个相同字段文件 286

10.2.16 spell命令:检查文本拼写错误 287

10.2.17 tee命令:读取标准输入到标准输出或文件 287

10.2.18 wc命令:统计文本信息 288

第11章 Shell变量及相关操作 290

11.1 Shell变量类型 290

11.1.1 Shell环境变量 290

11.1.2 位置变量 292

11.1.3 预定义的特殊变量 293

11.1.4 用户自定义的变量 294

11.2 变量的操作 294

11.2.1 创建和设置变量 294

11.2.2 区分变量名 295

11.2.3 删除变量 295

11.3 变量的赋值 296

11.3.1 直接给变量赋值 296

11.3.2 使用read命令赋值 296

11.3.3 命令行参数赋值 298

11.3.4 命令的输出结果赋值 298

11.3.5 文件读入数据实现赋值 299

11.4 变量的输出 299

11.4.1 printf命令:格式化输出变量 300

11.4.2 echo命令:直接输出变量 301

11.5 数组变量 301

11.5.1 数组的定义 301

11.5.2 数组的复制 303

11.5.3 数组元素的个数 303

11.5.4 数组元素的长度 304

11.6 算术运算 305

11.6.1 expr命令 305

11.6.2 let命令 305

11.6.3 浮点算术运算 306

第12章 条件测试 307

12.1 Shell的测试命令 307

12.2 测试文件属性 307

12.2.1 测试文件存在 307

12.2.2 测试文件存在且可执行 308

12.2.3 测试文件存在且是目录 309

12.2.4 测试文件存在且是字符设备 309

12.2.5 测试文件存在且是块设备 310

12.3 测试数值 310

12.3.1 相等测试 310

12.3.2 不相等测试 311

12.3.3 小于测试 312

12.3.4 小于等于测试 312

12.3.5 大于测试 313

12.3.6 大于等于测试 313

12.4 测试字符串 314

12.4.1 相等测试 314

12.4.2 不相等测试 315

12.4.3 非空测试 316

12.4.4 长度为0测试 316

12.4.5 长度不为0测试 317

12.5 测试逻辑运算符 317

12.5.1 逻辑与测试 318

12.5.2 逻辑或测试 319

12.5.3 逻辑非测试 319

第13章 Shell的控制结构 321

13.1 if结构 321

13.1.1 if结构的语法格式 321

13.1.2 if…then…fi示例 322

13.1.3 if…then…else…fi示例 323

13.1.4 if…then…elif…示例 324

13.1.5 if嵌套 326

13.2 case结构 328

13.2.1 case结构的语法格式 328

13.2.2 case结构示例 328

13.2.3 case嵌套 334

13.3 select结构 335

13.3.1 select结构的语法格式 335

13.3.2 select结构示例 335

13.4 while循环 337

13.4.1 while语句的语法格式 337

13.4.2 while循环示例 338

13.4.3 while的嵌套 339

13.4.4 避免死循环 340

13.5 for循环 341

13.5.1 for循环语法结构 341

13.5.2 for循环示例 342

13.6 until循环 344

13.6.1 until循环的语法结构 344

13.6.2 until循环示例 345

13.7 break和continue语句 346

13.7.1 break语句 346

13.7.2 continue语句 348

第14章 函数 352

14.1 函数的定义 352

14.2 函数的调用 352

14.2.1 执行函数 353

14.2.2 函数参数传递 354

14.2.3 函数的返回值 356

14.2.4 载入函数 358

14.2.5 删除函数 359

14.3 函数的作用域 360

14.3.1 全局作用域 360

14.3.2 局部作用域 361

14.3.3 应用示例 362

14.4 函数的嵌套 363

14.5 函数的递归 364

第15章 Shell编程实例 367

15.1 判断文件类型 367

15.1.1 系统设计 367

15.1.2 代码实现 367

15.2 使用if语句编写选择菜单 367

15.2.1 系统设计 368

15.2.2 代码实现 368

15.3 使用while循环编写选择菜单 369

15.3.1 系统设计 369

15.3.2 代码实现 369

15.4 使用until循环编写选择菜单 371

15.4.1 系统设计 371

15.4.2 代码实现 371

15.5 对指定目录定时备份 374

15.5.1 系统设计 374

15.5.2 代码实现 374

15.6 连续对多个目录逐个备份 375

15.6.1 系统设计 375

15.6.2 代码实现 375

15.7 自动下载指定文档 376

15.7.1 系统设计 376

15.7.2 代码实现 377

15.8 自动上传指定文档 377

15.8.1 系统设计 377

15.8.2 代码实现 377

15.9 通过命令连续创建50个用户账号 379

15.9.1 系统设计 379

15.9.2 代码实现 379

15.10 通过操作文件创建多个用户 380

15.10.1 系统设计 380

15.10.2 代码实现 381

15.11 连续创建多个目录 383

15.11.1 系统设计 383

15.11.2 代码实现 383

15.12 检查系统资源使用情况 384

15.12.1 系统设计 384

15.12.2 代码实现 385

15.13 账户的一致性检查 388

15.13.1 系统设计 388

15.13.2 代码实现 388

15.14 文件类型转换 391

15.14.1 系统设计 391

15.14.2 代码实现 391

15.15 对输入的3个数字进行排序 393

15.15.1 系统设计 393

15.15.2 代码实现 393

15.16 计算奇数之和 395

15.16.1 系统设计 396

15.16.2 代码实现 396

15.17 使用select命令生成菜单 397

15.17.1 系统设计 397

15.17.2 代码实现 397

15.18 打印图形 398

15.18.1 系统设计 398

15.18.2 代码实现 398

15.19 处理压缩文件 399

15.19.1 系统设计 399

15.19.2 代码实现 399

15.20 数值进制转换 401

15.20.1 系统设计 401

15.20.2 代码实现 401

15.21 使用sed打印指定行 402

15.21.1 系统设计 402

15.21.2 代码实现 402

15.22 使用sed筛选普通文件 402

15.22.1 系统设计 402

15.22.2 代码实现 403

15.23 使用gawk反序输出各列 403

15.23.1 系统设计 403

15.23.2 代码实现 403

15.24 对文件进行大小写转换 404

15.24.1 系统设计 404

15.24.2 代码实现 404

15.25 统计文件中的文本信息 405

15.25.1 系统设计 405

15.25.2 代码实现 405

资源截图:

Linux Shell编程与编辑器使用详解 PDF