命令行接口通用规范

命令行接口通用规范
  1. 我想知道在哪里可以找到并了解有关 Linux 和 bash 中使用的命令行界面的一些一般概念?
  2. 到目前为止,我仅根据经验找到了一些此类信息,例如

    1. 对于 cat,没有任何进一步的参数,它接受 stdin 输入。但是您可以使用特殊名称显式指定 STDIN -,并且两种方式是等效的。cat也可以接受文件名cat filename.那么是-为了填写文件名的参数吗?这种用法-对于其他命令也很常见吗?
    2. chardet <<<somestring,中<<< 表示将字符串用作 stdin,与 相同echo somestring | chardet。这种用法<<< 也常见吗?
    3. 在 中,为参数指定数字范围的cut -c 1-3,20,25- employees方式在其他命令中也很常见吗?1-3,20,25-
  3. 最后但并非最不重要的一点是,这些一般思想在 bash、Linux 和 Unix 或使用 getopt 作为命令行解析器的软件中是否通用?

答案1

我建议阅读一本有关 unix 或 Linux shell 和命令行用法的书,以便学习基本用法并了解一些高级功能。然后您可以转向参考文档。

具体命令的用法在他们的手册中有描述。将显示您系统上的命令man cat手册。cat手册页通常是参考资料,而不是教程,尽管它们通常包含示例。在 Linux 上,cat --help显示简洁的使用消息(当您已经了解基础知识并想要找到特定任务的选项时,可以快速阅读)。

POSIX标准指定了每个 UNIX 系统都应该支持的最小命令、选项和 shell 功能集。大多数当前系统都支持POSIX:2004(也称为单一 UNIX 版本 3 和 Open Group 基本规范第 6 期)。GNU软件(Linux 上的实用程序)通常对此最小集有许多扩展。

命令行参数有常见的约定。 POSIX 指定实用约定大多数实用程序都遵循这一点,特别是:

  • -选项由后跟一个字母组成;-ab是 的简写-a -b
  • --表示选项结束。例如,在 中rm -- -a-a不是选项而是操作数,即要操作的文件,因此该命令删除名为 的文件-a
  • 单独-代表标准输入,其中需要输入文件。它代表需要输出文件的标准输出。

GNU 实用程序和其他实用程序也支持形式的“长选项” --name。一些实用程序违反一般惯例,采用带有单个前导破折号的多字母选项:-name

重定向是一项 shell 功能,因此您可以在 shell 手册中找到它。<<<使用字符串作为标准输入是 ksh 扩展,bash 和 zsh 也支持。只要 shell 支持,就可以在任何命令上使用它。

答案2

我建议研究一下 O'rielly 的 Unix in a Nutshell,或者只是谷歌一下 bash 教程。

Bash 又名 Bourne Again SHell。

如果我没记错的话,其他 shell 是 SH、CSH 和 KSH。 CSH 基于 C.

我还建议学习 C 和 Perl 或 Python,它们有助于大大加快速度。

答案3

那么 - 是否意味着填写文件名的参数?

是的。

- 这种用法对于其他命令也很常见吗?

我不太确定是否有一些标准,但一些 GNU 工具(例如:tar)使用 - 用于此目的。

在 cut -c 1-3,20,25-Employees 中,1-3,20,25- 为参数指定数字范围的方式在其他命令中也很常见吗?

这似乎很自然。我确信您可以在大多数 GNU 工具中使用它 - 它们大多遵循相同的约定,但我会检查任何非 GNU 工具的手册。

相关内容