《Linux Shell编程与编辑器使用详解》
基本信息
作者: 刘丽霞 杨宇
出版社:电子工业出版社
ISBN:9787121207174
上架时间:2013-7-22
出版日期:2013 年7月
开本:16开
页码:424
版次:1-1
所属分类:计算机 > 操作系统 > Linux
计算机 > 软件与程序设计 > 综合 > 高级程序语言设计
更多关于 》》》《Linux Shell编程与编辑器使用详解》
内容简介
计算机书籍
《linux shell编程与编辑器使用详解》由浅入深,全面、系统地介绍了linux技术,书中提供了大量实例,供读者实战演练。另外,本书有很多关于linux下的命令操作内容,所以对于每个命令、每个管理设置,作者都实际运行了一遍,供读者参考,在后面的shell编程中,作者详细介绍了shell变量、函数、语法、控制结构等重要内容,最后一章中介绍综合实例,使读者对于shell编程的理解进一步加深。
《linux shell编程与编辑器使用详解》共分5篇。第1篇介绍shell编程基础、系统管理与设置;第2篇介绍常用的系统管理命令、系统维护命令、正则表达式;第3篇介绍vi编辑器、emacs编辑器;第4篇介绍grep命令、gawk与sed;第5篇介绍其他常用的文本编辑命令、shell变量及相关操作、条件测试、shell的控制结构、函数、shell编程实例。
《linux shell编程与编辑器使用详解》适合linux初学者、想全面学习linux开发技术的人员、linux专业开发人员、利用linux做开发的工程技术人员、linux开发爱好者、大中专院校的学生、社会培训班学员等。对于经常使用linux做开发的人员,更是一本不可多得的案头必备参考书。
目录
《linux shell编程与编辑器使用详解》
第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 默认shell3
1.2.2 bourne shell的扩展版3
1.2.3 网关接口shell3
1.2.4 早期shell3
1.2.5 支持后台作业shell4
1.3 shell基本语法4
1.3.1 shell脚本中的注释4
1.3.2 shell通配符的使用4
1.3.3 大小写区分6
1.3.4 指定使用某个shell6
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命令:远程用户设置登录shell64
3.1.7 chsh命令:切换系统登录时shell65
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命令:查看正在运行程序的进程id73
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命令:暂停执行shell89
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.conf153
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 交互式shell178
6.4.9 在vi(vim)中执行shell179
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与fgrep203
8.3.1 egrep处理复杂字符串203
8.3.2 fgrep处理简单字符串206
第9章 gawk与sed207
9.1 过滤器gawk207
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 流编辑器sed228
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