上次拔掉你的鼠标发表之后, 好多人来邮件, 询问我用了哪些命令行软件, 我列举一下.

即时通信:

Freetalk: 我用这个上Gtalk. 开源的, 所以可以自己开发插件. 我控制空调的东西, 就是一个插件.

Fama-im: 我偶然用来上MSN. 但是其实我会用窗口下的Pidgin, 只有在我的土电脑上的时候, 我才会偶尔用用这个. 这两个操作都很简单. 然后, 我不用QQ.

邮件:

有人喜欢用 Pine 处理邮件, 我一般用 Mutt. 因为所有的邮件客户端都suck, Mutt sucks less. 发邮件其实底层是sendmail, 不过没人关心这个. mutt 非常好学, 半天上手后, 就会觉得其他的邮件客户端以及 Gmail 真是和蜗牛一样慢. 邮件的搜索也支持的很好. (中文搜索我没尝试过, 因为中文没所谓的正则表达式的概念).

上网:

eLinks: 支持标签, 支持底色和排版. 用来上Google 和 Wikipedia 再好不过了. 看到的纯文字一点干扰都没有. 最好的就是看到网址也不会随便点. 同样也是支持LISP编程的. 所以如果想看到单词查个字典什么的, 自己写个小插件就行了. 如果网页有图, 设置一下 elinks 的设置, 就可以在点击图的时候自动用X的图片查看器打开了. 其他的以贴图为目的的网站如lolcat 我一般都有脚本定时去下下来, 有空批量看. RSS 因为喜欢 share 这个功能, 所以使用了 Google Reader, 好在他完全可以键盘操作, 也算半个 CLI 吧.

日程等:

我使用 remember the milk 的机器人. 然后在Freetalk 里面写一个钩子, 让这个机器人发来的消息触发一个脚本(那个脚本是一堆 beep 语句, 就是让小喇叭发声. 所以可以称得上我的彩铃. 其实你也可以让他调用某个放mp3的放一个mp3, 这个就看你爱好了).

TODO等:

我的TODO 是一个纯文本文件. 写了几个简单的叫做POP 和PUSH 的 Python 脚本用来加入和删除内容, 同时提交到 remember the milk (基于 pyxmpp 协议就两行语句). 我还使用svn把这个文件同步到远程的计算机上. 这样, 不同机器之间版本始终一致, 不存在版本冲突的问题. 我不喜欢用 Google Calendar, 因为他对自然语言的处理还不够好, 而且我还不是日程忙到要专门的日程管理的人, 就在纸质的日历上贴彩条就行了.

自动化任务:

跑程序, 编译论文, 备份文件, 同步文件等批量任务, 我一般都弄一个 makefile, 搞些好玩的 target. 我的查看TODO的脚本就很变态的叫做 make love. 还有一个随机抓一个笑话的脚本, 叫做 make me a sandwich. 总之, 自动化的任务交给make 管理, 手到病除. 当然, make 不能接受参数, 所以有时候得写点辅助脚本.

小事情:

单位转换和计算器我分别用 units 和 bc. 日历用 cal, 字典用 dict. 转换图像格式和大小这些都是用著名的convert. 看图用display 抓屏用import 都是标准的方法. 刻光盘用cdrecord. 唯一玩的游戏是 nethack (http://www.nethack.org/ ) 这样一个最耗脑力的龙与地下城游戏. 这个游戏黑客做了20多年了, 一直都是命令行操作最好玩.  有人关心怎么控制我家的空调和电灯, 其实他们都是使用 X10 协议控制的. 只要有一个和计算机通信的X10 控制设备, 加上 HEYU 这样的开源软件, 就可以完全控制家里面所有的电器了.

对了. 我的编辑器是vim. 很羡慕用Emacs的. 其实编程就是打字和GCC来回倒, 没啥特别的.

以前清华大学的王垠有句名言: 不能用Linux做的事情, 是不需要做的事情. 现在看来, 不能用命令行做的事情, 重要性也不见得多高. 比如校内等SNS, 就不支持 elinks, 所以我也很少上.