命令行界面通用规范

Tim*_*Tim 4 command-line shell utilities

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

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

Gil*_*il' 13

我推荐阅读一本关于 unix 或 Linux shell 和命令行用法的书,以便学习基本用法并感受一些高级功能。然后你可以转向参考文档。

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

POSIX标准规定每个UNIX系统应该支持命令,选项和特征壳的最小集。大多数当前系统大体上都支持POSIX:2004(也称为 Single UNIX version 3 和 Open Group Base Specifications issue 6)。GNU软件(Linux 上的实用程序)通常对这个最小集有许多扩展。

命令行参数有共同的约定。POSIX 指定了大多数实用程序遵循的实用程序约定,特别是:

  • 选项由-后跟一个字母组成;-ab是 的简写-a -b
  • --表示选项结束。例如,在rm -- -a-a是不是一种选择,而是一个操作数,即一个文件时采取行动,所以这个命令删除称为文件-a
  • lone-代表标准输入,其中需要输入文件。它代表需要输出文件的标准输出。

GNU 实用程序和其他工具也支持--name. 一些实用程序违反了一般约定,并采用带有单个前导破折号的多字母选项:-name

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


小智 6

我建议在 O'rielly 的 Nutshell 中查看 Unix,或者只是在谷歌上搜索 bash 教程。

Bash 又名 Bourne Again SHell。

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

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