Documenting.Software.Architectures --软件构架编档


-
Documenting.Software.Architectures--软件构架编档 第13届JOLT大奖作品 捕获架构的过程 徐昊推荐
8.92MB
Documenting.Software.Architectures --软件构架编档
2012-02-22Documenting.Software.Architectures--软件构架编档 第13届JOLT大奖作品 捕获架构的过程 徐昊推荐
18.28MB
Addison.Wesley.Documenting.Software.Architectures.Oct.2010
2010-10-23Addison.Wesley.Documenting.Software.Architectures.Oct.2010
6.48MB
Documenting Software Architectures.pdf
2011-04-08Documenting Software Architectures
168KB
Documenting_Software_Architectures_Views_and_Beyon.pdf
2018-04-08Documenting_Software_Architectures_Views_and_Beyon.pdf
6.43MB
Documenting Software Architecture.pdf
2019-05-19第二版英文原版。 This book is the bible of documenting software architectures. It is a mandatory read for all software architects. It should also be read by the various stakeholders who have invested in a software architect so they have some idea about what their investment should be accomplishing. This version includes a lot of new content. It includes new architectural styles for SOA, database models, and multi-tier architectures. The authors have expanded the epilogue which is the comparison of Views and Beyond to other documenting approaches. It now includes comparisons to ISO/IEC 42010 - ANSI/IEEE Std 1471-2000, the RUPs 4+1, Rozanski and Woods Viewpoint Set, agile projects, and DoDAF. The book now includes 3 appendixes. One on UML, SysML, and AADL. Each is an overview of the language. They have improved templates based on experience gained since the first version of the book.
3.82MB
Documenting Software Architectures
2007-05-29Documenting Software Architectures
5.65MB
Documenting Software Architectures 2nd Edition.pd
2018-04-30Documenting Software Architectures 2nd Edition.pdf 软件体系架构文档编写
5.65MB
Documenting Software Architectures 2nd
2011-06-22The purpose of this book is to answer the following question: How do you document an architecture so that others can successfully use it, maintain it, and build a system from it?
12.49MB
Creating.Maintainable.APIs.A.Practical.Case-Study.Approach
2016-11-23Build straightforward and maintainable APIs to create services that are usable and maintainable. Although this book focuses on distributed services, it also emphasizes how the core principles apply even to pure OOD and OOP constructs. The overall context of Creating Maintainable APIs is to classify the topics into four main areas: classes and interfaces, HTTP REST APIs, messaging APIs, and message payloads (XML, JSON and JSON API as well as Apache Avro). What You Will Learn: Use object-oriented design constructs and their APIs Create and manage HTTP REST APIs Create and manage maintainable messaging APIs, including the use of Apache Kafka as a principal messaging hub Handle message payloads via JSON Who This Book Is For: This book is for any level software engineers and very experienced programmers. Table of Contents Chapter 1: Information Hiding and APIs Chapter 2: Modular Design Chapter 3: Designing Classes for Reuse Chapter 4: TDD as an API Design Technique Chapter 5: Identifying Resources Chapter 6: Versioning REST APIs Chapter 7: Encoding Actions on Resources Chapter 8: Implementing Synchronous and Asynchronous REST APIs Chapter 9: Documenting REST APIs Chapter 10: Testing REST APIs Chapter 11: Implementing Messaging APIs Chapter 12: Apache Kafka as a Messaging Hub Chapter 13: Testing Messaging APIs Chapter 14: Schema-Based Messages Chapter 15: The Core JSON API Chapter 16: Evolving the JSON API Chapter 17: Katharsis
3.67MB
Blockchain.Basics.A.Non-Technical.Introduction.in.25.Steps.pdf
2017-03-27In 25 concise steps, you will learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathematics, programming, or cryptography is required. Terminology is explained through pictures, analogies, and metaphors. This book bridges the gap that exists between purely technical books about the blockchain and purely business-focused books. It does so by explaining both the technical concepts that make up the blockchain and their role in business-relevant applications. What You Will Learn: What the blockchain is Why it is needed and what problem it solves Why there is so much excitement about the blockchain and its potential Major components and their purpose How various components of the blockchain work and interact Limitations, why they exist, and what has been done to overcome them Major application scenarios Who This Book Is For: Everyone who wants to get a general idea of what blockchain technology is, how it works, and how it will potentially change the financial system as we know it Table of Contents Stage I: Terminology and Technical Foundations Step 1: Thinking in Layers and Aspects Step 2: Seeing the Big Picture Step 3: Recognizing the Potential Stage II: Why the Blockchain Is Needed Step 4: Discovering the Core Problem Step 5: Disambiguating the Term Step 6: Understanding the Nature of Ownership Step 7: Spending Money Twice Stage III: How the Blockchain Works Step 8: Planning the Blockchain Step 9: Documenting Ownership Step 10: Hashing Data Step 11: Hashing in the Real World Step 12: Identifying and Protecting User Accounts Step 13: Authorizing Transactions Step 14: Storing Transaction Data Step 15: Using the Data Store Step 16: Protecting the Data Store Step 17: Distributing the Data Store Among Peers Step 18: Verif ying and Adding Transactions Step 19: Choosing a Transaction History Step 20: Paying for Integrity Step 21: Bringing the Pieces Together
1.52MB
Advanced Bash-Scripting Guide <<高级Bash 脚本编程指南>>
2010-01-05目录 ++++ 第一部分. 热身 1. 为什么使用shell 编程 2. 带着一个Sha-Bang 出发(Sha-Bang 指的是#!) 2.1. 调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊字符 4. 变量和参数的介绍 4.1. 变量替换 4.2. 变量赋值 4.3. Bash 变量是不分类型的 4.4. 特殊的变量类型 5. 引用(翻译的可能有问题,特指引号) 5.1. 引用变量 5.2. 转义(\) 6. 退出和退出状态 7. Tests 7.1. Test 结构 7.2. 文件测试操作 7.3. 其他比较操作 7.4. 嵌套的if/then 条件test 7.5. 检查你的test 知识 8. 操作符和相关的主题 8.1. 操作符 8.2. 数字常量 第三部分. 超越基本 9. 变量重游 9.1. 内部变量 9.2. 操作字符串 9.3. 参数替换 9.4. 指定类型的变量:declare 或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环和分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 10.4. 测试与分支(case 和select 结构) 11. 内部命令与内建 11.1. 作业控制命令 12. 外部过滤器,程序和命令 12.1. 基本命令 12.2. 复杂命令 12.3. 时间/日期 命令 12.4. 文本处理命令 12.5. 文件与归档命令 12.6. 通讯命令 12.7. 终端控制命令 12.8. 数学计算命令 12.9. 混杂命令 13. 系统与管理命令 13.1. 分析一个系统脚本 14. 命令替换 15. 算术扩展 16. I/O 重定向 16.1. 使用exec 16.2. 代码块的重定向 16.3. 应用 17. Here Documents 17.1. Here Strings 18. 休息时间 Part 4. 高级 19. 正则表达式 19.1. 一个简要的正则表达式介绍 19.2. 通配 20. 子shell(Subshells) 21. 受限shell(Restricted Shells) 22. 进程替换 23. 函数 23.1. 复杂函数和函数复杂性 23.2. 局部变量 23.3. 不使用局部变量的递归 24. 别名(Aliases) 25. 列表结构 26. 数组 27. /dev 和 /proc 27.1. /dev 27.2. /proc 28. 关于Zeros 和Nulls 29. 调试 30. 选项 31. Gotchas 32. 脚本编程风格 32.1. 非官方的Shell 脚本风格 33. 杂项 33.1. 交互式和非交互式的shells 和脚本 33.2. Shell 包装 33.3. 测试和比较: 另一种方法 33.4. 递归 33.5. 彩色脚本 33.6. 优化 33.7. 各种小技巧 33.8. 安全话题 33.8.1. 被感染的脚本 33.8.2. 隐藏Shell 脚本源码 33.9. 移植话题 33.10. 在Windows 下进行Shell 编程 34. Bash, 版本 2 和 3 34.1. Bash, 版本2 34.2. Bash, 版本3 35. 后记 35.1. 作者后记 35.2. 关于作者 35.3. 哪里可以取得帮助? 35.4. 制作这本书的工具 35.4.1. 硬件 35.4.2. 软件和排版软件 35.5. Credits Bibliography A. Contributed Scripts B. Reference Cards C. A Sed and Awk Micro-Primer C.1. Sed C.2. Awk D. Exit Codes With Special Meanings E. A Detailed Introduction to I/O and I/O Redirection F. Standard Command-Line Options G. Important Files H. Important System Directories I. Localization J. History Commands K. A Sample .bashrc File L. Converting DOS Batch Files to Shell Scripts M. Exercises M.1. Analyzing Scripts M.2. Writing Scripts N. Revision History O. Mirror Sites P. To Do List Q. Copyright 表格清单: 11-1. 作业标识符 30-1. Bash 选项 33-1. 转义序列中数值和彩色的对应 B-1. Special Shell Variables B-2. TEST Operators: Binary Comparison B-3. TEST Operators: Files B-4. Parameter Substitution and Expansion B-5. String Operations B-6. Miscellaneous Constructs C-1. Basic sed operators C-2. Examples of sed operators D-1. "Reserved" Exit Codes L-1. Batch file keywords / variables / operators, and their shell equivalents L-2. DOS commands and their UNIX equivalents N-1. Revision History 例子清单: 2-1. 清除:清除/var/log 下的log 文件 2-2. 清除:一个改良的清除脚本 2-3. cleanup:一个增强的和广义的删除logfile 的脚本 3-1. 代码块和I/O 重定向 3-2. 将一个代码块的结果保存到文件 3-3. 在后台运行一个循环 3-4. 备份最后一天所有修改的文件. 4-1. 变量赋值和替换 4-2. 一般的变量赋值 4-3. 变量赋值,一般的和比较特殊的 4-4. 整型还是string? 4-5. 位置参数 4-6. wh,whois 节点名字查询 4-7. 使用shift 5-1. echo 一些诡异的变量 5-2. 转义符 6-1. exit/exit 状态 6-2. 否定一个条件使用! 7-1. 什么情况下为真? 7-2. 几个等效命令test,/usr/bin/test,[],和/usr/bin/[ 7-3. 算数测试使用(( )) 7-4. test 死的链接文件 7-5. 数字和字符串比较 7-6. 测试字符串是否为null 7-7. zmore 8-1. 最大公约数 8-2. 使用算术操作符 8-3. 使用&&和||进行混合状态的test 8-4. 数字常量的处理 9-1. $IFS 和空白 9-2. 时间输入 9-3. 再来一个时间输入 9-4. Timed read 9-5. 我是root? 9-6. arglist:通过$*和$@列出所有的参数 9-7. 不一致的$*和$@行为 9-8. 当$IFS 为空时的$*和$@ 9-9. 下划线变量 9-10. 在一个文本文件的段间插入空行 9-11. 利用修改文件名,来转换图片格式 9-12. 模仿getopt 命令 9-13. 提取字符串的一种可选的方法 9-14. 使用参数替换和error messages 9-15. 参数替换和"usage"messages 9-16. 变量长度 9-17. 参数替换中的模式匹配 9-18. 重命名文件扩展名 9-19. 使用模式匹配来分析比较特殊的字符串 9-20. 对字符串的前缀或后缀使用匹配模式 9-21. 使用declare 来指定变量的类型 9-22. 间接引用 9-23. 传递一个间接引用给awk 9-24. 产生随机数 9-25. 从一副扑克牌中取出一张随机的牌 9-26. 两个指定值之间的随机数 9-27. 使用随机数来摇一个骰子 9-28. 重新分配随机数种子 9-29. 使用awk 产生伪随机数 9-30. C 风格的变量处理 10-1. 循环的一个简单例子 10-2. 每个[list]元素带两个参数的for 循环 10-3. 文件信息:对包含在变量中的文件列表进行操作 10-4. 在for 循环中操作文件 10-5. 在for 循环中省略[list] 10-6. 使用命令替换来产生for 循环的[list] 10-7. 对于二进制文件的一个grep 替换 10-8. 列出系统上的所有用户 10-9. 在目录的所有文件中查找源字串 10-10. 列出目录中所有的符号连接文件 10-11. 将目录中的符号连接文件名保存到一个文件中 10-12. 一个C 风格的for 循环 10-13. 在batch mode 中使用efax 10-14. 简单的while 循环 10-15. 另一个while 循环 10-16. 多条件的while 循环 10-17. C 风格的while 循环 10-18. until 循环 10-19. 嵌套循环 10-20. break 和continue 命令在循环中的效果 10-21. 多层循环的退出 10-22. 多层循环的continue 10-23. 在实际的任务中使用"continue N" 10-24. 使用case 10-25. 使用case 来创建菜单 10-26. 使用命令替换来产生case 变量 10-27. 简单字符串匹配 10-28. 检查是否是字母输入 10-29. 用select 来创建菜单 10-30. 用函数中select 结构来创建菜单 11-1. 一个fork 出多个自己实例的脚本 11-2. printf 11-3. 使用read,变量分配 11-4. 当使用一个不带变量参数的read 命令时,将会发生什么? 11-5. read 命令的多行输入 11-6. 检测方向键 11-7. 通过文件重定向来使用read 11-8. 管道输出到read 中的问题 11-9. 修改当前的工作目录 11-10. 用"let"命令来作算术操作. 11-11. 显示eval 命令的效果 11-12. 强制登出(log-off) 11-13. 另一个"rot13"的版本 11-14. 在Perl 脚本中使用eval 命令来强制变量替换 11-15. 使用set 来改变脚本的位置参数 11-16. 重新分配位置参数 11-17. Unset 一个变量 11-18. 使用export 命令传递一个变量到一个内嵌awk 的脚本中 11-19. 使用getopts 命令来读取传递给脚本的选项/参数. 11-20. "Including"一个数据文件 11-21. 一个没什么用的,source 自身的脚本 11-22. exec 的效果 11-23. 一个exec 自身的脚本 11-24. 在继续处理之前,等待一个进程的结束 11-25. 一个结束自身的脚本. 12-1. 使用ls 命令来创建一个烧录CDR 的内容列表 12-2. Hello or Good-bye 12-3. 删除当前目录下文件名中包含一些特殊字符(包括空白)的文件.. 12-4. 通过文件的 inode 号来删除文件 12-5. Logfile: 使用 xargs 来监控系统 log 12-6. 把当前目录下的文件拷贝到另一个文件中 12-7. 通过名字Kill 进程 12-8. 使用xargs 分析单词出现的频率 12-9. 使用 expr 12-10. 使用 date 命令 12-11. 分析单词出现的频率 12-12. 那个文件是脚本? 12-13. 产生10 进制随机数 12-14. 使用 tail 命令来监控系统log 12-15. 在一个脚本中模仿 "grep" 的行为 12-16. 在1913 年的韦氏词典中查找定义 12-17. 检查列表中单词的正确性 12-18. 转换大写: 把一个文件的内容全部转换为大写. 12-19. 转换小写: 将当前目录下的所有文全部转换为小写. 12-20. Du: DOS 到 UNIX 文本文件的转换. 12-21. rot13: rot13, 弱智加密. 12-22. Generating "Crypto-Quote" Puzzles 12-23. 格式化文件列表. 12-24. 使用 column 来格式化目录列表 12-25. nl: 一个自己计算行号的脚本. 12-26. manview: 查看格式化的man 页 12-27. 使用 cpio 来拷贝一个目录树 12-28. 解包一个 rpm 归档文件 12-29. 从 C 文件中去掉注释 12-30. Exploring /usr/X11R6/bin 12-31. 一个"改进过"的 strings 命令 12-32. 在一个脚本中使用 cmp 来比较2 个文件. 12-33. basename 和 dirname 12-34. 检查文件完整性 12-35. Uudecod 编码后的文件 12-36. 查找滥用的连接来报告垃圾邮件发送者 12-37. 分析一个垃圾邮件域 12-38. 获得一份股票报价 12-39. 更新 Fedora Core 4 12-40. 使用 ssh 12-41. 一个可以mail 自己的脚本 12-42. 按月偿还贷款 12-43. 数制转换 12-44. 使用 "here document" 来调用 bc 12-45. 计算圆周率 12-46. 将10 进制数字转换为16 进制数字 12-47. 因子分解 12-48. 计算直角三角形的斜边 12-49. 使用 seq 来产生循环参数 12-50. 字母统计 12-51. 使用getopt 来分析命令行选项 12-52. 一个拷贝自身的脚本 12-53. 练习dd 12-54. 记录按键 12-55. 安全的删除一个文件 12-56. 文件名产生器 12-57. 将米转换为英里 12-58. 使用 m4 13-1. 设置一个新密码 13-2. 设置一个擦除字符 13-3. 关掉终端对于密码的echo 13-4. 按键检测 13-5. Checking a remote server for identd<rojy bug> 13-6. pidof 帮助杀掉一个进程 13-7. 检查一个CD 镜像 13-8. 在一个文件中创建文件系统 13-9. 添加一个新的硬盘驱动器 13-10. 使用umask 来将输出文件隐藏起来 13-11. killall, 来自于 /etc/rc.d/init.d 14-1. 愚蠢的脚本策略 14-2. 从循环的输出中产生一个变量 14-3. 找anagram(回文构词法, 可以将一个有意义的单词, 变换为1 个或多个有意义的单词, 但 是还是原来的子母集合) 16-1. 使用exec 重定向标准输入 16-2. 使用exec 来重定向stdout 16-3. 使用exec 在同一脚本中重定向stdin 和stdout 16-4. 避免子shell 16-5. while 循环的重定向 16-6. 另一种while 循环的重定向 16-7. until 循环重定向 16-8. for 循环重定向 16-9. for 循环重定向 loop (将标准输入和标准输出都重定向了) 16-10. 重定向if/then 测试结构 16-11. 用于上面例子的"names.data"数据文件 16-12. 记录日志事件 17-1. 广播: 发送消息给每个登录上的用户 17-2. 仿造文件: 创建一个两行的仿造文件 17-3. 使用cat 的多行消息 17-4. 带有抑制tab 功能的多行消息 17-5. 使用参数替换的here document 17-6. 上传一个文件对到"Sunsite"的incoming 目录 17-7. 关闭参数替换 17-8. 一个产生另外一个脚本的脚本 17-9. Here documents 与函数 17-10. "匿名" here Document 17-11. 注释掉一段代码块 17-12. 一个自文档化(self-documenting)的脚本 17-13. 在一个文件的开头添加文本 20-1. 子shell 中的变量作用域 20-2. 列出用户的配置文件 20-3. 在子shell 里进行串行处理 21-1. 在受限的情况下运行脚本 23-1. 简单函数 23-2. 带着参数的函数 23-3. 函数和被传给脚本的命令行参数 23-4. 传递间接引用给函数 23-5. 解除传递给函数的参数引用 23-6. 再次尝试解除传递给函数的参数引用 23-7. 两个数中的最大者 23-8. 把数字转化成罗马数字 23-9. 测试函数最大的返回值 23-10. 比较两个大整数 23-11. 用户名的真实名 23-12. 局部变量的可见范围 23-13. 用局部变量来递归 23-14. 汉诺塔 24-1. 脚本中的别名 24-2. unalias: 设置和删除别名 25-1. 使用"与列表(and list)"来测试命令行参数 25-2. 用"与列表"的另一个命令行参数测试 25-3. "或列表"和"与列表"的结合使用 26-1. 简单的数组用法 26-2. 格式化一首诗 26-3. 多种数组操作 26-4. 用于数组的字符串操作符 26-5. 将脚本的内容传给数组 26-6. 一些数组专用的工具 26-7. 关于空数组和空数组元素 26-8. 初始化数组 26-9. 复制和连接数组 26-10. 关于连接数组的更多信息 26-11. 一位老朋友: 冒泡排序 26-12. 内嵌数组和间接引用 26-13. 复杂数组应用: 埃拉托色尼素数筛子 26-14. 模拟下推的堆栈 26-15. 复杂的数组应用: 列出一种怪异的数学序列 26-16. 模拟二维数组,并使它倾斜 27-1. 利用/dev/tcp 来检修故障 27-2. 搜索与一个PID 相关的进程 27-3. 网络连接状态 28-1. 隐藏cookie 而不再使用 28-2. 用/dev/zero 创建一个交换临时文件 28-3. 创建ramdisk 29-1. 一个错误的脚本 29-2. 丢失关键字(keyword) 29-3. 另一个错误脚本 29-4. 用"assert"测试条件 29-5. 捕捉 exit 29-6. 在Control-C 后清除垃圾 29-7. 跟踪变量 29-8. 运行多进程 (在多处理器的机器里) 31-1. 数字和字符串比较是不相等同的 31-2. 子SHELL 缺陷 31-3. 把echo 的输出用管道输送给read 命令 33-1. shell 包装 33-2. 稍微复杂一些的shell 包装 33-3. 写到日志文件的shell 包装 33-4. 包装awk 的脚本 33-5. 另一个包装awk 的脚本 33-6. 把Perl 嵌入Bash 脚本 33-7. Bash 和 Perl 脚本联合使用 33-8. 递归调用自己本身的(无用)脚本 33-9. 递归调用自己本身的(有用)脚本 33-10. 另一个递归调用自己本身的(有用)脚本 33-11. 一个 "彩色的" 地址资料库 33-12. 画盒子 33-13. 显示彩色文本 33-14. "赛马" 游戏 33-15. 返回值技巧 33-16. 整型还是string? 33-17. 传递和返回数组 33-18. anagrams 游戏 33-19. 在shell 脚本中调用的窗口部件 34-1. 字符串扩展 34-2. 间接变量引用 - 新方法 34-3. 使用间接变量引用的简单数据库应用 34-4. 用数组和其他的小技巧来处理四人随机打牌 A-1. mailformat: Formatting an e-mail message A-2. rn: A simple-minded file rename utility A-3. blank-rename: renames filenames containing blanks A-4. encryptedpw: Uploading to an ftp site, using a locally encrypted password A-5. copy-cd: Copying a data CD A-6. Collatz series A-7. days-between: Calculate number of days between two dates A-8. Make a "dictionary" A-9. Soundex conversion A-10. "Game of Life" A-11. Data file for "Game of Life" A-12. behead: Removing mail and news message headers A-13. ftpget: Downloading files via ftp A-14. password: Generating random 8-character passwords A-15. fifo: Making daily backups, using named pipes A-16. Generating prime numbers using the modulo operator A-17. tree: Displaying a directory tree A-18. string functions: C-like string functions A-19. Directory information A-20. Object-oriented database A-21. Library of hash functions A-22. Colorizing text using hash functions A-23. Mounting USB keychain storage devices A-24. Preserving weblogs A-25. Protecting literal strings A-26. Unprotecting literal strings A-27. Spammer Identification A-28. Spammer Hunt A-29. Making wget easier to use A-30. A "podcasting" script A-31. Basics Reviewed A-32. An expanded cd command C-1. Counting Letter Occurrences K-1. Sample .bashrc file L-1. VIEWDATA.BAT: DOS Batch File L-2. viewdata.sh: Shell Script Conversion of VIEWDATA.BAT P-1. Print the server environment
317KB
Software Architecture Documentation in Practice--Documenting Architectural Layers
2008-12-16Software Architecture Documentation in Practice--Documenting Architectural Layers
3.70MB
Linux高级bash编程
2009-07-28高级bash编程 高级Bash脚本编程指南(一) 目录 ++++ 第一部分. 热身 1. 为什么使用shell编程 2. 带着一个Sha-Bang出发(Sha-Bang指的是#!) 2.1. 调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊字符 4. 变量和参数的介绍 4.1. 变量替换 4.2. 变量赋值 4.3. Bash变量是不分类型的 4.4. 特殊的变量类型 5. 引用(翻译的可能有问题,特指引号) 5.1. 引用变量 5.2. 转义(\) 6. 退出和退出状态 7. Tests 7.1. Test结构 7.2. 文件测试操作 7.3. 其他比较操作 7.4. 嵌套的if/then条件test 7.5. 检查你的test知识 8. 操作符和相关的主题 8.1. 操作符 8.2. 数字常量 第三部分. 超越基本 9. 变量重游 9.1. 内部变量 9.2. 操作字符串 9.3. 参数替换 9.4. 指定类型的变量:declare或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环和分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 10.4. 测试与分支(case和select结构) 11. 内部命令与内建 11.1. 作业控制命令 12. 外部过滤器,程序和命令 12.1. 基本命令 12.2. 复杂命令 12.3. 时间/日期 命令 12.4. 文本处理命令 12.5. 文件与归档命令 12.6. 通讯命令 12.7. 终端控制命令 12.8. 数学计算命令 12.9. 混杂命令 13. 系统与管理命令 13.1. 分析一个系统脚本 14. 命令替换 15. 算术扩展 16. I/O 重定向 16.1. 使用exec 16.2. 代码块的重定向 16.3. 应用 17. Here Documents 17.1. Here Strings 18. 休息时间 Part 4. 高级 19. 正则表达式 19.1. 一个简要的正则表达式介绍 19.2. 通配 20. 子shell(Subshells) 21. 受限shell(Restricted Shells) 22. 进程替换 23. 函数 23.1. 复杂函数和函数复杂性 23.2. 局部变量 23.3. 不使用局部变量的递归 24. 别名(Aliases) 25. 列表结构 26. 数组 27. /dev 和 /proc 27.1. /dev 27.2. /proc 28. 关于Zeros和Nulls 29. 调试 30. 选项 31. Gotchas 32. 脚本编程风格 32.1. 非官方的Shell脚本风格 33. 杂项 33.1. 交互式和非交互式的shells和脚本 33.2. Shell 包装 33.3. 测试和比较: 另一种方法 33.4. 递归 33.5. 彩色脚本 33.6. 优化 33.7. 各种小技巧 33.8. 安全话题 33.8.1. 被感染的脚本 33.8.2. 隐藏Shell脚本源码 33.9. 移植话题 33.10. 在Windows下进行Shell编程 34. Bash, 版本 2 和 3 34.1. Bash, 版本2 34.2. Bash, 版本3 35. 后记 35.1. 作者后记 35.2. 关于作者 35.3. 哪里可以取得帮助? 35.4. 制作这本书的工具 35.4.1. 硬件 35.4.2. 软件和排版软件 35.5. Credits Bibliography A. Contributed Scripts B. Reference Cards C. A Sed and Awk Micro-Primer C.1. Sed C.2. Awk D. Exit Codes With Special Meanings E. A Detailed Introduction to I/O and I/O Redirection F. Standard Command-Line Options G. Important Files H. Important System Directories I. Localization J. History Commands K. A Sample .bashrc File L. Converting DOS Batch Files to Shell Scripts M. Exercises M.1. Analyzing Scripts M.2. Writing Scripts N. Revision History O. Mirror Sites P. To Do List Q. Copyright 表格清单: 11-1. 作业标识符 30-1. Bash 选项 33-1. 转义序列中数值和彩色的对应 B-1. Special Shell Variables B-2. TEST Operators: Binary Comparison B-3. TEST Operators: Files B-4. Parameter Substitution and Expansion B-5. String Operations B-6. Miscellaneous Constructs C-1. Basic sed operators C-2. Examples of sed operators D-1. "Reserved" Exit Codes L-1. Batch file keywords / variables / operators, and their shell equivalents L-2. DOS commands and their UNIX equivalents N-1. Revision History 例子清单: 2-1. 清除:清除/var/log下的log文件 2-2. 清除:一个改良的清除脚本 2-3. cleanup:一个增强的和广义的删除logfile的脚本 3-1. 代码块和I/O重定向 3-2. 将一个代码块的结果保存到文件 3-3. 在后台运行一个循环 3-4. 备份最后一天所有修改的文件. 4-1. 变量赋值和替换 4-2. 一般的变量赋值 4-3. 变量赋值,一般的和比较特殊的 4-4. 整型还是string? 4-5. 位置参数 4-6. wh,whois节点名字查询 4-7. 使用shift 5-1. echo一些诡异的变量 5-2. 转义符 6-1. exit/exit状态 6-2. 否定一个条件使用! 7-1. 什么情况下为真? 7-2. 几个等效命令test,/usr/bin/test,[],和/usr/bin/[ 7-3. 算数测试使用(( )) 7-4. test死的链接文件 7-5. 数字和字符串比较 7-6. 测试字符串是否为null 7-7. zmore 8-1. 最大公约数 8-2. 使用算术操作符 8-3. 使用&&和||进行混合状态的test 8-4. 数字常量的处理 9-1. $IFS和空白 9-2. 时间输入 9-3. 再来一个时间输入 9-4. Timed read 9-5. 我是root? 9-6. arglist:通过$*和$@列出所有的参数 9-7. 不一致的$*和$@行为 9-8. 当$IFS为空时的$*和$@ 9-9. 下划线变量 9-10. 在一个文本文件的段间插入空行 9-11. 利用修改文件名,来转换图片格式 9-12. 模仿getopt命令 9-13. 提取字符串的一种可选的方法 9-14. 使用参数替换和error messages 9-15. 参数替换和"usage"messages 9-16. 变量长度 9-17. 参数替换中的模式匹配 9-18. 重命名文件扩展名 9-19. 使用模式匹配来分析比较特殊的字符串 9-20. 对字符串的前缀或后缀使用匹配模式 9-21. 使用declare来指定变量的类型 9-22. 间接引用 9-23. 传递一个间接引用给awk 9-24. 产生随机数 9-25. 从一副扑克牌中取出一张随机的牌 9-26. 两个指定值之间的随机数 9-27. 使用随机数来摇一个骰子 9-28. 重新分配随机数种子 9-29. 使用awk产生伪随机数 9-30. C风格的变量处理 10-1. 循环的一个简单例子 10-2. 每个[list]元素带两个参数的for循环 10-3. 文件信息:对包含在变量中的文件列表进行操作 10-4. 在for循环中操作文件 10-5. 在for循环中省略[list] 10-6. 使用命令替换来产生for循环的[list] 10-7. 对于二进制文件的一个grep替换 10-8. 列出系统上的所有用户 10-9. 在目录的所有文件中查找源字串 10-10. 列出目录中所有的符号连接文件 10-11. 将目录中的符号连接文件名保存到一个文件中 10-12. 一个C风格的for循环 10-13. 在batch mode中使用efax 10-14. 简单的while循环 10-15. 另一个while循环 10-16. 多条件的while循环 10-17. C风格的while循环 10-18. until循环 10-19. 嵌套循环 10-20. break和continue命令在循环中的效果 10-21. 多层循环的退出 10-22. 多层循环的continue 10-23. 在实际的任务中使用"continue N" 10-24. 使用case 10-25. 使用case来创建菜单 10-26. 使用命令替换来产生case变量 10-27. 简单字符串匹配 10-28. 检查是否是字母输入 10-29. 用select来创建菜单 10-30. 用函数中select结构来创建菜单 11-1. 一个fork出多个自己实例的脚本 11-2. printf 11-3. 使用read,变量分配 11-4. 当使用一个不带变量参数的read命令时,将会发生什么? 11-5. read命令的多行输入 11-6. 检测方向键 11-7. 通过文件重定向来使用read 11-8. 管道输出到read中的问题 11-9. 修改当前的工作目录 11-10. 用"let"命令来作算术操作. 11-11. 显示eval命令的效果 11-12. 强制登出(log-off) 11-13. 另一个"rot13"的版本 11-14. 在Perl脚本中使用eval命令来强制变量替换 11-15. 使用set来改变脚本的位置参数 11-16. 重新分配位置参数 11-17. Unset一个变量 11-18. 使用export命令传递一个变量到一个内嵌awk的脚本中 11-19. 使用getopts命令来读取传递给脚本的选项/参数. 11-20. "Including"一个数据文件 11-21. 一个没什么用的,source自身的脚本 11-22. exec的效果 11-23. 一个exec自身的脚本 11-24. 在继续处理之前,等待一个进程的结束 11-25. 一个结束自身的脚本. 12-1. 使用ls命令来创建一个烧录CDR的内容列表 12-2. Hello or Good-bye 12-3. 删除当前目录下文件名中包含一些特殊字符(包括空白)的文件.. 12-4. 通过文件的 inode 号来删除文件 12-5. Logfile: 使用 xargs 来监控系统 log 12-6. 把当前目录下的文件拷贝到另一个文件中 12-7. 通过名字Kill进程 12-8. 使用xargs分析单词出现的频率 12-9. 使用 expr 12-10. 使用 date 命令 12-11. 分析单词出现的频率 12-12. 那个文件是脚本? 12-13. 产生10进制随机数 12-14. 使用 tail 命令来监控系统log 12-15. 在一个脚本中模仿 "grep" 的行为 12-16. 在1913年的韦氏词典中查找定义 12-17. 检查列表中单词的正确性 12-18. 转换大写: 把一个文件的内容全部转换为大写. 12-19. 转换小写: 将当前目录下的所有文全部转换为小写. 12-20. Du: DOS 到 UNIX 文本文件的转换. 12-21. rot13: rot13, 弱智加密. 12-22. Generating "Crypto-Quote" Puzzles 12-23. 格式化文件列表. 12-24. 使用 column 来格式化目录列表 12-25. nl: 一个自己计算行号的脚本. 12-26. manview: 查看格式化的man页 12-27. 使用 cpio 来拷贝一个目录树 12-28. 解包一个 rpm 归档文件 12-29. 从 C 文件中去掉注释 12-30. Exploring /usr/X11R6/bin 12-31. 一个"改进过"的 strings 命令 12-32. 在一个脚本中使用 cmp 来比较2个文件. 12-33. basename 和 dirname 12-34. 检查文件完整性 12-35. Uudecod 编码后的文件 12-36. 查找滥用的连接来报告垃圾邮件发送者 12-37. 分析一个垃圾邮件域 12-38. 获得一份股票报价 12-39. 更新 Fedora Core 4 12-40. 使用 ssh 12-41. 一个可以mail自己的脚本 12-42. 按月偿还贷款 12-43. 数制转换 12-44. 使用 "here document" 来调用 bc 12-45. 计算圆周率 12-46. 将10进制数字转换为16进制数字 12-47. 因子分解 12-48. 计算直角三角形的斜边 12-49. 使用 seq 来产生循环参数 12-50. 字母统计 12-51. 使用getopt来分析命令行选项 12-52. 一个拷贝自身的脚本 12-53. 练习dd 12-54. 记录按键 12-55. 安全的删除一个文件 12-56. 文件名产生器 12-57. 将米转换为英里 12-58. 使用 m4 13-1. 设置一个新密码 13-2. 设置一个擦除字符 13-3. 关掉终端对于密码的echo 13-4. 按键检测 13-5. Checking a remote server for identd<rojy bug> 13-6. pidof 帮助杀掉一个进程 13-7. 检查一个CD镜像 13-8. 在一个文件中创建文件系统 13-9. 添加一个新的硬盘驱动器 13-10. 使用umask来将输出文件隐藏起来 13-11. killall, 来自于 /etc/rc.d/init.d 14-1. 愚蠢的脚本策略 14-2. 从循环的输出中产生一个变量 14-3. 找anagram(回文构词法, 可以将一个有意义的单词, 变换为1个或多个有意义的单词, 但是还是原来的子母集合) 16-1. 使用exec重定向标准输入 16-2. 使用exec来重定向stdout 16-3. 使用exec在同一脚本中重定向stdin和stdout 16-4. 避免子shell 16-5. while循环的重定向 16-6. 另一种while循环的重定向 16-7. until循环重定向 16-8. for循环重定向 16-9. for循环重定向 loop (将标准输入和标准输出都重定向了) 16-10. 重定向if/then测试结构 16-11. 用于上面例子的"names.data"数据文件 16-12. 记录日志事件 17-1. 广播: 发送消息给每个登录上的用户 17-2. 仿造文件: 创建一个两行的仿造文件 17-3. 使用cat的多行消息 17-4. 带有抑制tab功能的多行消息 17-5. 使用参数替换的here document 17-6. 上传一个文件对到"Sunsite"的incoming目录 17-7. 关闭参数替换 17-8. 一个产生另外一个脚本的脚本 17-9. Here documents与函数 17-10. "匿名" here Document 17-11. 注释掉一段代码块 17-12. 一个自文档化(self-documenting)的脚本 17-13. 在一个文件的开头添加文本 20-1. 子shell中的变量作用域 20-2. 列出用户的配置文件 20-3. 在子shell里进行串行处理 21-1. 在受限的情况下运行脚本 23-1. 简单函数 23-2. 带着参数的函数 23-3. 函数和被传给脚本的命令行参数 23-4. 传递间接引用给函数 23-5. 解除传递给函数的参数引用 23-6. 再次尝试解除传递给函数的参数引用 23-7. 两个数中的最大者 23-8. 把数字转化成罗马数字 23-9. 测试函数最大的返回值 23-10. 比较两个大整数 23-11. 用户名的真实名 23-12. 局部变量的可见范围 23-13. 用局部变量来递归 23-14. 汉诺塔 24-1. 脚本中的别名 24-2. unalias: 设置和删除别名 25-1. 使用"与列表(and list)"来测试命令行参数 25-2. 用"与列表"的另一个命令行参数测试 25-3. "或列表"和"与列表"的结合使用 26-1. 简单的数组用法 26-2. 格式化一首诗 26-3. 多种数组操作 26-4. 用于数组的字符串操作符 26-5. 将脚本的内容传给数组 26-6. 一些数组专用的工具 26-7. 关于空数组和空数组元素 26-8. 初始化数组 26-9. 复制和连接数组 26-10. 关于连接数组的更多信息 26-11. 一位老朋友: 冒泡排序 26-12. 内嵌数组和间接引用 26-13. 复杂数组应用: 埃拉托色尼素数筛子 26-14. 模拟下推的堆栈 26-15. 复杂的数组应用: 列出一种怪异的数学序列 26-16. 模拟二维数组,并使它倾斜 27-1. 利用/dev/tcp 来检修故障 27-2. 搜索与一个PID相关的进程 27-3. 网络连接状态 28-1. 隐藏cookie而不再使用 28-2. 用/dev/zero创建一个交换临时文件 28-3. 创建ramdisk 29-1. 一个错误的脚本 29-2. 丢失关键字(keyword) 29-3. 另一个错误脚本 29-4. 用"assert"测试条件 29-5. 捕捉 exit 29-6. 在Control-C后清除垃圾 29-7. 跟踪变量 29-8. 运行多进程 (在多处理器的机器里) 31-1. 数字和字符串比较是不相等同的 31-2. 子SHELL缺陷 31-3. 把echo的输出用管道输送给read命令 33-1. shell 包装 33-2. 稍微复杂一些的shell包装 33-3. 写到日志文件的shell包装 33-4. 包装awk的脚本 33-5. 另一个包装awk的脚本 33-6. 把Perl嵌入Bash脚本 33-7. Bash 和 Perl 脚本联合使用 33-8. 递归调用自己本身的(无用)脚本 33-9. 递归调用自己本身的(有用)脚本 33-10. 另一个递归调用自己本身的(有用)脚本 33-11. 一个 "彩色的" 地址资料库 33-12. 画盒子 33-13. 显示彩色文本 33-14. "赛马" 游戏 33-15. 返回值技巧 33-16. 整型还是string? 33-17. 传递和返回数组 33-18. anagrams游戏 33-19. 在shell脚本中调用的窗口部件 34-1. 字符串扩展 34-2. 间接变量引用 - 新方法 34-3. 使用间接变量引用的简单数据库应用 34-4. 用数组和其他的小技巧来处理四人随机打牌 A-1. mailformat: Formatting an e-mail message A-2. rn: A simple-minded file rename utility A-3. blank-rename: renames filenames containing blanks A-4. encryptedpw: Uploading to an ftp site, using a locally encrypted password A-5. copy-cd: Copying a data CD A-6. Collatz series A-7. days-between: Calculate number of days between two dates A-8. Make a "dictionary" A-9. Soundex conversion A-10. "Game of Life" A-11. Data file for "Game of Life" A-12. behead: Removing mail and news message headers A-13. ftpget: Downloading files via ftp A-14. password: Generating random 8-character passwords A-15. fifo: Making daily backups, using named pipes A-16. Generating prime numbers using the modulo operator A-17. tree: Displaying a directory tree A-18. string functions: C-like string functions A-19. Directory information A-20. Object-oriented database A-21. Library of hash functions A-22. Colorizing text using hash functions A-23. Mounting USB keychain storage devices A-24. Preserving weblogs A-25. Protecting literal strings A-26. Unprotecting literal strings A-27. Spammer Identification A-28. Spammer Hunt A-29. Making wget easier to use A-30. A "podcasting" script A-31. Basics Reviewed A-32. An expanded cd command C-1. Counting Letter Occurrences K-1. Sample .bashrc file L-1. VIEWDATA.BAT: DOS Batch File L-2. viewdata.sh: Shell Script Conversion of VIEWDATA.BAT P-1. Print the server environment
2.98MB
深入学习shell脚本艺术
2011-02-22shell是如此地重要,但令人惊奇的是,介绍shell的书没有真正令人满意的。所幸的是,我看到了这本被人称为abs的书,这本书介绍了bash大量的细节和广阔的范围,我遇到的绝大部分的技术问题--无论是我忘记的或是以前没有发现的--都可以在这本书里找到答案。这本使用大量的例子详细地介绍了Bash的语法,各种技巧,调试等等的技术,以循序渐进的学习方式,让你了解Bash的所有特性,在书中还有许多练习可以引导你思考,以得到更深入的知识。无论你是新手还是老手,或是使用其他语言的程序员,我能肯定你能在此书用受益。而本书除了介绍BASH的知识之外,也有许多有用的关于Linux/UNIX的知识和其他shell的介绍。 在看到本书的英文版后,我决定把它翻译出来,在Linuxsir论坛上结识了译者之一杨春敏共同翻译这本书,600多页的书是本大部头的书,我们花了6个月的业余时间才翻译完了。 关于版权的问题,英文版的作者Mendel Cooper对英文版的版权做了详细的约定,请参考:Appendix Q. Copyright。中文版版权由译者杨春敏和黄毅共同所有,在遵守英文版版权相应条款的条件下,欢迎在保留本书译者名字和版权说明以非盈利的方式自由发布此中文版,以盈利目的的所有行为必须联系英文作者和两位中文译者以获得许可。 本书得以成稿,我(黄毅)要多谢我的女朋友,本该给予她的时间我用来了翻译,多谢你的理解,你是一个很棒的女朋友! 译者 杨春敏 黄毅 2006.5.15 Advanced Bash-Scripting Guide <<高级Bash脚本编程指南>> 一本深入学习shell脚本艺术的书籍 Version 3.7.2 2005/11/16 作者:Mendel Cooper mail:thegrendel@theriver.com 这本书假定你没有任何脚本或一般程序的编程知识,但是如果你有相关的知识,那么你将很容易 达到中高级的水平...all the while sneaking in little snippets of UNIX? wisdom and lore(这句不知道怎么译).你可以把本书作为教材,自学手册,或者你获得shell脚本技术的文档. 书中的练习和例子脚本中的注释将会与读者有更好的互动,但是最关键的前提是: 想真正学习脚本编程的唯一途径就是编写脚本. 这本书也可作为教材来讲解一般的编程概念 译者:杨春敏,黄毅 mail:chunmin.yang@gmail.com 目录 ++++ 第一部分. 热身 1. 为什么使用shell编程 2. 带着一个Sha-Bang出发(Sha-Bang指的是#!) 2.1. 调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊字符 4. 变量和参数的介绍 4.1. 变量替换 4.2. 变量赋值 4.3. Bash变量是不分类型的 4.4. 特殊的变量类型 5. 引用(翻译的可能有问题,特指引号) 5.1. 引用变量 5.2. 转义(\) 6. 退出和退出状态 7. Tests 7.1. Test结构 7.2. 文件测试操作 7.3. 其他比较操作 7.4. 嵌套的if/then条件test 7.5. 检查你的test知识 8. 操作符和相关的主题 8.1. 操作符 8.2. 数字常量 第三部分. 超越基本 9. 变量重游 9.1. 内部变量 9.2. 操作字符串 9.3. 参数替换 9.4. 指定类型的变量:declare或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环和分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 10.4. 测试与分支(case和select结构) 11. 内部命令与内建 11.1. 作业控制命令 12. 外部过滤器,程序和命令 12.1. 基本命令 1
4.79MB
高级Shell脚本编程
2013-10-28目录 序 1. 原书作者致中国读者(英文) 2. 原书作者致中国读者(译文) 3. 黄毅 4. 杨春敏 第一部分. 热身 1. 为什么使用shell编程? 2. 带着一个Sha-Bang出发(Sha-Bang指的是#!) 2.1. 调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊字符 4. 变量和参数的介绍 4.1. 变量替换 4.2. 变量赋值 4.3. Bash变量是不区分类型的 4.4. 特殊的变量类型 5. 引用 5.1. 引用变量 5.2. 转义 6. 退出和退出状态码 7. 条件判断 7.1. 条件测试结构 7.2. 文件测试操作符 7.3. 其他比较操作符 7.4. 嵌套的if/then条件测试 7.5. 检测你对测试知识的掌握情况 8. 操作符与相关主题 8.1. 操作符 8.2. 数字常量 第三部分. 进阶 9. 变量重游 9.1. 内部变量 9.2. 操作字符串 9.3. 参数替换 9.4. 指定变量的类型: 使用declare或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环与分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 10.4. 测试与分支(case与select结构) 11. 内部命令与内建命令 11.1. 作业控制命令 12. 外部过滤器, 程序和命令 12.1. 基本命令 12.2. 复杂命令 12.3. 时间/日期 命令 12.4. 文本处理命令 12.5. 文件与归档命令 12.6. 通讯命令 12.7. 终端控制命令 12.8. 数学计算命令 12.9. 混杂命令 13. 系统与管理命令 13.1. 分析一个系统脚本 14. 命令替换 15. 算术扩展 16. I/O重定向 16.1. 使用exec 16.2. 代码块重定向 16.3. 重定向的应用 17. Here Document 17.1. Here String 18. 休息片刻 第四部分. 高级主题 19. 正则表达式 19.1. 一份简要的正则表达式介绍 19.2. 通配(globbing) 20. 子shell 21. 受限shell 22. 进程替换 23. 函数 23.1. 复杂函数和函数复杂性 23.2. 局部变量 23.3. 不使用局部变量的递归 24. 别名 25. 列表结构 26. 数组 27. /dev和/proc 27.1. /dev 27.2. /proc 28. Zero与Null 29. 调试 30. 选项 31. 陷阱 32. 脚本编程风格 32.1. 非官方的Shell脚本编写风格 33. 杂项 33.1. 交互与非交互式的交互与非交互式的shell和脚本 33.2. Shell包装 33.3. 测试和比较: 一种可选的方法 33.4. 递归 33.5. 将脚本"彩色化" 33.6. 优化 33.7. 各种小技巧 33.8. 安全问题 33.9. 可移植性问题 33.10. Windows下的shell脚本 34. Bash, 版本2与版本3 34.1. Bash, 版本2 34.2. Bash, 版本3 35. 后记 35.1. 作者后记 35.2. 关于作者 35.3. 译者后记 35.3.1. 杨春敏 35.3.2. 黄毅 35.4. 在哪里可以获得帮助 35.5. 用来制作这本书的工具 35.5.1. 硬件 35.5.2. 软件与排版软件 35.6. 致谢 35.7. 译者致谢 参考文献 A. 捐献的脚本 B. 参考卡片 C. 一个学习Sed和Awk的小手册 C.1. Sed C.2. Awk D. 带有特殊含义的退出码 E. I/O和I/O重定向的详细介绍 F. 命令行选项 F.1. 标准命令行选项 F.2. Bash命令行选项 G. 重要的文件 H. 重要的系统目录 I. 本地化 J. 历史命令 K. 一个简单的.bashrc文件 L. 将DOS批处理文件转换为Shell脚本 M. 练习 M.1. 分析脚本 M.2. 编写脚本 N. 修订记录 O. 翻译版修订记录 P. 镜像站点 Q. To Do列表 R. 版权 表格清单 11-1. 作业标识符 30-1. Bash选项 33-1. 转义序列中颜色与数值的对应 B-1. 特殊的shell变量 B-2. 测试操作: 二元比较 B-3. 文件类型的测试操作 B-4. 参数替换和扩展 B-5. 字符串操作 B-6. 一些结构的汇总 C-1. 基本sed操作 C-2. sed操作符举例 D-1. "保留的"退出码 L-1. 批处理文件关键字 / 变量 / 操作符, 和等价的shell符号 L-2. DOS命令与UNIX的等价命令 N-1. 修订历史 O-1. 翻译版修订历史 例子清单 2-1. 清除: 清除/var/log下的log文件 2-2. 清除:一个改良的清除脚本 2-3. 清除: 一个增强的和广义的删除logfile的脚本 3-1. 代码块和I/O重定向 3-2. 将一个代码块的结果保存到文件 3-3. 在后台运行一个循环 3-4. 备份最后一天所有修改的文件 4-1. 变量赋值和替换 4-2. 简单的变量赋值 4-3. 简单和复杂, 两种类型的变量赋值 4-4. 整型还是字符串? 4-5. 位置参数 4-6. wh, whois节点名字查询 4-7. 使用shift命令 5-1. echo出一些诡异变量 5-2. 转义符 6-1. 退出/退出状态码 6-2. 反转一个条件的用法! 7-1. 什么是真? 7-2. test, /usr/bin/test, [ ], 和/usr/bin/[都是等价命令 7-3. 算术测试需要使用(( )) 7-4. 测试那些断掉的链接文件 7-5. 算术比较与字符串比较 7-6. 检查字符串是否为null 7-7. zmore 8-1. 最大公约数 8-2. 使用算术操作符 8-3. 使用&&和||进行混合条件测试 8-4. 数字常量表示法 9-1. $IFS与空白字符 9-2. 定时输入 9-3. 再来一个, 定时输入 9-4. 定时read 9-5. 我是root么? 9-6. arglist: 通过$*和$@列出所有的参数 9-7. $*和$@的不一致的行为 9-8. 当$IFS为空时的$*和$@ 9-9. 下划线变量 9-10. 在一个文本文件的段落之间插入空行 9-11. 转换图片文件格式, 同时更改文件名 9-12. 将音频流文件转换为ogg各式的文件 9-13. 模拟getopt 9-14. 提取字符串的另一种方法 9-15. 使用参数替换和错误消息 9-16. 参数替换和"usage"消息(译者注: 通常就是帮助信息) 9-17. 变量长度 9-18. 参数替换中的模式匹配 9-19. 修改文件扩展名: 9-20. 使用模式匹配来解析任意字符串 9-21. 对字符串的前缀和后缀使用匹配模式 9-22. 使用declare来指定变量的类型 9-23. 间接引用 9-24. 传递一个间接引用给awk 9-25. 产生随机整数 9-26. 从一幅扑克牌中取出一张随机的牌 9-27. 两个指定值之间的随机数 9-28. 用随机数来摇单个骰子 9-29. 重新分配随机数种子 9-30. 使用awk来产生伪随机数 9-31. C语言风格的变量操作 10-1. 一个简单的for循环 10-2. 每个[list]元素中都带有两个参数的for循环 10-3. 文件信息: 对包含在变量中的文件列表进行操作 10-4. 在for循环中操作文件 10-5. 在for循环中省略in [list]部分 10-6. 使用命令替换来产生for循环的[list] 10-7. 对于二进制文件的grep替换 10-8. 列出系统上的所有用户 10-9. 在目录的所有文件中查找源字串 10-10. 列出目录中所有的符号链接 10-11. 将目录中所有符号链接文件的名字保存到一个文件中 10-12. 一个C风格的for循环 10-13. 在batch mode中使用efax 10-14. 简单的while循环 10-15. 另一个while循环 10-16. 多条件的while循环 10-17. C风格的while循环 10-18. until循环 10-19. 嵌套循环 10-20. break和continue命令在循环中的效果 10-21. 多层循环的退出 10-22. 多层循环的continue 10-23. 在实际的任务中使用"continue N" 10-24. 使用case 10-25. 使用case来创建菜单 10-26. 使用命令替换来产生case变量 10-27. 简单的字符串匹配 10-28. 检查输入字符是否为字母 10-29. 使用select来创建菜单 10-30. 使用函数中的select结构来创建菜单 11-1. 一个fork出多个自身实例的脚本 11-2. 使用printf的例子 11-3. 使用read来进行变量分配 11-4. 当使用一个不带变量参数的read命令时, 将会发生什么? 11-5. read命令的多行输入 11-6. 检测方向键 11-7. 通过文件重定向来使用read命令 11-8. 管道输出到read中的问题 11-9. 修改当前工作目录 11-10. 使用"let"命令来做算术运算. 11-11. 展示eval命令的效果 11-12. 强制登出(log-off) 11-13. 另一个"rot13"版本 11-14. 在Perl脚本中使用eval命令来强制变量替换 11-15. 使用set命令来改变脚本的位置参数 11-16. 反转位置参数 11-17. 重新分配位置参数 11-18. "Unsett"一个变量 11-19. 使用export命令来将一个变量传递到一个内嵌awk的脚本中 11-20. 使用getopts命令来来读取传递给脚本的选项/参数 11-21. "includ"一个数据文件 11-22. 一个(没什么用的)source自身的脚本 11-23. exec命令的效果 11-24. 一个exec自身的脚本 11-25. 在继续处理之前, 等待一个进程的结束 11-26. 一个结束自身的脚本程序 12-1. 使用ls命令来创建一个烧录CDR的内容列表 12-2. 到底是Hello还是Good-bye 12-3. 糟糕的文件名, 删除当前目录下文件名中包含一些糟糕字符(包括空白的文件. 12-4. 通过文件的inode号来删除文件 12-5. Logfile: 使用xargs来监控系统log 12-6. 把当前目录下的文件拷贝到另一个文件中 12-7. 通过名字kill进程 12-8. 使用xargs分析单词出现的频率 12-9. 使用expr 12-10. 使用date命令 12-11. 分析单词出现的频率 12-12. 哪个文件是脚本? 12-13. 产生10-进制随机数 12-14. 使用tail命令来监控系统log 12-15. 在脚本中模拟"grep"的行为 12-16. 在1913年的韦氏词典中查找定义 12-17. 检查列表中单词的正确性 12-18. 转换大写: 把一个文件的内容全部转换为大写. 12-19. 转换小写: 将当前目录下的所有文全部转换为小写. 12-20. Du: DOS到UNIX文本文件的转换. 12-21. rot13: rot13, 弱智加密. 12-22. 产生"Crypto-Quote"游戏(译者: 一种文字游戏) 12-23. 格式化文件列表. 12-24. 使用column来格式化目录列表 12-25. nl: 一个自己计算行号的脚本. 12-26. manview: 查看格式化的man页 12-27. 使用cpio来拷贝一个目录树 12-28. 解包一个rpm归档文件 12-29. 从C文件中去掉注释 12-30. 浏览/usr/X11R6/bin 12-31. 一个"改进过"的strings命令 12-32. 在一个脚本中使用cmp命令来比较两个文件. 12-33. basename和dirname 12-34. 检查文件完整性 12-35. Uudecode编码后的文件 12-36. 查找滥用的链接来报告垃圾邮件发送者 12-37. 分析一个垃圾邮件域 12-38. 获得一份股票报价 12-39. 更新FC4(Fedora 4) 12-40. 使用ssh 12-41. 一个mail自身的脚本 12-42. 按月偿还贷款 12-43. 数制转换 12-44. 使用"here document"来调用bc 12-45. 计算圆周率 12-46. 将10进制数字转换为16进制数字 12-47. 因子分解 12-48. 计算直角三角形的斜边 12-49. 使用seq命令来产生循环参数 12-50. 字母统计 12-51. 使用getopt来分析命令行选项 12-52. 一个拷贝自身的脚本 12-53. 练习dd 12-54. 记录按键 12-55. 安全的删除一个文件 12-56. 文件名产生器 12-57. 将长度单位-米, 转化为英里 12-58. 使用m4 13-1. 设置一个新密码 13-2. 设置一个擦除字符 13-3. 保密密码: 关闭终端对于密码的echo 13-4. 按键检测 13-5. 扫描远程机器上的identd服务进程 13-6. 使用pidof命令帮忙kill一个进程 13-7. 检查一个CD镜像 13-8. 在一个文件中创建文件系统 13-9. 添加一个新的硬盘驱动器 13-10. 用umask将输出文件隐藏起来 13-11. killall, 来自于/etc/rc.d/init.d 14-1. 愚蠢的脚本策略 14-2. 将一个循环输出的内容设置到变量中 14-3. 找anagram(回文构词法, 可以将一个有意义的单词, 变换为1个或多个有意义的单词, 但是还是原来的子母集合) 16-1. 使用exec重定向stdin 16-2. 使用exec来重定向stdout 16-3. 使用exec在同一个脚本中重定向stdin和stdout 16-4. 避免子shell 16-5. while循环的重定向 16-6. 重定向while循环的另一种形式 16-7. 重定向until循环 16-8. 重定向for循环 16-9. 重定向for循环(stdin和stdout都进行重定向) 16-10. 重定向if/then测试结构 16-11. 用于上面例子的"names.data"数据文件 16-12. 事件纪录 17-1. 广播: 将消息发送给每个登陆的用户 17-2. 虚拟文件: 创建一个2行的虚拟文件 17-3. 使用cat的多行消息 17-4. 带有抑制tab功能的多行消息 17-5. 使用参数替换的here document 17-6. 上传一个文件对到"Sunsite"的incoming目录 17-7. 关闭参数替换 17-8. 生成另外一个脚本的脚本 17-9. Here document与函数 17-10. "匿名"的here Document 17-11. 注释掉一段代码块 17-12. 一个自文档化(self-documenting)的脚本 17-13. 在一个文件的开头添加文本 17-14. 分析一个邮箱 20-1. 子shell中的变量作用域 20-2. 列出用户的配置文件 20-3. 在子shell中进行并行处理 21-1. 在受限模式下运行脚本 23-1. 简单函数 23-2. 带参数的函数 23-3. 函数与传递给脚本的命令行参数 23-4. 将一个间接引用传递给函数 23-5. 对一个传递给函数的参数进行解除引用的操作 23-6. 再来一次, 对一个传递给函数的参数进行解除引用的操作 23-7. 取两个数中的最大值 23-8. 将阿拉伯数字转化为罗马数字 23-9. 测试函数最大的返回值 23-10. 比较两个大整数 23-11. 从username中取得用户的真名 23-12. 局部变量的可见范围 23-13. 使用局部变量的递归 23-14. 汉诺塔 24-1. 用在脚本中的别名 24-2. unalias: 设置与删除别名 25-1. 使用"与列表"来测试命令行参数 25-2. 使用"与列表"来测试命令行参数的另一个例子 25-3. 将"或列表"和"与列表"结合使用 26-1. 简单的数组使用 26-2. 格式化一首诗 26-3. 多种数组操作 26-4. 用于数组的字符串操作 26-5. 将脚本的内容赋值给数组 26-6. 一些数组专用的小道具 26-7. 空数组与包含空元素的数组 26-8. 初始化数组 26-9. 拷贝和连接数组 26-10. 关于串联数组的更多信息 26-11. 一位老朋友: 冒泡排序 26-12. 嵌套数组与间接引用 26-13. 复杂的数组应用: 埃拉托色尼素数筛子 26-14. 模拟一个下推堆栈 26-15. 复杂的数组应用: 探索一个神秘的数学序列 26-16. 模拟一个二维数组, 并使他倾斜 27-1. 利用/dev/tcp来检修故障 27-2. 找出与给定PID相关联的进程 27-3. 网络连接状态 28-1. 隐藏令人厌恶的cookie 28-2. 使用/dev/zero来建立一个交换文件 28-3. 创建一个ramdisk 29-1. 一个错误脚本 29-2. 缺少关键字 29-3. test24, 另一个错误脚本 29-4. 使用"assert"来测试条件 29-5. 捕获exit 29-6. Control-C之后, 清除垃圾 29-7. 跟踪一个变量 29-8. 运行多进程(在对称多处理器(SMP box)的机器上) 31-1. 数字比较与字符串比较并不相同 31-2. 子shell缺陷 31-3. 将echo的输出通过管道传递给read命令 33-1. shell包装 33-2. 稍微复杂一些的shell包装 33-3. 一个通用的shell包装, 用来写日志文件 33-4. 包装awd脚本的shell包装 33-5. 另一个包装awd脚本的shell包装 33-6. 将Perl嵌入到Bash脚本中 33-7. 将Bash和Perl脚本写到同一个文件中 33-8. 递归调用自身的(没用的)脚本 33-9. 递归调用自身的(有用的)脚本 33-10. 另一个递归调用自身的(有用的)脚本 33-11. 一个"彩色的"地址数据库 33-12. 画一个盒子 33-13. 显示彩色文本 33-14. "赛马"游戏 33-15. 返回值小技巧 33-16. 返回多个值的技巧 33-17. 传递数组到函数, 从函数中返回数组 33-18. anagram游戏 33-19. 从shell脚本中调用窗口部件 34-1. 字符串扩展 34-2. 间接变量引用 - 新方法 34-3. 使用间接变量引用的简单数据库应用 34-4. 使用数组和其他的小技巧来处理4人随机打牌 A-1. mailformat: 格式化一个e-mail消息 A-2. rn: 一个非常简单的文件重命名工具 A-3. blank-rename: 重命名包含空白的文件名 A-4. encryptedpw: 使用一个本地加密口令, 上传到一个ftp服务器. A-5. copy-cd: 拷贝一个数据CD A-6. Collatz序列 A-7. days-between: 计算两个日期之间天数差 A-8. 构造一个"字典" A-9. Soundex转换 A-10. "Game of Life" A-11. "Game of Life"的数据文件 A-12. behead: 去掉信件与新消息的头 A-13. ftpget: 通过ftp下载文件 A-14. password: 产生随机的8个字符的密码 A-15. fifo: 使用命名管道来做每日的备份 A-16. 使用模操作符来产生素数 A-17. tree: 显示目录树 A-18. string functions: C风格的字符串函数 A-19. 目录信息 A-20. 面向对象数据库 A-21. hash函数库 A-22. 使用hash函数来给文本上色 A-23. 深入hash函数 A-24. 挂载USB keychain型的存储设备 A-25. 保存weblog A-26. 保护字符串的字面含义 A-27. 不保护字符串的字面含义 A-28. 鉴定是否是垃圾邮件服务器 A-29. 垃圾邮件服务器猎手 A-30. 使得wget更易用 A-31. 一个"podcasting"(译者: 指的是在互联网上发布音视频文件, 并允许用户订阅并自动接收的方法)脚本 A-32. 基础回顾 A-33. 一个扩展的cd命令 C-1. 计算字符出现次数 K-1. .bashrc文件样本 L-1. VIEWDATA.BAT: DOS批处理文件 L-2. viewdata.sh: 转换自VIEWDATA.BAT的shell脚本 Q-1. 打印服务器环境
46KB
SandcastleGUI
2009-06-24This product is an free userinterface for the Microsoft's Sandcastle that creates help documentation for .NET assemblies. SandcastleGUI has several additions made to the default Sandcastle generated output, such as: - Support for online MSDN-links. - Documenting of specified namespaces instead of entire assemblies. - Multiple output templates. - Multiple output types (website and/or .CHM-file). - Multiple language syntax declarations. - Custom header (company logo and productname). - Custom footer (copyright line). - Custom images can be inserted into XML-documentation. - C# syntax formatted code examples (colors and code-folding). - Table of contents and search capablity (website output type). - Resolved generic typenames (Dictionary<string, int> instead of Dictionary~2). - Sorted namespaces. - Sorted class/interface members.
5.40MB
Software.Requirements.2nd.Edition
2008-05-13来自Microsoft Press的一本讲解软件工程中用户需求的电子书 Part I - Software Requirements – What, Why, and Who Chapter 1 - The Essential Software Requirement Chapter 2 - Requirements from the Customer's Perspective Chapter 3 - Good Practices for Requirements Engineering Chapter 4 - The Requirements Analyst Part II - Software Requirements Development Chapter 5 - Establishing the Product Vision and Project Scope Chapter 6 - Finding the Voice of the Customer Chapter 7 - Hearing the Voice of the Customer Chapter 8 - Understanding User Requirements Chapter 9 - Playing by the Rules Chapter 10 - Documenting the Requirements Chapter 11 - A Picture Is Worth 1024 Words Chapter 12 - Beyond Functionality – Software Quality Attributes Chapter 13 - Risk Reduction Through Prototyping Chapter 14 - Setting Requirement Priorities Chapter 15 - Validating the Requirements Chapter 16 - Special Requirements Development Challenges Chapter 17 - Beyond Requirements Development Part III - Software Requirements Management Chapter 18 - Requirements Management Principles and Practices Chapter 19 - Change Happens Chapter 20 - Links in the Requirements Chain Chapter 21 - Tools for Requirements Management Part IV - Implementing Requirements Engineering Chapter 22 - Improving Your Requirements Processes Chapter 23 - Software Requirements and Risk Management
1.46MB
clucene源码
2012-01-05大名鼎鼎的clucene,是lucene的c++ 版; CLucene README ============== ------------------------------------------------------ CLucene is a C++ port of Lucene. It is a high-performance, full-featured text search engine written in C++. CLucene is faster than lucene as it is written in C++. ------------------------------------------------------ CLucene has contributions from many, see AUTHORS CLucene is distributed under the GNU Lesser General Public License (LGPL) *or* the Apache License, Version 2.0 See the LGPL.license and APACHE.license for the respective license information. Read COPYING for more about the license. Installation ------------ * For Linux, MacOSX, cygwin and MinGW build information, read INSTALL. * Boost.Jam files are provided in the root directory and subdirectories. * Microsoft Visual Studio (6&7) are provided in the win32 folder. Mailing List ------------ Questions and discussion should be directed to the CLucene mailing list at clucene-developers@lists.sourceforge.net Find subscription instructions at http://lists.sourceforge.net/lists/listinfo/clucene-developers Suggestions and bug reports can be made on our bug tracking database (http://sourceforge.net/tracker/?group_id=80013&atid=558446) The latest version ------------------ Details of the latest version can be found on the CLucene sourceforge project web site: http://www.sourceforge.net/projects/clucene Documentation ------------- Documentation is provided at http://clucene.sourceforge.net/doc/doxygen/html/ You can also build your own documentation by running doxygen from the root directory of clucene. CLucene is a very close port of Java Lucene, so you can also try looking at the Java Docs on http://lucene.apache.org/java/ Performance ----------- Very little benchmarking has been done on clucene. Andi Vajda posted some limited statistics on the clucene list a while ago with the following results. There are 250 HTML files under $JAVA_HOME/docs/api/java/util for about 6108kb of HTML text. org.apache.lucene.demo.IndexFiles with java and gcj: on mac os x 10.3.1 (panther) powerbook g4 1ghz 1gb: . running with java 1.4.1_01-99 : 20379 ms . running with gcj 3.3.2 -O2 : 17842 ms . running clucene 0.8.9's demo : 9930 ms I recently did some more tests and came up with these rough tests: 663mb (797 files) of Guttenberg texts on a Pentium 4 running Windows XP with 1 GB of RAM. Indexing max 100,000 fields ?Jlucene: 646453ms. peak mem usage ~72mb, avg ~14mb ram ?Clucene: 232141. peak mem usage ~60, avg ~4mb ram Searching indexing using 10,000 single word queries ?Jlucene: ~60078ms and used ~13mb ram ?Clucene: ~48359ms and used ~4.2mb ram Platform notes -------------- 'Too many open files' Some platforms don't provide enough file handles to run CLucene properly. To solve this, increase the open file limit: On Solaris: ulimit -n 1024 set rlim_fd_cur=1024 Acknowledgments ---------------- The Apache Lucene project is the basis for this software, so the biggest acknoledgment goes to that project. We wish to acknowledge the following copyrighted works that make up portions of the CLucene software: This software contains code derived from the RSA Data Security Inc. MD5 Message-Digest Algorithm. CLucene relies heavily on the use of autoconf and libtool to provide a build environment. Memory Management ------------------ Memory in CLucene has been a bit of a difficult thing to manage because of the unclear specification about who owns what memory. This was mostly a result of CLucene's java-esque coding style that was a result of porting from java to c++ without too much re-writing of the API. However, CLucene is slowly improving in this respect and we try and follow these development and coding rules (though we dont guarantee that they are all met at this stage): 1. Whenever possible the caller must create the object that is being filled. For example: IndexReader->getDocument(id, document); As opposed to the old method of document = IndexReader->getDocument(id); 2. Clone always returns a new object that must be cleaned up manually. Questions: 1. What should be the convention for an object taking ownership of memory? Documenting this would be a minimum.
C++入门基础视频精讲
2018-09-28本课程讲述了c++的基本语言,进阶语言,以实战为基准,高效率传递干货, 教会学员命令行编译直击底层过程,现场编码 并且掌握各种排错思路
Javascript前端开发
2018-03-14JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
C语言入门--必须基础17讲
2017-07-28适合没有基础的人群学习C语言,简单的入门教程。帮助小白理解什么是开发,什么是编程。做的很简单,很多细节没有详细讲解,不适合用来深入研究。学了这个,你能理解什么是编程,什么是C语言。
征服C++ 11视频精讲
2016-09-02<p> <span style="color:#337FE5;"><strong>【为什么还需要学习C++?】</strong></span> </p> <p style="margin-left:0cm;"> 你是否接触很多语言,但从来没有了解过编程语言的本质? </p> <p style="margin-left:0cm;text-align:start;"> 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? </p> <p style="margin-left:0cm;text-align:start;"> 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹? </p> <p style="margin-left:0cm;text-align:start;"> </p> <p style="margin-left:0cm;text-align:start;"> 那么C++就是你个人能力提升,职业之路进阶的不二之选。 </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p style="margin-left:0cm;"> <strong><span style="color:#337FE5;">【课程特色】</span></strong> </p> <p style="margin-left:0cm;text-align:start;"> 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 </p> <p style="margin-left:0cm;text-align:start;"> 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 </p> <p style="margin-left:0cm;text-align:start;"> 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p class="ql-long-24357476"> <span style="color:#337FE5;"><strong>【学完后我将达到什么水平?】</strong></span> </p> <p class="ql-long-24357476"> 1.对C++的各个知识能够熟练配置、开发、部署; </p> <p class="ql-long-24357476"> 2.吊打一切关于C++的笔试面试题; </p> <p class="ql-long-24357476"> 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 </p> <p class="MsoNoSpacing" style="margin-left:18pt;"> <br /> </p> <div> <br /> </div> <p> <br /> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#337FE5;"><strong>【面向人群】</strong></span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">1.希望一站式快速入门的C++初学者;</span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">2.希望快速学习 C++、掌握编程要义、修炼内功的开发者;</span> </p> <p style="margin-left:0cm;text-align:start;"> <span style="color:#222226;font-family:PingFangSC-Regular, "font-size:14px;background-color:#FFFFFF;">3.有志于挑战更高级的开发项目,成为资深开发的工程师。</span> </p> <p style="margin-left:0cm;text-align:start;"> <br /> </p> <p> <br /> </p> <p> <span style="color:#337FE5;"><strong>【课程设计】</strong></span> </p> <p> 本课程包含3大模块 </p> <p> <strong>基础篇</strong><br /> 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 </p> <p> <br /> <strong>进阶篇</strong><br /> 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 </p> <p> <br /> <strong>提升篇:</strong><br /> 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。 </p> <p> <img src="https://img-bss.csdnimg.cn/202007091130239667.png" alt="" /> </p>
YOLOv4目标检测实战:人脸口罩佩戴检测
2020-05-03<span style="color:#E53333;"><span style="color:#000000;"> </span></span> <p style="font-size:16px;"> <span style="color:#3A4151;">课程演示环境:Ubuntu </span> </p> <p style="font-size:16px;"> </p><p> <span><span style="color:#0070C0;">需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》</span></span> </p> <p> <span><span style="color:#0070C0;">课程链接:https://edu.csdn.net/course/detail/29123</span></span> </p> <p style="font-size:16px;"> <span style="background-color:#FFFFFF;">当前,人脸口罩佩戴检测是急需的应用,而YOLOv4是最新的强悍的目标检测技术。本课程使用</span><strong><span style="color:#C00000;">YOLOv4实现实时的人脸口罩佩戴检测</span></strong><span style="background-color:#FFFFFF;">。课程提供</span><strong><span style="color:#C00000;">超万张已标注人脸口罩数据集</span></strong><span style="background-color:#FFFFFF;">。训练后的YOLOv4可对真实场景下人脸口罩佩戴进行</span><span style="background-color:#FFFFFF;">高精度地</span><span style="background-color:#FFFFFF;">实时检测。</span> </p> <p style="font-size:16px;"> <span style="background-color:#FFFFFF;"><br /></span> </p> <p style="font-size:16px;"> <span><span style="background-color:#FFFFFF;"><span style="font-size:16px;">本课程会讲述本项目超万张人脸口罩数据集的制作方法,包括使用labelImg标注工具标注以及如何使用Python代码对第三方数据集进行修复和清洗。</span><br /></span></span> </p> <p style="font-size:16px;"> <span><span style="background-color:#FFFFFF;"><br /></span></span> </p> <p style="font-size:16px;"> 本课程的YOLOv4使用AlexyAB/darknet,在Ubuntu系统上做项目演示。具体项目过程包括:安装YOLOv4、训练集和测试集自动划分、修改配置文件、训练网络模型、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类分析。 </p> <p style="font-size:16px;"> <br /></p> <p style="font-size:16px;"> <br /></p> <p style="font-size:16px;"> <img src="https://img-bss.csdn.net/202005200601524939.jpg" alt="" /></p> <p style="font-size:16px;"> <strong>YOLOv4人脸口罩佩戴检测效果</strong> </p> <p style="font-size:16px;"> <img src="https://img-bss.csdn.net/202005200603052758.jpg" alt="" /></p> <p style="font-size:16px;"> <br /></p> <span style="color:#000000;"></span>
基于SSM技术的在线商城系统[实战视频]
2018-07-04本课程基于【SSM】【Maven】【BootStrap】【MySQL】【BootStrap】技术,使用IntelliJ IDEA开发工具。 主要是锻炼SSM技术的运用,通过项目实战,加强对框架技术的理解和运用,如果你是SSM的初学者,这套视频课程适合你!!
Java面试Offer直通车
2019-12-18<p> <b><span style="font-size:14px;"></span><span style="font-size:14px;background-color:#FFE500;">【Java面试宝典】</span></b><br /> <span style="font-size:14px;">1、68讲视频课,500道大厂Java常见面试题+100个Java面试技巧与答题公式+10万字核心知识解析+授课老师1对1面试指导+无限次回放</span><br /> <span style="font-size:14px;">2、这门课程基于胡书敏老师8年Java面试经验,调研近百家互联网公司及面试官的问题打造而成,从筛选简历和面试官角度,给出能帮助候选人能面试成功的面试技巧。</span><br /> <span style="font-size:14px;">3、通过学习这门课程,你能系统掌握Java核心、数据库、Java框架、分布式组件、Java简历准备、面试实战技巧等面试必考知识点。</span><br /> <span style="font-size:14px;">4、知识点+项目经验案例,每一个都能做为面试的作品展现。</span><br /> <span style="font-size:14px;">5、本课程已经在线下的培训课程中经过实际检验,老师每次培训结束后,都能帮助同学们运用面试技巧,成功找到更好的工作。</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【超人气讲师】</b></span><br /> <span style="font-size:14px;">胡书敏 | 10年大厂工作经验,8年Java面试官经验,5年线下Java职业培训经验,5年架构师经验</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【报名须知】</b></span><br /> <span style="font-size:14px;">上课模式是什么?</span><br /> <span style="font-size:14px;">课程采取录播模式,课程永久有效,可无限次观看</span><br /> <span style="font-size:14px;">课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化</span><br /> <br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><strong>如何开始学习?</strong></span><br /> <span style="font-size:14px;">PC端:报名成功后可以直接进入课程学习</span><br /> <span style="font-size:14px;">移动端:<span style="font-family:Helvetica;font-size:14px;background-color:#FFFFFF;">CSDN 学院APP(注意不是CSDN APP哦)</span></span> </p>
-
下载
浙江省杭州市长征中学2020-2021学年高二下学期阶段性练习生物试卷 Word版含答案.doc
浙江省杭州市长征中学2020-2021学年高二下学期阶段性练习生物试卷 Word版含答案.doc
-
下载
2021届安徽省黄山市高三毕业班第二次质量检测(二模)英语答案.docx
2021届安徽省黄山市高三毕业班第二次质量检测(二模)英语答案.docx
-
下载
上海市崇明区2021届高三下学期4月第二次高考模拟考试(二模)数学试题 Word版含答案.docx
上海市崇明区2021届高三下学期4月第二次高考模拟考试(二模)数学试题 Word版含答案.docx
-
下载
KEIL_V4_ARM模板.rar
KEIL_V4_ARM模板.rar
-
下载
天津市南开区2021届高三下学期3月模拟考试(一)语文试题 Word版含答案.docx
天津市南开区2021届高三下学期3月模拟考试(一)语文试题 Word版含答案.docx
-
下载
河南省焦作市2021届高三下学期3月第三次模拟考试 数学(理) Word版含答案bychun.doc
河南省焦作市2021届高三下学期3月第三次模拟考试 数学(理) Word版含答案bychun.doc
-
下载
湖北省沙市中学2020-2021学年高二下学期4月双周练地理试题及答案.docx
湖北省沙市中学2020-2021学年高二下学期4月双周练地理试题及答案.docx
-
下载
黑龙江省龙西北地区八校2020-2021学年高二下学期3月联考 数学(理) Word版含答案bychun.doc
黑龙江省龙西北地区八校2020-2021学年高二下学期3月联考 数学(理) Word版含答案bychun.doc
-
下载
山东省莘州中学2020-2021学年高二下学期第一次月考物理试题 Word版含答案.doc
山东省莘州中学2020-2021学年高二下学期第一次月考物理试题 Word版含答案.doc
-
下载
河北省唐山市2021届高三下学期4月学业水平选择性考试第二次模拟演练(二模)语文试题 Word版含答案.docx
河北省唐山市2021届高三下学期4月学业水平选择性考试第二次模拟演练(二模)语文试题 Word版含答案.docx
