KDE 和 Gnome 固然不错,但它们消耗系统资源就像爆米花一样。如果您只是启动一个应用程序,请尝试使用更轻量级的桌面,例如Blackbox。虽然您的发行版应该为您设置基本配置,但您可能仍然需要编辑配置文件(在本例中是Blackbox菜单文件,该文件在~/.blackbox中指定) для каждого пользователя. 此外,请确保您的用户知道如何使用该环境。至少,教他们CTRL-ALT-BACKSPACE会终止 X 服务器。
但真正的男人和女人根本不需要图形用户界面 (GUI):他们使用命令 shell,例如bash。在 X Windows 为我们提供图形界面之前,自由软件基金会 (FSF) 已经创建了 GNU 工具,它们像地球上任何软件一样坚如磐石。它们是每个发行版的核心,没有它们,就不会有“Linux”系统(这就是为什么“GNU/Linux”是更准确的术语)。如果您别无选择,只能使用非常弱的硬件——我们这里指的是低至 386SX 的任何东西——您可以完全抛弃 X Windows,并且可以正常运行。即使您坚持使用 GUI,一些 shell 的基本知识也可以帮助您更好地利用您的系统。
将命令行下的 Linux 想象成 Willow Rosenberg 处理计算机的方式:虽然 GUI 像吸血鬼猎人 Buffy Summers 的一拳一样壮观,但即使是对 shell 的一点了解也会让您轻松施展近乎无限力量的微妙魔法。电视剧的真正粉丝会意识到这里隐含着一个警告:shell 的力量可能会让人上瘾,如果不是完全沉迷的话,如果您搞砸了事情,您可能会毁坏整个系统,而且没有恢复的机会。使用bash会让您尽可能接近机器的原始能量,而无需使用 C 编译器,危险也会随之增加。
Willow 花了六年时间才成为一个强大到足以毁灭世界的女巫,但您最多应该花几周时间来熟悉命令行。以下是四个段落,帮助您决定是否要付出努力
命令行环境的力量根植于其设计理念:每个工具都旨在只做一项工作,而且只做一项工作,但要出色地完成这项工作。此外,几乎每个工具都可以与其他工具连接,只需几个命令即可创建处理链。由于这些工具(几乎)都是通用的,因此您可以使用正确的组合来解决几乎所有问题。使用这些相同的命令,您可以为日常任务编写小程序(shell 脚本)。如果您仔细查看您的发行商包含的程序,您会发现很多程序都在bash中。其他脚本语言(如 Python 或 Perl)可能更强大,但命令行始终包含在内,并且开销要小得多。
学习 CLI 的各个工具有点令人生畏。很多命令都有奇怪的名字,甚至不假装是助记符(模式扫描工具awk是以其创建者 Aho、Kernighan 和 Weinberger 命名的),只在历史背景下才有意义(磁带归档实用程序tar现在用于分发压缩文件),或者看起来像拼写错误(umount而不是“unmount”,passwd而不是“password”)。每个命令可能有数十个选项,它们也可能同样神秘。由于该系统是由真正意义上的黑客编写的,他们希望计算机完成工作而不是谈论它,因此 shell 通常不会要求您确认,即使您告诉它删除硬盘上的每个文件也是如此。这就是 Buffy 中世界末日场景的由来。
但是,一旦您掌握了 shell 的基础知识,您就会更快地完成工作,您会理解诸如rm -rf /bin/laden之类的笑话,并且您会步履轻盈,目光炯炯。这就是为什么即使是年轻到在鼠标发明之后才出生的人,也会倾向于仅仅将 X Windows 用作打开大量终端窗口的舒适方式(无论是xterm还是资源消耗较少的rxvt).
CLI 几乎拥有您需要的所有工具mutt或pine用于电子邮件(真正的硬核篮筐案例使用mail) w3m或lynx用于上网,当然还有传奇编辑器vi(更常见的是vim现在)或emacs。此规则的明显例外是让您查看图片的程序。但您可能无论如何对那种东西不感兴趣,不是吗。
基本上,文本终端的选项与 X 终端相同。一切都稍微容易一些。
例如,如果您被迫使用不同的操作系统,则无需重新启动:任何允许您通过telnet(在安全的封闭网络上)或ssh(在其他任何地方)登录的程序都可以。Microsoft Windows 包含一个telnet客户端,最好将其描述为简陋的;对于严肃的工作,请尝试使用免费的 Win32 实现,例如 Simon Tathamt 的 PuTTY http://www.chiark.greenend.org.uk/sgtatham/putty/。使用 Mac OS X 的 Apple 用户应该对其客户端没有任何问题。
Linux 终端服务器项目也有一个用于文本终端的软件包。硬件可以尽可能基本:去找一台 386DX(对于那些不记得苏联或第一个星际迷航系列的人来说:这是原始奔腾的祖父)。主板可能没有 PCI 插槽,因此您需要 ISA 显卡和 ISA 网卡。这些硬件链的级别太低了,您可能很难找到它们,因为它们正在被丢弃,而不是二手出售。
但是,没有理由要求您的计算机必须足够先进才能理解 TCP/IP 协议并成为本地网络的一部分。您可以将几乎任何计算机连接到模拟大型机的串行端口:例如,Robert Kiesling 为旧 Mac 编写了一个 Linux HOWTO(MacTerminal MINI-HOWTO);在 Linux Gazette http://www.linuxgazette.com/issue70/arndt.html 的一篇文章中,Matthias Arndt 展示了如何将 Atari ST 转换为终端;Nicholas Petreley 在 IT World.com http://www.itworld.com/Comp/2384/LWD010511penguin2/ 中解释了如何使用您的 Palm Pilot。如果您可以将它连接到串行端口,那么您很有可能可以在 Linux 上运行它。对于更大的设置,有带有多个串行端口的特殊卡。当然,也有一个关于此的 HOWTO:David S.Lawyer 的 Serial HOWTO。
您还可以将特殊的文本终端作为独立的机器获得。David S. Lawyer 撰写了一篇关于该主题的广泛的 Linux HOWTO(Text-Terminal-HOWTO),其中解释了它们的工作原理、如何设置它们以及为什么要使用它们。
为了帮助您开始使用 shell,这里有一些命令,如果您共享系统,这些命令特别有用。选择这些非常基本的示例是为了对普通用户有用。
友好相处。nice命令是如果每个人都更频繁地使用它,世界将会变得更美好的事情之一,但没有人这样做。它允许您降低进程的调度优先级,以便不太重要的程序不会妨碍重要的程序。
例如,假设您有一个自己的声音的 WAV 录音,您在淋浴时唱歌,并且您想将其转换为 Ogg Vorbis 格式以分发给您在互联网上的粉丝,总共三个。执行此操作的简单命令是
oggenc -o showersong.ogg showersong.wav |
编码音乐格式是一个 CPU 密集型过程,因此性能会下降。现在,如果几分钟的时间无关紧要,只需在行首添加nice:
nice oggenc -o shower.ogg shower.wav |
现在,编码将以较低的优先级运行,但您仍然必须等待它完成才能再次使用 shell。要让计算机在后台执行命令,请在行尾添加一个 & 符号 (“&”)
nice oggenc -o shower.ogg shower.wav & |
shell 将通过为您提供一个作业编号和一个进程 ID (PID) 来响应,然后将要求您输入下一个命令。
nice命令是图形界面成为默认界面时失去的功能的一个很好的例子:使用鼠标驱动的界面无法简单地调整进程的优先级。
稍后执行。 另一种分散负载的方法是在系统不经常使用的时间启动密集型进程。根据与您在同一系统上的人员,这可能是凌晨三点或下午两点之前的任何时间。
at命令允许您设置启动程序或任何其他可以从命令行运行的进程的时间。为了让我们的淋浴歌曲在晚上八点,当您外出观看有意义的法国爱情片时进行编码,您输入命令“at”,后跟您希望执行开始的时间,然后按ENTER。然后您键入命令本身,后跟另一个ENTER,最后是CTRL-d来完成序列
me@mycomputer:> at 20:00 warning: commands will be executed using /bin/sh > nice oggenc -o shower.ogg shower.wav > <CTRL-d> job 1 at 2003-09-28 20:00 |
at命令接受几乎任何时间格式:美国人可以使用他们古怪的“08:00pm”表示法而不是“20:00”,并且有一整套快捷方式,例如midnight, noon甚至teatime. at将命令的输出发送到您的邮箱。
在您无聊时执行。at使用系统负载而不是一天中的时间来确定何时应运行命令的batch将执行保存到系统负载已降至某个值以下的时间(要查看您当前的系统负载,请从 shell 运行uptime或在 X Windows 下运行xload)。文档将此值指定为 0.8。batch的语法与at基本相同,只是时间字段是可选的。