10.2.4 Linux应用程序

Linux的命令行(shell)用户界面包含大量的标准应用程序。这些程序可以大致分成以下6类:

1)文件和目录操作命令。

2)过滤器。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

3)程序设计工具,如编辑器和编译器。

4)文档处理。

5)系统管理。

6)其他。

POSIX 1003.2标准规定了100种左右关于上述程序的语法和语义,主要是前三类中的程序。让这些程序具有统一的标准主要是为了实现让任何人写的shell脚本可以在任何Linux系统上运行。

除了这些标准应用程序外,当然还有许多其他应用程序,比如Web浏览器,图片浏览器等。

下面我们看一看一些程序的例子,首先从文件和目录操作开始。


cp a b


将文件a移动到b,而不改变原文件。相比之下


mv a b


将文件a移动到b但是删除原文件。从效果上来看,它是文件移动而不是通常意义上的复制。cat命令可以把多个文件的内容连接起来,它读入每一个输入文件然后把它们按顺序复制到标准输出中。可以通过rm命令来删除文件。命令chmod可以让属主通过修改文件的权限位来改变其访问权限。使用mkdir和rmdir命令可以分别实现目录的创建和删除。为了列出一个目录下的文件,可以使用ls命令。它包含大量的标志来控制要显示文件的哪些特征(如大小、用户、群、创建日期)、决定文件的显示顺序(如字母序、修改日期、逆序)、指定文件输出格式等。

我们已经见到了很多过滤器:grep从标准输入或者一个或多个输入文件中提取包含特定模式的行;sort将输入进行排序并输出到标准输出;head提取输入的前几行;tail提取输入的后几行。其他的由1003.2定义的过滤器有:cut和paste,它们实现一段文档的剪切和粘贴;od将输入(通常是二进制)转换成ASCII文档,包括八进制,十进制或者十六进制;tr实现字符大小写转换(如小写换大写),pr为打印机格式化输出,包括一些格式选项,如运行头,页码等。

编译器和程序设计工具包括gcc(它调用C语言编译器)以及ar(它将库函数收集到存档文件中)。

另外一个重要的工具是make,它负责维护大的程序,这些程序的源码通常分布在多个文件中。通常,其中一些文件是头文件(header file),其中包括类型、变量、宏和其他声明。源文件通常使用include将头文件包含进来。这样,两个或更多的源文件可以共享同样的声明。然而,如果头文件被修改,就需要找到所有依赖于这个头文件的源文件并对它们重新进行编译。make的作用是跟踪哪些文件依赖于哪些头文件等,然后安排所有需要进行的编译自动进行。几乎所有的Linux程序,除了最小的那些,都是依靠make进行编译的。

一部分POSIX标准应用程序列在图10-2中,包括每个程序的简要说明。所有Linux系统中都有这些程序以及许多其他标准的应用程序。

阅读 ‧ 电子书库
图 10-2 POSIX定义的一些常见的Linux应用程序