预计阅读本页时间:-
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系统中都有这些程序以及许多其他标准的应用程序。
