Arganzheng's Blog

stay hungry, stay foolish

shell模块的另一种组织方式

在前面一篇文章里shell如何模块化和复用——shell深入学习,我介绍了一种shell的模块化做法,但是在实际的代码中我估计很少人会这么处理,相反,有另一种组织方式(或者称为模块化方式吧)在一些开源代码中可以见到,感觉更符合shell的语言特性。 由于shell的source语句(. 语句)本质上是在当前的shell进程中执行script脚本文件,所以如果这个脚本文件中不是单纯的定义子函...

Linux里复制终端Session(像SecureCRT一样)

This Tip is from YangQi 在你的登录账户下的.ssh文件夹新建一个文件:config cd ~/.ssh config的文件中,内容为: host * ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p 在linux里面,像secureCRT一样,复制session,不需要重复输入密码 举例: ...

shell如何模块化和复用——shell深入学习

基本上所有的编程语言都支持模块化,以达到功能复用的效果。比如java和python的import xxx。C/C++的include。那么shell支持模块化吗? shell本质上并不支持模块化,但是有些机制可以使它达到类似的效果。 一些背景知识 首先要了解有两种方式可以执行一个shell脚本: 1. 一种是新产生一个shell,然后执行相应的shell脚本 方法是在scripts...

Linux命令学习之——paste命令

基本上没有使用过paste命令,不过今天系统的回顾和学习了linux的常用命令。发现paste命令还是很不错的。 例如有下面两个数据文件: forrest@forrest-laptop:~/study/shell$ cat sname.txt Sr.No Name 11 Vivek 12 Renuka 13 Prakash 14 Ashish 15 Rani forrest@forr...

python2.x的一个需要注意的地方

今天晚上过来跑图片dump python脚本,无意中发现python的OptParse的一个小“问题”,很容易中招,就像python的range一样,不小心就容易出问题。 程序主体逻辑如下: def main(): p = optparse.OptionParser(description=”dump summ img in a dir that matches the given ...

ifttt模式语言——sed和awk深入学习

引子——一些思考 sed和awk能否实现这样一类问题:假如匹配了一个pattern,对下面的记录行采取这样的action,直到另一个pattern满足。 也就是说: pattern1 ==> begin action {action} pattern2 ==> end action 有点麻烦,但是并不是不能做到。因为sed和awk都是ifttt模式,上面的模式其实其实可以...

sort和uniq tips

sort和uniq一般搭配使用,因为uniq必须依赖于sort后的结果。 sort是对每一行从头开始比较排序,如果你要比较的只是一行的某一部分,如何处理呢? 解决方案是将要比较的那一部分(field)抽取出来,放在每一行的最前头。这样就可以根据这个fields比较了。 例如:有如下输入:EmployeeName PayRate/h WorkingTime Beth 4.0...

AWK学习与实战

前言 AWK的pattern { action }语法结构已经影响到很多后来的东东,当然更早的是grep和sed。 以至于现在有个网站叫做ifttt,其名字意思就是if this then that,做的就是这个事情。虽然这门语言有点过时,还是有必要介绍一下。 What is AWK? An awk program is a sequence of patterns and actio...

Maven快速入门

不管是构建web程序或者standalone程序,甚至是简单的写个main测试,只要你的工程需要引入依赖或者打包构建,那么使用maven是最好也是最简单的做法。 安装maven 这个google一下,应该能搞定。 创建工程 如果你已经能够确定-DarchetypeArtifactId,那么可以直接指定,并设置-DinteractiveMode=...

使用pythonbrew和virtualenv构建Python沙箱环境

一个非常好的python工具——virtualenv 一直没有重视virtualenv,知道最近在MySQL备机上跑数据迁移脚本,发现要写一些python脚本,但是内建的python只有最根本的packages,import经常报错。想要手动安装,发现没有权限写入/usr/lib/pythonX.X/site-packages目录。而且,没有easy_install或者pip(安装这些同样...