Monthly Archives: January 2012

bash中ctrl-w和alt-backspace的区别

今天在水木上看到有人问如何设置分隔符让ctrl-w不以空白为边界删除字符,帖子在这里。我只知道alt-backspace是他想要的,但是忘记之前看到过的ctrl-w和alt-backspace在处理分隔符上的区别了。于是又翻了翻bash的man page(不得不说,每次翻bash的man page都有收获)。

总的来说,这两个bash的快捷键(其实是readline库的)我都经常用,都是向前删除一个“词”,但他们的区别就在于是如何界定“词”的。

unix-word-rubout (C-w)
Kill the word behind point, using white space as a word boundary.

这里明确说明了ctrl-w就是用”white space”来作分隔的。

shell-backward-kill-word (M-Rubout)
Kill the word behind point. Word boundaries are the same as those used by shell-backward-word.

这里说明alt-backspace是用跟”shell-backward-word”一样的方法处理词的分隔的。

shell-backward-word
Move back to the start of the current or previous word. Words are delimited by non-quoted shell metacharacters.

这里说shell-backward-word是用”non-quoted shell metacharacters”作分隔符的。

我google了一下,发现shell metacharacters是指如下字符:

/ < > ! $ % ^ & * | { } [ ] ” ‘ ` ~ ;

那么最后结论也就出来了,ctrl-w只是单纯的用空白(空格和tab)作词的分隔符,而alt-backspace则是以没被引起来的shell metacharacters作分隔符。实际的效果如下:

$ cd /usr/share/doc/
ctrl-w将删除 “/usr/share/doc/” 这整个一串字符
alt-backspace只会删除最后的 “doc/”

但有个问题没搞清楚,/usr/include/stdio.h 这个时候用alt-backspace的话,只会删除最后的一个字母h,点也被当作分隔符了,而点不属于shell metacharacter,不知道哪里能看到相关说明。

2012春节流水

今天是大年初六,春节假期的最后一天,明天又要开始正常的上班生活。在假期的尾巴上流水一下龙年春节。

这是我近10年来过的最惬意的一个春节。没有闹哄哄的人群,没有没完没了的串门,只是一家人简简单单自由自在的过一个最纯粹的春节,单纯的享受一家人团聚的春节,不是给别人过的春节。

11年12月末由于要搬家,爸妈过来帮忙,也就顺便在北京过春节了。有爸妈在身边的日子就是很爽,早上起来饭已经摆好,就等着吃了。晚上回来开始炒菜,10分钟之内就能吃上热乎的。既干净又省钱。一家人在一起他们也不用担心我吃不好,我也不用担心他们身体好不好。

除夕这天多做了几个菜,特意做了一个鱼,说是过年一定要有鱼。五点开始吃团圆饭,春晚开始的时候一家三口都在上网,时不时过去看几眼春晚。跨年的时候我捧着笔记本在床上翻看公司的邮件,我爸在看新闻,我妈在玩QQ麻将,听着外面的鞭炮声进入龙年。

初一到初三这三天我基本都在加班,反正这些活最后都是我自己的,早点多做完一些就少留给年后一些压力,毕竟老外不过春节,5.8还是要按时发布的,到时候真因为放假导致没测完而出现问题,责任还是我的。初二我们去吃了海底捞,也带爸妈尝尝比较正宗的海底捞,虽然价钱小贵但吃的还是很不错,桌子上的东西一扫空,什么都没剩下。

初四到初六这三天也是在家宅。时不时看看公司邮件和测试结果,现在基本测试完了,年后工作压力小了不少。初五出去溜达一大圈,是真正的溜达,从家走到五道口又快走了回来,在双清路上坐4站466回家。回家一看地图,走了5公里路,耗时1.5小时。本来想去颐和园的,不过我爸一看要买门票就坚决不去了……他们这一代节俭惯了,都是省着过日子。

非常平淡的春节,可是我就是喜欢这种平淡的日子,很舒心很惬意,跟爸妈一起宅家里,上上网,看看书,聊聊天。过年么,就是要自己舒服。

我的Linux之路

有位网友给我来邮件说看到我的blog,想问问我是如何和开源社区交流/参与开源社区的。首先我挺奇怪的,我这个blog是生活和技术混杂的,而且本来文章就少,生活还占了很大比例,是怎么看出来我和开源社区仅有的那么一点点交流的(如果算是交流的话);其次我还是挺高兴的,至少这里不是只有我一个人在看,如果能够很荣幸的帮到一些人就更好了。

虽然我自己在这方面也属于刚起步阶段,但也借这个机会回顾一下自己这几年来折腾Linux的过程吧,基本算是给自己写的一个总结,对想学Linux的同学来说也算是一个参考。文章不仅限于开源社区了,也会记录不少流水帐。

由于自己的专业是信息安全,05年的时候就觉得既然目前很多server都是基于Linux的,那么学习掌握Linux一定是很必要的,于是也就是在05年的时候开始接触Linux,没成想这一折腾就折腾上瘾了。最开始的时候只听说过Red Hat 9,就从学校FTP里下载了iso镜像,刻盘之后安装。当时很幸运,应该选择的是完全安装,gcc等工具连和一些开发库都装上了,否则可能就没有后续的折腾了。跟很多自从接触电脑就用windows系统的同学一样,Linux安装好了,我也就不知道下一步该干什么了,只是傻傻的看着桌面,点点图标。后来想不能这样,我要平时在windows下做什么,在Linux下也做什么。于是产生了我的第一个需求——读取windows分区里的文件。

我是周围同学中最早开始折腾Linux的,所以有问题也没人可以请教,我只好去google,而且我的性格也是喜欢自己解决问题,不轻易提问。当时我的Red Hat 9还不能上网,我只能重启进入windows然后google。搜索来的命令和方法我就先用纸笔记下来,然后重启进入Linux,修改配置文件,再重启看是否能够自动挂载windows分区,不能就再次重启进入windows继续查资料。如此反复了几十次,终于能够开机自动挂载我的windows分区了。这一番折腾,我最大的收获就是熟悉了mount命令还有/etc/fstab文件的作用(记得那一天当中敲的最多的命令就是mount vi 和 reboot)。

紧接着我有了第二个需求,我想听windows分区里的音乐,看里边的电影。于是我继续搜索,找到了mplayer的源代码,用gcc编译安装,下载解码库,最后竟然让我安装成功了,我自己编译安装的mplayer可以看各种格式的电影了。至于为什么不用发行版自带的包管理器安装mplayer,其一是Red Hat 9好像还只能用rpm来安装,其二是我当时根本不知道还有“包管理器”这个东西。

后来我知道了Red hat 9是比较老的发行版,于是把它删掉,安装了当时很新的FC5。FC5的最大好处就是,网卡终于能够驱动起来了,再也不用重启进win上网了……一两个月的时间我对Linux逐渐熟悉了起来,也从图书馆借了一本讲Linux基本命令的书(现在忘了叫什么名了,不是很经典的那种),在网上也看了很多Linux相关的资料,什么RMS,什么自由软件/开源软件的思想,GPL,Linux的发展历史等等,基本一切跟Linux有关的我都看。然后就对自由软件和Linux着了迷,这种自由/分享的精神相当吸引我。

我相信基本所有学习Linux的同学都有一段安装各种发行版的经历,我当时也算是比较疯狂的一个。80G的硬盘不够大,就买了一块320G的二手硬盘,用来放资料,80G的硬盘只用来装各种系统。最多的时候我的电脑上有6个系统,xp、win2003、freebsd、ubuntu、fc5和opensuse。一直没装debian是因为当时debian的安装cd很老,不支持我的硬件,安装不上。

我对Linux的学习基本就是在遇到问题-解决问题这样的循环中进行的。每解决一个问题都会学习到很多,也会引申出更多需要学习的东西。那段时间平时的编程作业和小学期的作业都是在Linux上完成的,可以说一开始从源代码编译安装mplayer的经验对我是很有帮助,让我从一开始就对这种编译的过程不陌生,出了编译错误也不害怕,如果当时我没装上gcc,那我很可能就折腾不下去了。

06年我开始参加linuxfb.org的活动,这是一个由Colyli发起并组织的月度Linux聚会,每次都有不少有趣的话题分享。在这里我认识了很多大牛,Coly同学自不必说,还有aptitude大大,hzmangel同学,bergwolf同学,各个都是大牛,让我学到了很多,长了很多见识,也逐渐开始接触kernel相关的知识。可以毫不夸张的说linuxfb.org和coly改变了我的人生轨迹,让我对kernel开始着迷。06年我也开始逐步看一些比较经典的书,比如学习vi/vim编辑器,APUE,C语言程序设计,UNIX编程艺术,深入理解计算机系统,C专家编程,还有内核方面经典的lkd,ldd,ulk这三本,但这三本书我是没怎么看懂的,现在也不怎么懂……

07年我跟几个“志同道合”的同学联手创建了学校的开源软件协会,办过几次活动,算是我在学校里开展开源活动的一个尝试吧,虽然我基本没做什么工作……

09年我参加了GSoC的活动,完成了一个移植OpenSuSE到龙芯笔记本上的项目,算是第一次参与社区参与开源吧。只是现在项目已死,变成了我一个人的玩具。其实真正接触开源社区还是在工作之后了(在红帽工作这就是最大的好处)。我参与了LTP,xfstests等测试套件的社区,订阅了ext4,btrfs,xfs,fs-devel的邮件列表,可以及时了解upstream的动态。不过我也是刚刚起步,还没有很深入的参与到开源社区中。

以我目前仅有的一点经验来说,如果想参与kernel社区又觉得没有入手点的话,可以考虑下面两个方法:

  • 首先是订阅你感兴趣的子系统的邮件列表,比如ext4(不建议直接订阅lkml,流量太大,我现在也不敢订阅),然后只是看信,看一段时间就基本知道里边是如何发patch,在讨论什么样的问题等等,目的是要先熟悉规则,不要轻易破坏规则。这是前提
  • 看某部分子系统的代码,发现问题并向upstream提交patch。比如看内存管理的代码,看fs里的代码,结合书和网上的一些资料,尽力去理解。看的时候至少能够发现一些注释错误或者拼写错误,然后就可以发patch修正。当然,不建议发那种只修改一个字母typo的patch
  • 用LTP或者xfstests等测试工具对最新kernel进行测试,如果发现问题,可以选择报告bug,或者自己尝试修复bug
  • 更多关于如何参与社区,可以看看我的两位同事的blog,可以看看他们都在做什么,是怎么跟社区交流的:
    Caspar现在是LTP项目的committer,有很多跟upstream打交道的经验;
    Adam8157也是开源狂热者,应该给不少开源项目提交过补丁;

    又一篇胡言乱语流水帐,我的Linux之路还要继续走下去,kernel之路才刚刚开始。希望以后自己能总结出更有深度更有用的东西。

    找房,搬家

    搬家已经过去两个星期了,现在才打算记录一下,自己真是越来越懒,越来越不愿意写东西了。

    本来以为明光村小区那个小北屋能住2-3年呢,结果2年不到就被房东赶出来了,原因是房租没谈拢。房东想由3k涨价到3k8,这个价格在明光村小区附近算是正常,不正常的是北京整体的租房价格,一年多点的时间房租就涨了1k,租不起就只好搬家了。

    知道要搬家的消息是12月中旬,被通知在1月4号之前搬完。在12月17号左右决定自己租个单间,父母过来也方便,所以从19号周一开始了大冬天骑车看房租房的行程。由于之前合租是同学找的房子,所以说这是我第一次自己租房,在没有任何经验的情况下也只能硬上了,要不然真没地方住啊。最开始没打算找中介,只想在水木上看一些个人房源去联系,不过后来发现在短期内很难遇到靠谱合适的个人房源,很多都是转租,先接手3个月房租,3月再跟房东谈续签问题。所以后来也只能借助中介的力量了。由于预算原因,开始只考虑清河的房子了。

    19号周一,上午在网上找了一个链家一个我爱我家,都是直接给随机找的业务员打电话,结果链家的业务员当天晚上就介绍看房(我爱我家那个到现在也没联系我)。晚上下班之后骑车40分钟到清河车站,被业务员领到宝盛里小区,在小区深处一个3楼南北通透的二居室,房东要价2600.当时对这个房子挺满意的,虽然家具家电不是很全,但房型很好,也很干净。但毕竟这是我看的第一个房子,不可能马上决定,而且觉得稍微有点贵,如果房东当时能接受2500我可能当时就签协议了。然后又看了一家在某个军队院里的房子,现在没什么印象了,反正是不满意。晚上10点多在大风中骑车回家了。上百度地图(不得不说地图还是国内的做的不错,google地图用起来不方便)把能想到的离公司稍微近一点的地方都看了一下,又增加了几个看房点,比如二里庄、志新桥、蓟门里、东西王庄、静淑苑。

    20号周二,早上先骑车到二里庄附近,只有一家链家的门面很明显,就进去了,马上带我看了一个单间,不过是北屋,而且房型不好,价钱也不便宜(2800),当时就否决了。

    二里庄的小北屋

    中午吃过饭之后又骑车出去溜达了,中午去的静淑苑附近的链家(只有链家的门面最多而且最明显),带我看了现在住的这个房子,但当时房东不在,中介报价2800,因为基本是空房,所以拒了。

    林大北路的单间,也是最终租的房子

    晚上静淑苑的中介又来电话,说带我去看几个房源。第一个是林大北路再往北走的一个小破小区里,房子本身倒挺干净的,但是位置非常不好,而且是一楼,没有煤气,还很小,要价2800,坚决拒了。

    后八家附近的一个一楼

    第二个是学院路6号院的一个算是开间,这个房子我基本看中了,因为位置很好,就在学院路边上,但是小区里还很安静,虽然是开间,但我自己够了,报价2800,中介说应该能到2700.我当时就说如果能到2700我就签合同。不过中介给房东电话后,房东只接受3000的价格,我也只能不考虑了。

    学院路6号院的开间

    看完房子之后顺道去了Caspar家,见识了下王庄小区,顺道去了王庄路上的链家,登了个记。
    晚上回家的路上又去了蓟门里小区的链家,被告知3000以下这附近找不到……其实也早在预料之内,只是之前在水木上看到一个2500出租的单间就在蓟门里小区里,想去碰碰运气而已。

    晚上到家之后,总结这一天之内的情况,得出结论,五环内找不到合适的,还是清河吧。于是马上给清河的链家打电话,打算定宝盛里的那个房子,不过被告知那个房子已经签了……没办法,周三还要继续找房子。

    21号周三,早上上班路上路过皂君庙,找个链家进去问了问,3k以下的之后地下室……放弃。上午王庄路的链家给我电话,约我中午看房子,结果去的又是林大北路这个房子,我说既然都来了那就再看一次吧。果然这一看就看出结果了,因为这次正好赶上房东在屋里,房东说可以谈到2600,这个价格我还是可以接受的,因为周二一天下来我也基本知道五环内的基本行情了,2600不算贵,而且房东看着还算靠谱。下午回来给中介打电话,让他晚上约房东出来谈,能成就签合同。

    这事情真说不定从哪就出个叉头,又说不定在哪又出现转机。宝盛里那个房子没赶上不一定不好,这个房子虽然看过了再看一遍又有不同的结果。很多时候很奇妙,也算是缘分吧。

    总结下找房的心得:
    1. 着急就找中介,中介毕竟房源多,能带你大量看房,总能有看上的。
    2. 看到好房子可以马上决定,好房子很快就会没的。
    3. 先确定小区,然后去小区附近的中介登记,多找几家没关系,让他们带你看房,虽然有一些是重复房源。
    4. 赶集网,58同城上的靠谱信息很少很少,基本都是中介或者代理。

    房子确定之后就开始考虑搬家了。因为房子基本是空房,还有买家具收拾房子的问题。29号爸妈过来了,当天就买了两个床和被褥还有锅碗瓢盆等必需品,当天晚上就住下了。然后我就开始网购家电,送货、安装。31号晚上去明光村小区打包,把所有东西都排列在床上,1号正式搬家,2号又拆包收拾东西,到3号才算基本安定下来了。多亏爸妈过来了,否则我自己完全搞不定,东西拆包归类整理、修漏水的水龙头、修漏风的门等等工作,如果我自己能干到春节。

    整理之后的小屋,阳光很好

    希望这个地方能多住几年吧,找房子搬家真是太折腾了!

    娱乐活动研究中心2011总结

    又到了一年一度写总结的时候了。2011年的娱乐活动有突破也有遗憾,不过还是遗憾多了一点。

    按照去年的总结,先说说2011年的最后一次活动,圣诞节。2011的最后一次活动是平安夜那天,正好小爽同学再次短期出差到北京,可以和我们一起happy。这次的活动计划远没有变化快。计划是中午随便找个地方吃饭,然后下午去Friends主题咖啡厅坐一下午,晚上去一个叫做“The Tree”的小Pizza店吃Pizza。但是我们只实现了第一项,也就是中午随便找个地方吃饭。午饭过后我们翻山越岭终于找到了Friends主题咖啡厅,但由于里边已经没有位置了,喝咖啡聊天的计划只好作罢。随后溜达到世贸天街,全员到齐之后去了KTV……不过也好,很久没听大家唱歌了……

    晚饭的计划本来是“The Tree”,结果找了半天终于找到了。但是吃起来发现味道不对,仔细一看餐巾纸才发现我们遇到山寨了……这家店叫做“Near By The Tree”,很悲催。

    那么大的Near by,我们都没注意到

    在感叹一番老外匮乏的餐桌之后大家也就各回各家,各找各妈了,虽然我多次提议去金鱼家喝酒,不过大家显然还没从上次的阴影中走出来,没人相应我的提议……

    这次活动的定位就是休闲聚,聊聊天吃吃饭,而不是疯狂聚,这么看来本次活动的目的已经达到了。

    现在来总结一下2011年的历次活动吧:

    1月:凳子生日聚会
    4月:官厅水库看风车
    5月:疯狂周末,后海游
    6月:雾灵山之行+超high喝酒
    7月:小爽送行宴(没写流水帐)
    8月:固定节目,北戴河(没写流水帐)
    12月:圣诞活动
    

    可以说2011年的活动有2大突破2大遗憾。突破一是6月的雾灵山之行,创造了我们活动的目前的巅峰,游玩交通住宿顺畅,看了日出日落,晚上在山顶看星星,回来之后还high了一晚上,干掉5种不同的酒;二是班长同学终于给大家带了个好头,扩充了活动人员的编制,其他成员(除了已经有媳妇/老公的)都要向班长学习。遗憾一是风同学远走法国留学,只能眼睁睁看着我们在QQ群里讨论各种活动而不能参加;二是计划很久的青海湖之行由于票的原因而没能成行(可能只是对我来说是遗憾吧)。

    跟去年的总结一对比,发现我们这两年活动的月份很一致。1月由于还没过年,总会有个活动作为一年的开头活动,而2月3月基本都在忙过年或者从过年中恢复,4、5、6、7几个月是活动的主力月,5、6月是最佳出行月份,每年的大型出游活动基本都是在这个时候,8月份是固定的北戴河之行,像蝗虫一般去班长家蹭吃蹭住,从9月开始,大家都开始忙了,天气也渐渐转冷,活动基本没有了,最后就是12月的收尾活动。

    回顾这一年,还是感觉非常幸运,有这么一帮同学在身边,虽然大家也都越来越忙,聚在一起也不像去年那样随意通宵(老了……),但无论是大型活动还是偶尔小聚都很开心,让自己不会被生活中的各种烦心事压跨。2012最后一位还在学校的金鱼同学也要博士毕业了,希望大家在2012都有进步,活的开心,把娱乐进行到底。