电脑技术学习

标准化您的 UNIX 命令行工具

dn001

  本文介绍用于标准化界面以简化在不同 Unix® 系统之间移动的方法。如果您管理多种 UNIX 系统(特别是在异构环境中),则最艰巨的任务可能是在不同环境之间切换并执行不同的任务,同时还必须考虑系统之间的所有差异。本文并不介绍特定的差异,而是研究能够提供兼容层(或包装)以支持一致环境的方法。

  关于本系列

  典型的 UNIX® 管理员拥有一套经常用于辅助管理过程的关键实用工具、诀窍和系统。存在各种用于简化不同过程的关键实用工具、命令行链和脚本。其中一些工具来自于操作系统,而大部分的诀窍则来源于长期的经验积累和减轻系统管理员工作压力的要求。本系列文章主要专注于最大限度地利用各种 UNIX 环境中可用的工具,包括简化异构环境中的管理任务的方法。

  差异和问题

  如果您使用多种 UNIX 主机,特别是每种主机都支持不同的 UNIX 风格(Berkeley Software Distribution (BSD)、UNIX System Release 4 (VSVR4) 等)或版本,您也许发现自己要花大量的时间来检查和确定自己所在的主机类型,以便能够适应系统操作方式的变化。

  例如,ps 命令在基于 BSD 和基于 SVR4 的 UNIX 主机上,分别需要不同的命令行选项来获得大致相同的信息(有关更多细节,请参阅 系统管理员工具包: 进程管理技巧)。平台之间还存在更广泛的差异。有时,这种差异是命令名称发生了更改;Linux® 提供 adduser 命令,而 Solaris 则提供 useradd 命令。

  就标准化而言,有多种方法可供您采用。

  • 您可以选择对主要平台(例如 Solaris)进行标准化,并在其他平台上提供等效命令的包装以匹配 Solaris 标准。
  • 也可以选择对为所使用的任务提供最佳组合的命令集进行标准化,挑选您喜欢的命令并为特定平台上不存在的命令构建包装。
  • 您可以创建自己的一套执行特定任务的脚本(包括您自己用于 ls、ps 等常用工具的替代脚本),以便它们生成您想要的信息。这样做有点危险,原因是它意味着您可能从未使用原始命令,从而可能在您的脚本不可用时导致潜在的问题。
  •   如何具体实现各个命令的包装以提供一个兼容或唯一的层,这取决于您是尝试简单地为功能相同的替代命令提供一个公认名称,还是需要构建一个或多个命令的包装以获得等效的结果。可能的解决方案有三种:

    标签: