Arganzheng's Blog

stay hungry, stay foolish

Linux命令学习之——cut命令

顾名思义,cut命令就是剪切命令,类似于很多的linux命令,cut也是一个行编辑命令。它用于extract sections from each line of input——usually from a file. Extraction of line segments can typically be done by bytes (-b), characters (-c), o...

shell如何实现ssh免密码登陆

在shell中经常有这样的情况,一个可以写成脚本的程序,本来你可以执行它然后去星巴克喝咖啡,但是由于里面有些交互行命令需要你回答,如login某个服务器,或者输入svn密码,等。但是这样都是我们可以预料的,如果能将我们的回答先存放在某个地方,让shell在那个时候自动去读取这个答案,那么他就可以继续执行了。google了一下,发现有个命令还是不错的,叫作expect,man了一下,有如下描述...

shell语言之我见

2011-05-08 星期天 热 shell是一门非常简单而原始的语言,容易入手,它最常见的作用是将一连串的unix命令(cd, ls , find, etc.)串起来。所以只要你对这些命令比较熟,你只要熟悉shell的一点点语法和特性就可以马上写出一个小型甚至中型的shell程序了。 最近用shell写了好几个脚本处理一些svn相关操作(拉N个分支,合并N个分之,提交N个分之,等),也...

关于文件描述符和句柄

2011-03-31 星期四 晴朗 今天jojo突然问我们:“什么叫做句柄?”。我对句柄不是很清楚(Win32下没有怎么编过程),但是我对文件描述符是比较清楚的。但是我觉得应该是差不多的,所以我就这么回答她了:“句柄应该类似与Unix下的文件描述符,是一个内核对象标识。根据这个标识,进程可以访问相应的内核对象。至于为什么不直接返回内核对象地址,原因我想有两个: 内核对象驻留在内核地址...

TCP与UDP的区别

UDP 无连接 面向消息,有记录边界 不可靠 丢包 顺序 包重复 TCP 有连接 面向字节流,无记录边界 可靠 丢包 => ACK && RTT estimation && retransmission 顺序 => S...

sed实战

实战1. 删除空行(包括由空格组成的空行) 首先要隆重介绍我们的测试文件,因为这是非常特殊的文件: forrest@ubuntu:~/Public$ cat -v wuhui.txt 1^M ^M 2^M ^M 3^M ^M 4^M ^M 5^M ^M 6^M ^M ...

关于面向对象与面向过程的一些思考

这几天看python,python支持面向对象编程也支持面向过程编程,就像C++一样。其实我不是很喜欢提供太多编程范式的语言,因为灵活性往往带来相应的复杂性,C++就是一个典型的例子。 对于一个提供了面向过程和面向对象编程范式的语言,很有必要知道两者的区别。 面向过程编程 使用面向过程编程,我们一般将完成同一个大功能的所有函数放在一个文件中,如一个命名为file的文件,这个文件提供所有...

语言进化论

到现在,学过的语言真是多不胜举:C、C++、Java、C#、JavaScript、Shell、Perl、Python、Ruby…。这么多的语言,学都学不完。但是这些语言之间的差异其实也不是特别大。个人感觉对程序员最大的变化就是编程思想。 我觉得语言无非就是告诉计算机应该怎样去完成一件事(描述动作),那么只要你理清楚作这件事情的步骤,就很容易将这件事情描述清楚。至于这些步骤应该如何完成,具体...

关于接口设计的一些思考

引子 做维护型工作,最大的收获也许就是知道什么叫做丑陋了。本文针对我遇到的一些接口设计问题,总结了如下一些经验分享给大家,希望我们能够吸取经验,对外提供最美的一面,即使我们的实现可能很丑,但是用户不关心也看不到,这就是封装的好处,哈哈。 1. 关于接口的粒度——应该提供应用无关的细粒度接口和应用相关的粗粒度接口 接口的粒度其实很大程度上是接口的职责问题。一般来说越细粒度的接口职责越内聚...

-exec和xargs的区别

当你在命令行执行: $find . -name 'core' -type f -exec rm {} \; 时,find -exec 命令会对每个匹配的文件执行一个单独的rm操作(execute a separate rm for each one), 正如你手动敲入下面命令: rm ./bin/core rm ./source/shopping_cart/core rm ./bac...