月份:2018年2月

Shell:验证json文件各式是否正确, Validate JSON from the command line on Linux, Format JSON with Python

  现在以json为数据传输格式的RESTful接口非常流行。为调试这样的接口,一个常用的办法是使用curl命令: curl http://somehost.com/some-restful-api 对于返回的json字符串,一般在服务端不加处理的情况下,都是没有任何’\t’和’\n’的。为了方便查看,在bash上可以简单地对它进行格式化: curl http://somehost.com/some-restful-api | python -m json.tool 当然这要求机器上安装了python,其实也就是利用了json.tool这个程序。   一旦json文件格式不对,或者文件内容缺失或者其他问题,就会导致 python -m 命令无法格式化,正是利用这一点,我们可以做一个json的验证! 方法: cat <json… Read More

Shell:AWK 简明教程, AWK 入门教程, AWK 格式化输出, AWK 过滤记录, AWK 符串匹配, AWK 折分文件, AWK 分割字符串等实例

awk简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的,在linux系统中已把awk链接到gawk,所以下面全部以awk进行介绍。 awk命令格式和选项 awk的语法有两种形式 awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s) 命令选项 选项… Read More

Shell:SED 简明教程, 流编辑器 SED 全教程, sed入门详解教程

sed 是一个比较古老的,功能十分强大的用于文本处理的流编辑器,加上正则表达式的支持,可以进行大量的复杂的文本编辑操作。sed 本身是一个非常复杂的工具,有专门的书籍讲解 sed 的具体用法,但是个人觉得没有必要去学习它的每个细节,那样没有特别大的实际意义。网上也有很多关于 sed 的教程,我也是抱着学习的心态来学习 sed 的常见的用法,并进行系统的总结,内容基本覆盖了 sed 的大部分的知识点。文中的内容比较简练,加以实际示例来帮助去理解 sed 的使用。 一、写在前边 1、sed介绍 sed 全名为 stream editor,流编辑器,用程序的方式来编辑文本,功能相当的强大。是贝尔实验室的 Lee… Read More

Shell: Shell中while循环的陷阱, 变量实效, 无法赋值变量

  在写while循环的时候,发现了一个问题,在while循环内部对变量赋值、定义变量、数组定义等等环境,在循环外面失效。 一个简单的测试脚本如下: #!/bin/bash echo "abc xyz" | while read line do new_var=$line done echo new_var is null: $new_var? 执行结果证明,$new_var的结果是空值。在google上查了查,才发现问题出在管道上。加上自己的总结,特分享两个使用while循环时的陷阱。… Read More

Linux Shell:使用 SendGrid Email API 发送邮件, SendGrid App for google cloud platform, php, phython, shell script 发送邮件

什么是 SendGrid 电子邮件服务? SendGrid 是一项基于云的电子邮件服务,该服务提供了可靠的事务电子邮件传递、伸缩性、实时分析以及可用于简化自定义集成的灵活的 API。 常见 SendGrid 使用方案包括: 自动向客户发送收据 管理用于每月向客户发送电子传单和特惠产品/服务的通讯组列表 收集诸如已阻止的电子邮件和客户响应性等项目的实时度量值 生成用于帮助确定趋势的报告 转发客户查询 以电子邮件的形式从应用程序发送通知 有关详细信息,请参阅 https://sendgrid.com。 创建 SendGrid 帐户… Read More

Linux: Apache索引(目录浏览)设置, 禁止 Apache 显示目录索引, 自定义索引(目录浏览)样式

在浏览一些镜像文件站的时候,会发现网站目录是可以浏览文件(夹)列表的。只要 Web 服务器是基于 Apache 的网站都可以开启或禁止索引(目录浏览),那么如何实现禁止和开启显示目录索引呢? 一、禁止 Apache 显示目录索引 方法1、修改Apache配置文件[apache2.conf] # sudo vi /etc/apache2/apache2.conf # 没有的话,可以尝试 # sudo vi /etc/apache2/sites-available/000-default.conf #… Read More

Shell:无比强大的shell之json解析工具jq , Linux命令行解析json, jq解析 json 实例

  JSON是前端编程经常用到的格式,对于PHP或者Python,解析JSON都不是什么大事,尤其是PHP的json_encode和json_decode,干的相当的漂亮。Linux下也有处理处理JSON的神器:jq。 对于JSON格式而言,jq就像sed/awk/grep这些神器一样的方便,而也,jq没有乱七八糟的依赖,只需要一个binary文件jq,就足矣。下面我们看下jq的使用。 1. 安装 官网:https://stedolan.github.io/jq/download/ Linux jq 1.5 is in the official Debian and Ubuntu repositories. Install using sudo… Read More

Linux Shell系列教程之(十八) Shell 基本运算符

Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。 expr 是一款表达式计算工具,使用它能完成表达式的求值操作。 例如,两个数相加(注意使用的是反引号 ` 而不是单引号 ‘): #!/bin/bash val=`expr… Read More