随笔分类 -  Shell

1
Shell编程等
摘要:最近做项目的时候,通过 Gflags Reload 时候 发现对于某些value中包含=%中文等字符的支持不够好,value被截断了。 经过分析后,发现程序对url切分是用=&为标准的,如果value中带有这样的特殊字符,必然导致截断。 解决的方法也很简单,框架默认对value进行进行了urldec 阅读全文
posted @ 2018-12-26 11:58 westfly 阅读(7030) 评论(0) 推荐(0)
摘要:之前写过一版 shell下解码url,下面给出另外一个版本 from https://gist.github.com/cdown/1163649 好用就行 阅读全文
posted @ 2017-06-18 20:00 westfly 阅读(625) 评论(0) 推荐(0)
摘要:Awk中调用shell命令需求 在awk中,有时候需要调用linux系统中命令,如计算字符串的MD5值,并保存下来。方法参考call a shell command from inside awk and pass some awk variables to the shell command c... 阅读全文
posted @ 2015-09-01 19:44 westfly 阅读(2308) 评论(0) 推荐(0)
摘要:http://aaronw.me/static/779.html封装了一下,有需要的拿走function url_decode(){ local url=$1 echo $url | awk 'BEGIN { for(i=0;i1); printf"%s",substr(i,1,R... 阅读全文
posted @ 2014-11-24 11:44 westfly 阅读(1637) 评论(1) 推荐(0)
摘要:概况Hadoop Streaming 是一个工具, 代替编写Java的实现类,而利用可执行程序来完成map-reduce过程。一个最简单的程序$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar-input myInputDirs... 阅读全文
posted @ 2014-06-17 11:10 westfly 阅读(1148) 评论(0) 推荐(0)
摘要:基本需求分析完数据后,一般需要将数据以附件的形式发送处理,这个已经在《》中有介绍,如何用Python实现附件的发送。但不是所有人都关心附件的内容,一般邮件中需要有些概要的信息,如附件信息的统计信息等。这就需要以表格的形式发送出来。如何设计一个通用的产生Table的函数,对模块的复用性大有益处。一个表格必备的有表格名,表格各列的解释,数据。如下是我的尝试(代码说明问题)function GenerateTable(){ local header="$1" local title="$2" shift 2 awk -v header="$heade 阅读全文
posted @ 2014-01-23 22:35 westfly 阅读(1945) 评论(0) 推荐(0)
摘要:其实不知道该起什么题目。先说下需求,线上的log是按照五分钟为粒度切分的,即每五分钟产生一个文件,19:04的log写入到1900结尾的log文件中,19:05写入到1905结尾的log文件中。在实时分析log的时候,往往需要我们将log的后缀拼接出来,如下是我实现的函数function GenLogSuffixFromUnixTime() { local unix_time=$1 local minute=`date -d @$unix_time +%M` minute=$(((10 + minute)%10)) if [[ $minute -ge 5 ]]; then min... 阅读全文
posted @ 2014-01-23 22:19 westfly 阅读(2670) 评论(1) 推荐(0)
摘要:参考《Cygwin的包管理器:apt-cyg》cygwin下安装每次需要启动set_up,比较蛋疼,还是debian的apt方便,在网上看到应该cygwin下的apt,觉得不错。从http://apt-cyg.googlecode.com/svn/trunk/apt-cyg中获取bash源码。由于参考文章发表时间,当前http://mirrors.163.com/cygwin 有x86和x86_64两个目录。所以在不修改源码的情况下,将mirror的地址设置为http://mirrors.163.com/cygwin/x86_64。如果想通用些,一个思路是将version获取下来,代码如下un 阅读全文
posted @ 2014-01-12 13:03 westfly 阅读(1968) 评论(0) 推荐(0)
摘要:安装Cygwin可以参考《如何在Windows中通过Cygwin来使用Linux命令》。在Win8下貌似有个bug,需要将cygwin\bin\mintty 修改为cygwin\bin\mintty.exe,否则会出现无效的快捷方式的问题。关于如何安装ssh服务,参考文章《使用Cygwin通过ssh命令行来访问Windows7》,文章里面说得很清楚。由于mintty缺少tab功能,所以最好是让cygwin能够支持xshell这样比较好的ssh客户端。只需要修改默认的Administrator(替换成你的登录名)密码$passwd Administrator使用XShell连接localshot 阅读全文
posted @ 2014-01-12 11:59 westfly 阅读(567) 评论(0) 推荐(0)
摘要:shell中有个&,表示该程序在后台执行,其实是fork了一个子进程,跟系统调用是一样的。在实际的操作过程中,有时需要控制后台程序的个数,毕竟启动太多的后台,会对服务的性能造成影响。所以需要控制后台程序的个数。在Shell中,可以利用管道技术来实现,如下是程序的模板及其注释,有需要人可以拿去。#!/bin/bashfifo="/tmp/$$.fifo" #建立管道$$表示shell分配的进程号mkfifo $fifoexec 6$fifo #将fifo的fd与6号fd绑定thread_num=8 #启动的进程个数count=0;#预分配资源while [[ $c.. 阅读全文
posted @ 2014-01-10 15:04 westfly 阅读(1479) 评论(0) 推荐(0)
摘要:受到《autojump: 在命令行下快速更改目录》的鼓动,决定试用下这个软件。但ubuntu下的源貌似有些问题,sudo apt get install autojump后,死活提示j命令无法找到。无奈只能手动安装。官方的地址为https://github.com/joelthelion/autojumpgit clone https://github.com/joelthelion/autojump.git进入clone的目录,执行./install.sh其会在~/目录下建立.autojump文件夹。最后其会有提示如果你是zsh,添加如下到 ~/.zshrc[[ -s ~/.autojump 阅读全文
posted @ 2013-08-26 20:06 westfly 阅读(11034) 评论(1) 推荐(0)
摘要:之前需要用Python发送报表邮件,在网上找了下资料,基本上符合要求了。相关的示例如下,懂python的人应该都知道。from email.mime.text import MIMETextfrom email.Message import Messagefrom email.header import Headerdef send_mail(from_addr, to_list, sub, content) send_server = "smtp.163.com" msg = Message() msg['subject'] = sub msg[' 阅读全文
posted @ 2013-08-22 21:27 westfly 阅读(754) 评论(0) 推荐(0)
摘要:10 Useful du (Disk Usage) Commands to Find Disk Usage of Files and DirectoriesThe Linux “du” (Disk Usage) is a standard Unix/Linux command, used to check the information of disk usage of files and directories on a machine. The du command has many parameter options that can be used to get the results 阅读全文
posted @ 2013-08-13 17:49 westfly 阅读(760) 评论(0) 推荐(0)
摘要:写了个shell获取ip的函数,如下function GetLocalIP() { ifconfig | grep 'inet '| grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}' |head -n1}添加到crontab中执行,发现得到的ip_address为空。这是由于crontab中的环境变量与用户环境的环境变量不一样,因其不会从缺省的用户profile文件中读入环境变量参数,最简单的方法是用source命令(.)如 . /etc/profile; bash -x xxx.sh 即可 阅读全文
posted @ 2013-07-24 14:59 westfly 阅读(574) 评论(0) 推荐(0)
摘要:awk是不支持二维数组的,它的底层是一维数组,将两个key拼接为一维数组的key。如下是其初始化和遍历awk 'BEGIN{for(i=0;i< 3; ++i) for(j = 0; j < 4; ++j) dict[i,j]=100}{}END{ for( key in dict) { split(key, subkey, SUBSEP); print subkey[1], subkey[2], dict[subkey[1],subkey[2]] }}' $*主要核心代码为split处,awk使用一个特殊的字符串SUBSEP (\034)作为分割字段。类似一维数组 阅读全文
posted @ 2013-07-05 12:06 westfly 阅读(3235) 评论(0) 推荐(0)
摘要:最近看到一个网站可以提供pm2.5数据,但跟sina一样需要appkey。如果你跟我一样怕麻烦,那么这篇文章是为你写的。基本的思路是先获取网页,从网页中解析出有意义的字段。从页面(如北京)上看,这个网站比较干净,可以通过比较简单的方法获取。1. 通过wget获取网页(页面是utf-8编码,无须转码),保存为pm25.htm.2. 抽取有意义的字段,这个通过分析页面结构可以获得,我这边一句话就搞定了。sed -n '/<tr>/,/<\/tr>/p' pm25.html 得到View Code <tr> <th>监测点</th 阅读全文
posted @ 2013-04-29 12:56 westfly 阅读(456) 评论(0) 推荐(0)
摘要:又在http://www.codecademy.com/泡了一下午,编写了一大堆白痴的代码。看看成绩突然想到自己做的Javascript,又突然想到自己居然知道它该怎么用,与C/C++有什么区别?或许以前做的初衷是想弄清楚一门语言背后设计的思想吧。最近《Javascript 面向对象编程》和《再谈javascript面向对象编程》或许可以一窥其中的特色。 阅读全文
posted @ 2012-03-03 20:03 westfly 阅读(144) 评论(0) 推荐(0)
摘要:腾讯在做社区开放平台,在网站上提供了SDK下载,我下载了C++版,然后看了下起C++的Makefile,分析了下,感觉还是不错的一个Makefile,于是做了下笔记。在cpp目录下有四个目录和一个Makefile,其中example目录还有一个额外的Makefile,src中是封装的CPengyou类。exampleincludelibsrcMakefile下面是主目录下的Makefile代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--># 阅读全文
posted @ 2010-12-14 10:10 westfly 阅读(365) 评论(0) 推荐(0)
摘要:又回到了Linux的编程环境中,不再折腾了,没有意义。把编程技术学好吧。 分享了一个Makefile,这个Makefile,是从TinyXML的工程文件中提取出来的。自己按照自己的需求修改了下。感觉还不错。#**************************************************************************** # This is a GNU make (gmake) makefile #****************************************************************************# DE 阅读全文
posted @ 2010-12-06 13:38 westfly 阅读(413) 评论(0) 推荐(0)
摘要:开始学习Shell,管理自己的Linux。跟随着编程语言的脚步,开始自己的Shell之旅。1.Shell的种类目前流行的Shell有ash, bash, ksh, csh, zsh等,目前Linux内置的Shell一般为bash,可以用#echo $SHELL来查看所使用的shell类型。Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C shel 阅读全文
posted @ 2010-11-22 11:42 westfly 阅读(484) 评论(0) 推荐(0)

1