zoukankan      html  css  js  c++  java
  • 高级Bash脚本编程指南

    http://tldp.org/LDP/abs/html/

    高级Bash脚本编程指南
    对脚本语言艺术的深入探索

    本教程不承担以前的脚本或编程知识,但进展迅速走向一个中级/高级水平的指令。..一直偷偷在细小的UNIX®智慧和学识。它作为一本教科书,一本手册,自学,并作为一个参考和知识的来源,壳牌的脚本技术。练习和大量的评论实例请读者参与,在这样的前提下,真正学习脚本的唯一途径是编写脚本。
    这本书是适合课堂使用的一般介绍编程的概念。
    本文件被授予公共领域。没有版权!

    奉献
    对于安妮塔,所有魔术的来源
    内容表
    第1部分。景区简介
    1。外壳编程!
    2。从一个沙砰的开始
    第2部分。基础
    3。特殊字符
    4。变量和参数介绍
    5。引用
    6。退出和退出状态
    7。试验
    8。操作及相关主题
    第3部分。超越基本
    9。另一个看变量
    10。操纵变量
    11。循环和分支
    12。命令替换
    13。运算扩展
    14。休息时间
    第4部分。命令
    15。内部命令和内部
    16。外部过滤器,程序和命令
    17。系统和行政命令
    第5部分。高级主题
    18。正则表达式
    19。这里的文件
    20。输入/输出重定向
    21。次壳层
    22。限制壳
    23。过程替换
    24。功能
    25。别名
    26。列表构造
    27。阵列
    28。间接引用
    29。/ dev / proc
    30。网络编程
    31。零点和零点
    32。调试
    33。选项
    34。陷阱
    35。风格的脚本
    36。杂记
    37。bash,版本2,3,和4
    38。尾注
    38.1。作者注
    38.2。关于作者
    38.3。去哪里求助
    38.4。用来制作这本书的工具
    38.5。信用
    38.6。免责声明
    参考书目
    贡献脚本
    参考卡片
    C.一个sed和awk微底漆
    c。SED
    2。awk
    D.解析和管理路径
    具有特殊意义的退出代码
    详细介绍了输入/输出和输入/输出重定向
    命令行选项
    1。标准命令行选项
    G。bash命令行选项
    重要文件
    一、重要的系统目录
    介绍可编程完成
    K定位
    历史命令
    M.样本。bash_profile文件.bashrc和。
    转换为脚本的批处理文件
    运动
    0.1。分析脚本
    O。书写脚本
    修订历史
    下载和镜像站点
    做列表
    版权所有
    T. ASCII表
    指数
    表格列表
    8-1。运算符优先级
    15-1。作业标识符
    33-1。Bash的选项
    36-1。数字表示的颜色在逃避序列
    B-1。特殊壳体变量
    B-2。测试运算符:二进制比较
    B-3。测试运营商:文件
    B-4。参数替换与扩展
    B-5。字符串操作
    B6。杂构造
    C-1。基本命令
    C-2。SED算子实例
    E-1。保留退出码
    N-1。批处理文件的关键字/变量/运营商,以及它们的壳等价物
    N-2。DOS命令和对应的UNIX
    P-1。修订历史


    实例列表
    2-1。清理:清理日志文件的脚本/无功/日志
    2-2。清理:一种改进的清理脚本
    23。清理:一个增强和广义版本的上述脚本。
    3-1。代码块和输入/输出重定向
    3-2。节省代码块到文件的输出
    3-3。在后台运行一个循环
    3-4。备份所有文件在最后一天发生了变化
    4-1。变量赋值和替换
    4-2。纯变量赋值
    4-3。变量赋值,纯和想象
    4-4。整数还是字符串?
    4-5。位置参数
    4-6。WH,Whois域名查询
    4-7。移位
    5-1。奇怪的变量
    5-2。逃离人物
    5-3。检测按键
    6-1。退出/退出状态
    6-2。否定条件使用!
    7-1。什么是真理?
    7-2。等价测试,/usr/bin /测试,[ ],和/usr/bin / [
    7-3。算术测试(())
    7-4。断开连接的测试
    7-5。运算和字符串比较
    7-6。测试字符串是否为空
    7-7。zmore
    8-1。最大公约数
    8-2。使用算术运算
    8-3。使用&&和| |复合条件试验
    8-4。数值常数表示
    8-5。操纵变量C
    9-1。如果美元和空白
    9-2。定时输入
    9-3。再一次,定时输入
    9-4。定时读取
    9-5。我是根吗?
    9-6。阿格列斯:上市的论点与$ * $ @
    9-7。不一致的$ *和$ @行为
    9-8。*美元美元美元@当IFS是空的
    9-9。下划线变量
    9-10。使用声明类型变量
    9-11。产生随机数
    9-12。从一副牌中挑选一张牌
    9-13。布朗运动仿真
    9-14。随机值
    9-15。带随机的单芯片
    9-16。补种的随机
    9-17。伪随机数,使用awk
    10-1。在文本文件中插入段落之间的空白行
    10-2。产生一个字符的随机字符串
    10-3。转换图形文件格式,文件名更改
    10-4。转换音频文件支持
    10-5。仿真getopt
    10-6。提取和定位子串的替代方法
    10-7。使用参数替换和错误消息
    10-8。参数替换和“使用”消息
    10-9。变量的长度
    10-10。参数替换中的模式匹配
    10-11。重命名文件扩展名:
    10-12。利用模式匹配来解析任意字符串
    10-13。字符串的前缀或后缀的匹配模式

    11-1。简单的循环
    11-2。在每一个元素中有2个参数的循环
    11-3。FileInfo:操作在文件列表中包含的变量
    11-4。一个参数化的文件列表操作
    11-5。用一个循环操作文件
    11-6。在[列表]中缺少的
    11-7。在命令替换循环中生成[列表]
    11-8。一个二进制文件的查找替换
    11-9。在系统中列出所有用户
    11-10。检查所有的二进制文件在一个目录中的作者
    11-11。列出目录中的符号链接
    11-12。一个目录中的符号链接,保存到一个文件中
    11-13。C环
    11-14。在批处理模式下使用数码传真
    11-15。简单循环
    11-16。另一个循环
    11-17。多条件循环
    11-18。在一个while循环语法风格
    11-19。循环
    11-20。嵌套循环
    11-21。中断和继续在一个循环中的作用
    11-22。打破多个循环的水平
    11-23。继续在一个较高的循环水平
    11-24。在实际任务中继续使用
    11-25。使用案例
    11-26。创建菜单使用案例
    11-27。使用命令替换生成变量
    11-28。简单字符串匹配
    11-29。检查拼音输入
    11-30。使用选择创建菜单
    11-31。在函数中创建菜单使用
    12-1。愚蠢的剧本
    12-2。从循环中产生一个变量
    12-3。发现字谜
    15-1。一个脚本,生成多个实例本身
    15-2。printf在行动
    15-3。变量赋值,使用读
    15-4。当读到没有变量时会发生什么
    15-5。多行输入读取
    15-6。检测箭头键
    7。使用读文件重定向
    15-8。从管道读问题
    15-9。更改当前工作目录
    15-10。让我们做算术。
    15-11。显示的效果评价
    15-12。使用eval来选择变量之间
    15-13。呼应命令行参数
    15-14。强制注销
    15-15。一个版本的rot13
    15-16。利用位置参数设置
    15-17。倒车位置参数
    15-18。指定的位置参数
    15-19。”“一个不可变的
    15-20。利用出口来传递变量到一个嵌入式的awk脚本
    15-21。使用getopts阅读选项/参数传递给脚本
    15-22。”包括“数据文件
    15-23。一个(无用的)脚本,来源本身
    15-24。影响执行
    15-25。一个脚本执行的本身
    15。等待一个进程,完成前处理
    15-27。一种杀死自己的剧本

    16-1。使用ls燃烧光盘创建目录
    16-2。你好或再见
    16-3。badname,消除当前目录包含字符和空格的文件名不好。
    16-4。删除一个文件的inode号
    16-5。日志文件:使用xargs监控系统日志
    16-6。复制当前目录下的文件到另一个目录
    16-7。杀害过程的名称
    16-8。使用xargs词频分析
    16-9。使用表达式
    16-10。使用日期
    16-11。日期计算
    16胜12。字频率分析
    16-13。哪些文件是脚本?
    16-14。产生10位随机数
    16-15。用尾巴来监视系统日志
    16-16。打印出存储电子邮件信息中的行
    16-17。仿真grep在脚本
    16-18。字谜求解
    16-19。查韦氏字典定义1913
    16-20。在一个列表中检查单词的有效性
    16-21。向上:把文件全部转换为大写。
    16-22。小写:改变工作目录下的所有文件名为小写。
    16-23。杜:DOS到UNIX文本文件的转换。
    16-24。rot13:超弱加密。
    16-25。产生“密码引用“拼图
    16-26。格式化文件列表。
    16-27。使用列来格式化目录列表
    16-28。NL:自编号脚本。
    16-29。manview:查看格式化联机
    16-30。使用cpio移动一个目录树
    16-31。开箱RPM档案
    16-32。从C++程序文件中剥离注释
    16-33。探索/ usr / X11R6 /箱
    16-34。一种“改进”的字符串命令
    16-35。使用CMP脚本中比较两个文件。
    16-36。basename和目录
    18-37。一个脚本,它在部分中复制它自己
    16-38。检查文件的完整性
    16-39。uudecoding编码的文件
    16-40。找出报告垃圾邮件发送者
    16-41。垃圾邮件域分析
    1642。获得股票报价
    16-43。更新FC4
    16-44。使用SSH
    16-45。邮件本身的脚本
    16-46。产生素数
    16-47。按月支付按揭
    16-48。基础转换
    入院。在公元前使用这里的文件
    16-50。计算
    46。将一个十进制数进制
    16~52。保理业务
    16-53。计算一个三角形的斜边
    16~54。使用SEQ产生回路参数
    16-55。字母计数
    其中。使用getopt来解析命令行选项
    16-57。复制自己的脚本
    16-58。锻炼DD
    16-59。捕获击键
    16-60。准备一个可启动的Raspberry Pi的SD卡
    16-61。安全删除文件
    16~62。文件名生成器
    - 63。转换米到英里
    64。用M4
    17-1。设置新密码
    17-2。设置擦除字符
    17-3。密码:关闭终端呼应
    17-4。按键检测
    17-5。检查identd获取远程服务器
    17-6。pidof帮助杀死进程
    17-7。检查光盘图像
    17-8。在文件中创建文件系统
    17-9。增加一个新的硬盘
    17-10。使用umask隐藏窥探一个输出文件
    17-11。背光:改变(笔记本电脑)屏幕背光亮度
    17-12。killall,从/etc/rc。D D /初始化。

    19-1。广播:发送消息给每个登录的人
    19-2。假档案:创建一个虚拟文件2
    19-3。使用猫的多线信息
    19-4。多行消息,用制表符抑制
    19-5。可替换参数的文档
    19-6。上传一个文件对sunsite传入的目录
    197。参数替换
    打。产生另一个脚本的脚本
    19-9。这里的文件和功能
    权宜之计。”匿名“这里文件
    19-11。注释掉代码块
    19-12。一个自我记录的脚本
    19-13。前面加上一个线文件
    19-14。解析邮箱
    20-1。重定向stdin使用exec
    20-2。重定向stdout使用exec
    20-3。stdin和stdout重定向都在同一个脚本的执行
    20-4。避免壳层
    20-5。重定向循环
    20-6。循环的交替形式
    20-7。重定向到循环
    20-8。重定向循环
    20-9。回路(包括重定向stdin和stdout重定向)
    20-10。如果/然后测试重定向
    20-11。上述例子的数据文件names.data
    20-12。测井事件
    21-1。在一层的变量范围
    2。用户配置文件列表
    21-3。并行运行过程中的层
    22-1。在受限模式下运行脚本
    23-1。代码块重定向不分叉
    23-2。重定向过程替代输出成一个圈。
    24-1。简单函数
    2。函数参数
    24-3。功能和命令行参数传递给脚本
    24-4。间接引用的函数
    24-5。引用参数传递给函数
    24-6。再次,引用参数传递给函数
    24-7。最大值
    24-8。将数字转换为罗马数字
    24-9。在函数中测试大的返回值
    24-10。比较大整数
    24-11。实名实名
    24-12。局部变量可见性
    24-13。一个简单递归函数的演示
    24-14。另一个简单的演示
    24-15。递归,使用局部变量
    最高。斐波那契数列
    24-17。河内塔
    25-1。在一个脚本的别名
    25-2。unalias:设置和复位的别名
    26-1。使用和列表来测试命令行参数
    26-2。另一个命令行参数测试使用一个列表
    26-30。用或列表组合以和列表
    27-1。简单数组使用
    27-2。格式化一首诗
    27-3。各种数组运算
    27-4。数组的字符串操作
    27-5。将脚本的内容加载到数组中
    27-6。阵列的一些特殊性质
    27-7。空数组和空元素
    27-8。初始化数组
    27-9。复制和串联阵列
    27-10。在串联阵列
    27-11。气泡排序
    目前取得27胜12负。嵌入式阵列和间接引用
    27-13。筛法
    27-14。筛法,优化
    27-15。模拟一个下推栈
    27-16。复杂数组应用:探索一个奇怪的数学系列
    节。模拟一个二维数组,然后倾斜它
    28-1。间接变量引用
    28-2。通过间接引用awk
    29-1。使用/ dev / TCP故障排除
    29-2。演奏音乐
    29-3。寻找与一个控制的过程
    29。在线连接状态

    30-1。打印服务器环境
    30-2。地址
    31-1。藏饼干罐
    31-2。建立一个交换文件使用/dev/zero
    31-3。创建一个虚拟磁盘
    32-1。马车的脚本
    32-2。遗漏关键字
    可。测试脚本:另一个车
    32-4。用断言测试一个条件
    32-5。在出口处
    32-6。清理后,控制
    32-7。一个简单的执行进度条
    32-8。追踪变数
    32-9。运行多个进程(在一个SMP盒)
    34-1。数值和字符串比较不等价
    34-2。电子陷阱
    34-3。管道输出的回声读取
    36-1。外壳包装器
    36-2。一种更为复杂的壳包装器
    36-3。一个通用的外壳包装,写入日志文件
    36-4。在一个awk脚本外壳包装
    36-5。在另一个awk脚本外壳包装
    36-6。Perl中嵌入一个bash脚本
    36-7。Bash和Perl脚本相结合
    36-8。Python嵌入一个bash脚本
    36-9。说话的剧本
    36-10。一种递归调用的(无用的)脚本
    36-11。一种递归调用的(有用的)脚本
    36-12。一种递归调用的另一个(有用的)脚本
    36-13。“彩色”地址数据库
    36-14。画一个盒子
    36-15。呼应彩色文本
    36-16。“赛马”的游戏
    36-17。一个进度条
    36-18。返回值的诡计
    36-19。更多的返回值的诡计
    36-20。传递和返回阵列
    36-21。有趣的字谜
    36-22。从外壳脚本调用的小部件
    36-23。测试套件
    37-1。字符串扩展
    37-2。间接变量引用-新方法
    37-3。简单的数据库应用程序,使用间接变量引用
    37-4年。使用数组和其他弄虚作假造成四随机手牌
    37-5。一个简单的地址数据库
    37-6。更复杂的地址数据库
    37-7。测试字符
    37-8。阅读字符
    37-9。使用此处设置变量
    37-10。管道输入读取
    37-11。负阵指标
    37-12。字符串提取构造中的负参数
    A-1。mailformat:格式的电子邮件
    A-2。豆:一个头脑简单的文件重命名工具
    A-3。重命名:重命名文件名中包含空格的空白
    A-4。encryptedpw:上传到FTP站点,采用局部加密的密码
    A-5。复制光盘:复制数据光盘
    A-6。Collatz系列
    A-7。天之间:天的日期
    A-8。制作字典
    A-9。探测法转换
    A-10。生活游戏
    A-11。生命游戏的数据文件
    A-12。斩:删除的邮件和新闻邮件标题
    13。密码:产生随机的8个字符的密码
    A-14。先进先出:每天备份,使用命名管道
    A-15。利用模算子生成素数
    48。树:显示一个目录树
    A-17。tree2:备用目录树的脚本
    A-18。字符串函数:C风格字符串函数
    A-19。目录信息
    20。哈希函数库
    21。上色使用Hash函数的文本
    22。更多关于哈希函数
    A 23。安装USB钥匙链存储设备
    A-24。转换为HTML
    A-25。保持博客
    26。保护字符串
    a-27。解密字符串
    a-28。垃圾邮件识别
    A-29。垃圾邮件猎杀
    A-30。让wget更容易使用
    31。一个播客脚本
    A-32。夜间备份到火线HD
    A-33。扩展光盘命令
    a-34。声卡安装脚本
    A-35。在文本文件中定位拆分段落
    使用。插入排序
    a-37。标准偏差
    A-38。对共享软件作者垫文件生成器
    a-39。一个网页编辑器
    a-40。玫瑰花瓣
    A-41。quacky:一perquackey型文字游戏
    a-42。尼姆
    A-43。命令行
    A-44。一个通用的shell脚本作业方案
    A-45。骑士之旅
    A - 46。魔术广场
    A-47。十五拼图
    A-48。河内的塔楼,图形版
    A-49。河内的塔楼,交替的图形版本
    A-50。getopt-simple.sh脚本的另一个版本
    a-51。用于标签扩展的版本usegetopt.sh实例附录
    蛋白A52。循环通过所有可能的颜色背景
    a-53。摩尔斯电码的实践
    a-54。Base64编码/解码
    a-55。插入文本文件中使用sed
    a-56。的gronsfeld密码
    安-57。数字发生器
    a-58。基础知识
    A-59。测试各种命令的执行时间
    A-60。关联阵列与传统阵列(执行时间)
    C-1。计数信的出现
    J-1。对于usegetopt.sh完成剧本
    M-1。bashrc文件样本。
    M-2。bash_profile文件。
    N-1。viewdata.bat:DOS批处理文件
    N-2。viewdata.sh:viewdata.bat shell脚本的转换
    T-1。一个生成ASCII表脚本
    T-2。另一个ASCII表脚本
    T-3。三分之一个ASCII表脚本,使用awk








  • 相关阅读:
    matplotlib数据可视化之柱形图
    xpath排坑记
    Leetcode 100. 相同的树
    Leetcode 173. 二叉搜索树迭代器
    Leetcode 199. 二叉树的右视图
    Leetcode 102. 二叉树的层次遍历
    Leetcode 96. 不同的二叉搜索树
    Leetcode 700. 二叉搜索树中的搜索
    Leetcode 2. Add Two Numbers
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/chenshoubiao/p/4828741.html
Copyright © 2011-2022 走看看