下一页 上一页 目录

8. 仅限 CLI

8.1 什么是 CLI

CLI 是 Comand Line Interface(命令行界面)的缩写。当你在没有 X Window 系统的计算机上安装 Linux 时,你将在 CLI 模式下工作!也许你会惊呼“哦……太可怕了”,但你的计算机会欢呼“耶……我有更多的 %CPU 和 %内存来工作和玩耍了!”。

8.2 为什么这里要讨论 CLI

一些可穿戴设备可能在图形芯片组、磁盘和内存空间以及电池寿命方面存在问题。如果你在文本模式下工作,你将节省电池寿命和磁盘使用量,以及大量的内存和 CPU 周期。而且如果你不必安装图形界面,你也将节省一些磁盘空间。因此,你为你的数据获得了更多空间。但你可能会觉得在文本模式下,什么都做不了。正如你将看到的,同样的事情可以在文本模式和图形环境完成。只是思考方式不同。

8.3 在文本模式下可以做什么?

我们必须用我们所拥有的少量程序来思考,这些程序可以通过输入/输出通道相互通信。这种类型的环境意味着我们必须用所有的手指工作,我们甚至可以摆脱鼠标。就像在 X Window 系统中一样,你有编辑器(ViEmacsJed...)、游戏(顺便说一句,可穿戴设备本身就是游戏)、查看器/浏览器(?less?morelynxlinks...)、文件管理器(mc...)等等。此外,有些人可能认为 CLI 很酷,但学习所有命令的配置和选项很困难。学习曲线实际上更陡峭,但是当你学会之后,你的工作速度会更快,而且工作速度越快,对于可穿戴设备来说就越好。我们将看到一些例子,这些例子可以加速我们的个人工作。

8.4 一堆实用程序

Shell 和脚本语言

UNIX 的基础是其强大的 shell。使用 shell,你可以做比 Microsoft 糟糕的批处理语言更多的事情。UNIX 提供了许多强大的 shell(tcshkshbash...),但我总是使用 sh。我知道它很旧,功能不如它的哥哥们那么强大,但它在每个 Unix 系统上都有。在 sh 中,经常使用函数/命令(echotest)。我为什么要这么说?你可以注意到 GNU 提供了程序 echotest,我说:“如果我们能消除这些程序,我们可以释放磁盘空间……好吧,不多,大约 20k。”。并且一些版本的 sh 非常经济。shell(脚本)语言就像一种小型编程语言:你可以使用循环(forwhile)、用户交互(read)、I/O (< >)... 要学习脚本,你只需输入:man sh(或 tcsh... 但更复杂...)。一个愚蠢的小脚本示例:for i in * .[^.]*; do echo $i; done (简单的 ls 命令)。

我必须学习 sedAWK 吗?

在 Unix 世界中,我们经常听到关于 AWKsed 的消息。这些程序是通用的,可以用于很多事情。GNU 提供了一堆可以替代 sedAWK 的实用程序(ddcutseq...)。你可能会问,为什么是 dd 呢?

dd 有一个很棒的小功能:转换大小写。一个例子

这个目录中有一些名称是大写的,但你想将它们更改为小写。使用 AWK,你必须输入:for i in *; do mv "$i" "`echo $i | awk '{print tolower($0)}'`"; done;使用 sed 你必须枚举所有字母;使用 dd,这非常容易,我认为:for i in *; do mv "$i" "`echo $i | dd conv=lcase`"; done

cut 是一个用于打印文本列的程序。此外,如果你必须打印一行的不同列,你可以使用 cut。如果你希望快速高效地完成工作,cutAWK 表现更好,因为 cut 专门用于这项工作。对于相同的任务,你也可以使用 shell 的内部命令(你可以,如果你为 IFS 变量赋值)。这是一个 AWKcutsh 的示例。我们只想显示一个包含 login : identity 字段的列表

通常,你不必学习 AWK。我认为你总是可以在没有 AWK 的情况下完成事情。(好吧,有时,AWK 更容易。)

关于 sed,缺点是你必须使用临时文件。如果你想节省磁盘空间并在命令行中编辑文件,你可以使用 ex,即 vi 的脚本版本。此外,sed 可以使用,但不是必需的。

实用程序中的冗余?

如果磁盘空间非常重要,你可以删除某些程序,这些程序执行的任务可以由其他程序完成。例如:如果你必须使用 dd,你不需要 cat;如果你有 vi,你不需要 ed(请帮助我找到其他例子...)。

8.5 别名还是脚本?

脚本比别名更强大。但是脚本占用磁盘空间,并且每次使用时都会加载。别名占用内存空间,如果你在 CLI 中,你拥有所有内存!别名比脚本更快,因为它们是从内存而不是从磁盘加载的。

通常,shell 为你提供别名/脚本的另一种选择:函数。函数具有脚本的功能,并且方便地只占用内存空间。要学习别名和函数,你可以查看手册页(manpages)。


下一页 上一页 目录