- 我想知道在哪里可以找到并了解有关 Linux 和 bash 中使用的命令行界面的一些一般概念?
到目前为止,我仅根据经验找到了一些此类信息,例如
- 对于 cat,没有任何进一步的参数,它接受 stdin 输入。但是您可以使用特殊名称显式指定 STDIN
-
,并且两种方式是等效的。cat
也可以接受文件名cat filename
.那么是-
为了填写文件名的参数吗?这种用法-
对于其他命令也很常见吗? - 在
chardet <<<somestring
,中<<<
表示将字符串用作 stdin,与 相同echo somestring | chardet
。这种用法<<<
也常见吗? - 在 中,为参数指定数字范围的
cut -c 1-3,20,25- employees
方式在其他命令中也很常见吗?1-3,20,25-
- 对于 cat,没有任何进一步的参数,它接受 stdin 输入。但是您可以使用特殊名称显式指定 STDIN
- 最后但并非最不重要的一点是,这些一般思想在 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 工具的手册。