Linux

发行版

刚开始使用接触 Linux 的时候,我尝试了一些发行版:RedHat、SUSE、Fedora Core、Ubuntu、Debian、RedFlag、ArchLinux、Gentoo 以及具有更纯正 Unix 血统的 FreeBSD (当然这不能作为一个 Linux 发行版),在不断地安装、卸载、 出错、重装的过程中慢慢稳定下来,现在我一直使用 Debian 系统,并且已经很 久没有重装过了,也不希望再重新架设一遍当前舒适的环境。

事实上,我并没有什么特殊的原因让我选择 Debian ,只是最后当我发觉我不再 疯狂地尝试各种发行版之后,自己的电脑里面留下的是他而已。

桌面环境

X server

现在自然是使用 Xorg 作为 X server 了。Xorg 的配置文件在 /etc/X11/xorg.conf ,在 Debian 下一般直接使用

dpkg-reconfigure xserver-xorg

进行配置就可以了。有一些配置需要手工修改配置文件,例如 DontZap ,或者 使用 xset 进行实时配置。

Key repeat rate

这个是指按下一个键不放,出现重复按键的事件的情况,可以使用 xset 来控 制,主要由两个变量来控制,一个是按下一个键之后到直到开始重复之前等待的 毫秒数,一个是开始重复的时候每秒重复的次数。以这样的方法来设定:

xset r rate 150 35

尝试到自己喜欢的值之后,就可以把它写到你的 X 启动脚本里面去了,例如, 如果通过 startx 方式启动,通常是 ~/.xinitrc 文件。

屏幕录制

屏幕录制可以使用 xvidcap ,非常方便,在这里可以下载到 deb 包,装上就可 以用了。选中一个屏幕区域,然后就可以录制了。

窗口管理器

对于桌面环境,我非常喜欢 KDE ,虽然一直想跟着大家一起折腾一下 fvwm、 wmaker 之类的,但是总是被那些配置文件语法击退了。后来我听说 Sawfish 可 以用类似于 Elisp 的语法进行配置,便逐渐开始折腾起 Sawfish 来。

现在我在 Sawfish 下面工作,自然需要一套完全代替 KDE 下相应的软件的东 西,所幸的是替代品几乎都已经找到,工作得也不错。现在我的桌面非常干净耐 用,在这样的桌面环境下工作起来效率非常高,这里讲述了我是如何休整我的桌 面的。

我觉得许多窗口方面的操作用快捷键来完成的话会方便许多,比如常用的窗口切 换,我非常喜欢 jump-or-exec 这个功能。

编辑器

编辑器无疑在 KDE 还是在 Sawfish 下面都是使用 Emacs 。而且在 Sawfish 下 面使用 jump-or-exec 让我在切换 Emacs 方面显得更方便了。

网页浏览器

KDE 里面使用 Konqueror 作为浏览器。在 Sawfish 里面则使用 Seamonkey , Seamonkey 也是 Mozilla 社区的作品,速度比 Firefox 要快,虽然不像 Firefox 那样有丰富的插件,但是他自身的功能就已经很强大了。

对于 Firefox 有一个小技巧,按 F7 可以启动或者停止“插入浏览模式”。在插入 浏览模式里面可以方便地使用键盘来控制。不过对于现在大多数网页来说,完全 使用键盘来总是有些痛苦的。:p

文件管理器

KDE 里面使用 Konqueror 这个一流的文件管理器。在 Sawfish 里面则使用 emelFM2 这个文件管理器,emelFM2 更适合快捷键操作,从某种角度来说更为方 便。

终端模拟器

KDE 里面使用 yakuake 作为终端非常方便。而在 Sawfish 里面,则使用 urxvt ,再配合 Screen 可以实现多标签等操作,并使用 Sawfishjump-or-exec 扩展使终端切换也变得非常方便,这样就和 yakuake 不相上下了。

pdf 阅读器

KDE 里面使用 Kpdf 这个小巧的 pdf 阅读器,有一个非常人性化的功能就是 下次打开 pdf 文件的时候会自动定位到上次关闭这个文件的时候正在浏览的那 个位置。在 Sawfish 里面我使用 Adobe Reader ,把它的 Reader/intellinux/plug_ins 目录下面的东西全部删掉之后启动速度也变得很 快,而且在设置对话框里面 Startup 一栏里面让 “Reopen Documents to Last Viewed Page”设置为“All Files”的话,也可以实现像 Kpdf 那样的跳到上次关 闭时候的页面的功能。另外,Adobe Reader 的显示效果无疑比 Kpdf 要好。

音乐播放器

KDE 里面使用 amaroK 来放音乐,用起来是非常舒服了。在 Sawfish 里面使 用 beep-media-player 来作为播放器,算是一个简单的播放器了,媒体库的管理 功能自然不如 amaroK ,而且听说已经停止开发了,原来的团队现在分别开发 xmms2、bmpx、audacious 等项目,但是我觉得 BMP 已经很不错了。

不过,我现在已经转到 Emacs 里面的 EMMS 了,很不错的东西呢。

BBS 客户端

KDE 里面使用 QTerm 。在 Sawfish 里面也仍然是使用 QTerm ,QTerm 是 Qt 程序而不是 KDE 程序,所以不会需要启动一大堆 KDE 服务之类的,而且其 他的像 pcmanx 或者直接用终端上都有各自的不舒服的地方。

面板

KDE 里面当然是使用自带的 Kicker 。在 Sawfish 里面其实没有什么必要使 用面板,菜单、快速启动、以及任务栏这些几乎都没有作用,几乎全部都可以通 过快捷键操作来完成。不过其实面板还是有存在的必要的,任务栏虽然不用来切 换窗口,但是可以随时看到自己现在开启了哪些窗口,而且面板上显示着时钟有 时候也是非常方便的。不过 Sawfish 比 fvwm 更加一无所有,连任务栏也没有,只 有使用第三方的面板。经过挑选,我发现两个不错的:fspanel 和 fbpanel 。

fspanel 是一个只有几十 kB 的小巧的程序,功能也比较有限,不过任务栏、时 间显示两个重要的功能倒是都有了,唯一不足的是好像对中文支持不好,如果标 题栏里面有中文的话,好像整个标题就显示不出来。

fbpanel 是一个功能非常全的面板,支持显示桌面、虚拟桌面切换、面板菜单、 快速启动、任务栏、系统托盘和时间显示,而且速度也并不慢,也比 fspanel 要漂亮一些,我目前就是使用的它。它还有一个比较不错的功能是可以设定特定 程序在任务栏里面的图标,通常情况下有些程序没有提供图标,就会用一个默认 图标代替,如果有多个这样的程序,就无法一下子区分开,所以这个功能其实也 是非常人性化的。

影音播放器

KDE 里面并没有专门使用那个播放器,通常是混合使用 Kaffeine、Noatun 之类的播放器。转到 Sawfish 下之后碰巧得到了一个别人做好的 MPlayer 的 deb 包,于是就装上了,虽然这个包编译的时候没有加进图形界面支持,不过也 基本上没有那个必要,man 了一下,熟悉了常用的快捷键,使用起来就很顺手 了,而且几乎可以播放所有的格式。另外,在 ~/.mplayer/config 里面加入 stop-xscreensaver=yes 可以让 MPlayer 在播放的时候禁用掉屏 保,并在退出的时候恢复,这样可以避免正在播放的过程中屏保跑出来捣乱。

如果要在 MPlayer 播放的时候截图,可以使用 -vf screenshot 参数来启动 MPlayer ,并在播放的时候按 s 键,就可以将截图保存在当前目录下了。

另外,有些 rm 或者 rmvb 的文件用 mplayer 放不了,还是只能用 realplay 来放了。如果播放的时候很卡,有一个解决办法就是安装 alsa-oss ,然后用 aoss realplay file 这样来播放。

图片浏览

我并不经常浏览大量图片,在 KDE 里面多是直接用 Konqueror 自己的预览功能 或者是使用 Kview 来浏览。在 Sawfish 里面我找了一个比较轻量级的图片浏览 器 GQview ,用起来还不错。

图像处理

我并不常进行复杂的图像处理,抓图一般用 scrot 、ImageMagick 里面的 import 或者在 KDE 里面就直接用 Ksnapshot 。简单的图像处理就用 ImageMagick 或者是 GIMP 。

中文输入

目前 Linux 下面比较好用的输入法主要有 fcitx 和 SCIM 这两个,两个都有一 定的缺点,并不如 Windows 下面那些输入法好用,不过也还是很不错的。主要 是词库、以及字的排列以及词频调整等问题,fcitx 一开始那些字的排列顺序就 是非常奇怪的,有时候一个常用的字要翻好几页才能找到。

另外,对于拼音输入法来说,有一个非常不错的方法,就是对于重码汉字,一次 显示三个,分别采用左右 Shift 和空格来输入这三个汉字,比起一次显示八、 九个,并用数字来输入要高效。因为只有三个汉字,一眼就能看出汉字是否在里 面,并判断是否要翻下一页,如果是八、九个的话,一眼扫过去,还有可能会怀 疑自己是否会看漏了。另外,左右 Shift 也比数字键好按,也不容易按错。 fcitx 支持这个功能,而目前 SCIM 还不支持,我本来是养成了这个习惯了的, 但是后来用 SCIM ,又花了一段时间强制改掉了这个习惯。用 SCIM 还有一个原 因就是我在交换了 Ctrl 键和 Caps Lock 键之后,fcitx 仍然不承认我已经交 换了这两个键,我不清楚他是怎么弄的,难道他接收键序列是直接跳过 X 而接 收的?

总之,现在我在 KDE 下和在 Sawfish 下面都使用 SCIM 输入法。

工作环境

shell

bash

bash 是 Linux 的默认 shell ,一开始就接触的是 bash ,自然对他最熟悉 了,bash 默认的编辑功能是类 Emacs 的(也可以设置成类 vi 的)也非常上手。 不过我不太喜欢 bash 默认的那个提示符,如果目录一深入,就会显得太长了。 通常提示符只显示当前目录名就可以了,不用显示完整路径:

关于提示符里面的各种特殊字符的意义详细可以参考 man bash 里面的 PROMPTING 一节。

zsh

ZShell 是一个主要设计用于交互使用的 shell ,不过他的脚本功能也很强大。

scsh

Scsh 是基于 Scheme 语言的一个 shell ,目前主要用于脚本编程方面,交互方 面的功能很差,几乎没有任何行编辑功能,不过也可以配合其他专门的编辑器或 者具有编辑功能的终端使用。

我的 shell 工具箱

shell 本身所能做的事情并不多,但是使用管道和重定向结合起大量的工具,就 显得威力无比了。我常用的工具有:

其他一些著名的工具我没有提到,因为我几乎没有使用过它们:

编程工具箱

通用工具

后台环境

Web 服务器

Apache

邮件系统