摘要: 1) 计算文本中字符串个数:%s/XXX/gn,n意为只做计数,不做替换2) 空格与换行的互转空格转换行:%s/ +/\r/g,其中“ +”表示一个或多个空格换行转空格:%s/\n/ /g那么同样是换行,为什么有\r和\n的区别呢?因为查找和替换时\r与\n的含义是不同的。 在查找时\r matches */\r*\... 阅读全文
posted @ 2012-09-21 15:50 千里快哉 阅读(169) 评论(0) 推荐(0) 编辑
摘要: Clearsilver是一套用c语言实现的html模板系统,同时还提供了python、perl、c++等语言的调用接口。Clearsilver本身非常高效,还提供了国际化支持、gzip压缩、字符串转义等功能,在google groups、trac等系统中得到了应用,更多应用请见这里。Clearsilver的两个基本概念为数据和Clearsilver(CS)模板。模板由html语句和CS语句构成,控制着数据的表现形式。通过使用Clearsilver,可以强制数据和表现分离,有利于后台数据人员和前台数据人员各司其职协同工作,不用修改后台逻辑就可以完成页面的重构。Clearsilver的数据使用了一 阅读全文
posted @ 2012-08-26 17:02 千里快哉 阅读(3290) 评论(0) 推荐(0) 编辑
摘要: 飞信的命令行程序cliofetion每次登录之后只能发一条短信,这里 有对它的简单改进,大致原理是登录成功之后,周期性的扫描一个文件,将文件的内容作为飞信信息发送。而我主要在python程序中使用飞信,将利用python的ctypes实现类似的功能。Ctypes可以很方便的调用动态连接库(Win下的dll或者*nix下的so文件)中的函数,并且能创建、访问和操作各种C数据类型。观察cliofetion.c源程序的main函数,一次飞信发送的过程是这样的。先调用fx_login函数登录,然后调用send_message函数发送信息,最后调用fetion_user_free函数释放分配的资源,完成 阅读全文
posted @ 2011-06-27 22:45 千里快哉 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 在脚本或者程序运行时间较长时,为终端用户提供反馈信息,表示脚本或程序在辛勤工作,是非常重要的。本文将介绍常见的两种进度指示器(一系列原点和一条旋转线)以及一些其他提供进度指示的工具。1. 使用一系列原点来指示进度#!/bin/bashfunction dots(){seconds=${1:-5} # print a dot every 5 seconds by defaultwhile trued... 阅读全文
posted @ 2011-06-11 15:43 千里快哉 阅读(4373) 评论(0) 推荐(1) 编辑
摘要: 前面一篇文章已经讨论过如何基于bind和dhcpd搭建ddns服务器。Ddns可以将一个静态的域名与一个基于dhcp动态分配的IP地址相对应,这样服务的使用者就可以通过域名(FQDN)访问服务器,而不必关心服务器的IP地址是否已经发生了变化。如果服务器上含有多个网卡,而每个网卡上都提供不同的服务,那么多个FQDN就成为一种需要。每个网卡在向dhcp服务器获取IP地址时,分别发送不同的host na... 阅读全文
posted @ 2011-04-08 10:59 千里快哉 阅读(653) 评论(0) 推荐(0) 编辑
摘要: Cron daemon,是linux下用来周期性执行命令的守护进程。可以通过crontab命令列出和编辑用户的cron任务。(1)cron任务的基本形式是:minute hour [day of month] month [day of week] commandcron任务执行时必须满足以下条件:分钟、小时和月份满足给定条件,并且day of month和day of week至少一个满足条件。... 阅读全文
posted @ 2011-04-07 10:12 千里快哉 阅读(576) 评论(0) 推荐(0) 编辑
摘要: DNS是用来解析域名得到IP地址的协议,它要求服务器的IP地址是静态不变的。然而为了获得静态IP地址,通常需要向ISP支付额外的费用。DDNS(Dynamic domain server),是将服务器的动态IP地址映射到一个固定的域名(FQDN)解析服务上,用户每次访问服务的时候使用服务器的域名进行访问,DDNS会将服务器的动态IP地址返回给用户,这样服务就绑定在域名上而非绑定在一个静态的IP之上... 阅读全文
posted @ 2011-03-29 11:28 千里快哉 阅读(1104) 评论(0) 推荐(0) 编辑
摘要: FAM(File Alteration Monitor),提供了另一种监视linux系统变化的机制。fam由两部分构成:famd,用以监听客户请求并在文件系统变化后提供通知的daemon进程;libfam,客户端应用程序与famd交互的接口。FAM支持的文件系统事件有FAMChanged,文件/文件夹被改变FAMDeleted,被监视的文件/文件夹被删除。如果开始监控的不存在的路径,也会产生该事件... 阅读全文
posted @ 2010-04-08 13:33 千里快哉 阅读(1485) 评论(0) 推荐(0) 编辑
摘要: inotify是linux系统2.6.13以后内核支持的一种特性,功能是监视文件系统的变化,在监听到文件系统变化后会向相应的应用程序发送事件。典型应用场景比如文件管理器,理想情况下应该在用户使用其他手段修改了文件夹的内容后马上反映出最新的内容,而不应该在用户手动刷新后才显示最新内容。如果没有类似inotify的机制,一般会采用轮询的方式实现这种功能,不能在第一时间反映文件系统变化而且浪费CPU时间... 阅读全文
posted @ 2010-04-07 19:45 千里快哉 阅读(836) 评论(0) 推荐(0) 编辑
摘要: 程序实现的功能是在求实bbs的几个相对热门的讨论区回复两篇灌水性质的帖子,说明几点: 依然受留言板记录过多、存在密码输错记录、有好友在线等影响 为了知道回复的帖子编号,采用的是方法是以web访问的方式获取当前版面的最后一篇帖子的编号 01 #!/usr/bin/python02 # encoding: utf-803 import telnetlib04 import getpass05 ... 阅读全文
posted @ 2009-09-13 22:11 千里快哉 阅读(685) 评论(0) 推荐(0) 编辑