红联Linux门户
Linux帮助

linux 下的终端

发布时间:2008-04-29 21:21:05来源:红联作者:zisxvdmc
  如果经常看一些旧的文章,里面经常会提到两款终端:xterm和rxvt。我曾经和人讨论过为什么看起来如此差劲的两个终端会受那么多人追捧,答案是资历,这两个算是终端中的元老,在现在那些应用广泛的终端成熟起来之前,能有一款xterm这样的终端用就不错了。但是现在这些骨灰级的东西肯定不是首选。xterm的启动速度和资源占用都很好,但是缺点也是致命的,就是它几乎没有什么功能,而且对中文的支持不好。而rxvt说起来就有些麻烦了,原因是这个东西版本很多,首先最正统的rxvt不支持中文,可以排除,而rxvt-unicode对中文支持也不好,那就得换rxvt-ml了,这个ml就是多语言的意思,安装之后在系统中会生成几个可执行程序,如crxvt-big5是支持繁体中文的,其中crxvt-gb是支持简体中文的rxvt终端,但是还有一个问题,就是现如今大部分Linux发行版的默认编码都是UTF-8,而crxvt-gb只支持gbk编码,如果想正常使用还要把系统的 Locale换成GBK的,这不是不可以,就是太麻烦,而且为一个终端换掉Locale会引起别的不便;不过这个东西也并非是鸡肋,至少在telnet到默认支持GBK编码的站点如BBS和中文MUD的时候可以用它,用默认支持UTF-8的终端反而会乱码。此外还有一个rxvt-unicode-ml,这个不但支持UTF-8编码,还对中文有很好的支持,安装之后会生存几个程序:urxvt , urxvtc , urxvtd , urxvtcd 。其中urxvt是普通的终端,urxvtd是一个后台进程,运行之后不会有什么反应,这时候只要运行urxvtc就可以打开一个终端窗口了。这样做的好处就是节省资源和打开时间,这个问题后面再说。

  此外就得说说现在应用最广的两个终端了,这就是konsole和gnome-terminal,它们分别是KDE和GNOME自带的终端,就功能来说,它们都可以说是终端里面一流的水平,但是它们的缺点就是资源占用高和打开速度慢,因此也是美中不足。

  另外还有一些比较另类的终端,比如yakuake和tilda。两者属于一类,功能上近乎一样,不同的是前者适用于KDE环境,后者适用于GNOME环境,我倾向于使用tilda。Tilda的一个重要特征就是没有窗口标题栏,配合其透明的功能可以实现无缝嵌入桌面,它的另一个功能就是可以用热键唤出和隐藏,因此我设置它为开机启动并启动时隐藏,使用的时候用自定义的热键呼出就行了,这就靠牺牲资源占用来换取速度了。

  还有一个aterm,这是一个让我觉得很惋惜的东西,在打开的速度方面是我见过的终端中最快的,几乎一按下热键就打开了,资源占用也很低,问题就出在中文支持上,我始终搞不定中文的显示和fcitx输入法的输入问题。只好放弃。

  至于别的终端,我觉得都没有这几个经典,没有必要都说了。

  总之我觉得对终端的选用有四个标准(按重要性由高到低):中文支持、启动速度、功能和资源占用。由于技术的限制,没有哪个终端可以完全兼顾这四个标准,tilda类和rxvt-unicode-ml综合能力最好,前者美观而后者节省资源,而两者都可以为了兼顾优先级较高的启动速度以牺牲资源占用的方式来换取。我们不能让美观易用的tilda像aterm那样有如此低的资源占用,但是可以在同时打开很多终端的时候尽可能的节省新打开的终端的资源占用,这个方法就是使用screen或者标签功能。

  screen是Linux 中很有意思的一个程序,它的功能很丰富,其中就可以实现在一个终端窗口中打开很多新的虚拟终端的功能。首先打开tilda,输入screen回车,它会提示screen已经启用了,此后如果需要建立新的终端窗口,就在这个运行screen的终端窗口中按ctrl+a再按c,就新建了一个虚拟终端,这样做至少有两个好处,其一是你不需要打开新的终端窗口而只增加了一个占用1.4M内存的bash进程,相对于每打开一个gnome-terminal就新增加 10M内存占用来说,这样做极大节省了资源;其二是即使你关闭了当前的终端窗口,在原screen里运行的工作也不会中断,这对于使用ssh远程工作的人尤其有用,你可以再次ssh到远程主机或打开新的终端窗口恢复对原screen中任务的控制。

  此外现在流行的终端都倾向于支持标签功能,如gnome-terminal、tilda等都支持,使用标签的内存占用和screen是一样的,而且在标签比较少的时候比用screen要直观。

  我个人不喜欢使用标签,因此我要么在tilda中使用screen,要么使用urxvtd和urxvtc,前者主要处理一些比较正式的任务,后者用于一些临时的工作。可以看出来,我最终选择了牺牲一定的资源占用来达到对速度的保证。
文章评论

共有 0 条评论