为什么Windows和Ubuntu有类似的shell命令?

Modified on: Sat, 09 Jun 2018 10:41:23 +0800

Ubuntu有一个bash(Bourne Again SHell),而Windows有它的专有shell。根据我的研究,在Windows / Ubuntu中没有用于shell脚本的语言的名称。它只是被称为shell脚本。

Windows& Ubuntu shell了解相同的命令,例如:lsmkdirrmdirmount等等?

是否有某种用于shell脚本的通用语言?如果是这样,请给我更多详细信息。

最佳答案

Windows cmd.exe不支持lsmount等,除非您自己安装并将它们添加到%PATH%(通过Cygwin,MinGW,Unix子系统基于应用程序(SUA)或其他东西)。 Powershell 可以。这是因为Powershell将这些作为标准Powershell命令的别名,以便Unix用户可以更舒服。请参阅Powershell中的兼容性别名列表。 Windows确实有rmdirmkdir等等,但这些当然不支持您在Ubuntu上找到的相同选项语法。

在Ubuntu中,这些与Bash无关。它们都是外部命令。这些公用事业有标准。 POSIX是最值得注意的(参见POSIX强制实用程序)和Linux标准库(LSB)是Linux系统的重要组成部分(主要基于POSIX,但有一些补充)。 Ubuntu上的那些主要由GNU提供,而GNU实用程序通常具有比POSIX所需的基础更多的功能。

POSIX还定义了您提到的shell语言(其中与cmd.exe )。它源自Bourne shell的语法。 Bash(现在你知道 Bourne再次指的是什么),也来自GNU,也在顶部添加了功能,但在需要时可以以符合POSIX的方式运行。 POSIX语言是sh所期望的。 bashkshashdashzsh都使用 语言,增强功能。 csh属于(梦魇)世界,tcsh增强csh

要了解更多信息,请查看Unix的历史和类似Unix的系统。 Unix推出了十多年的Windows,这些实用程序最初出现在Unix中。

Windows曾一度符合POSIX标准,因为美国政府要求政府机构使用操作系统(当他们添加Unix服务(SFU),第一段提到SUA。但是这个要求被废弃了,随后SUA被撤销了。

相关:

(请注意这些帖子的常见部分 - 它们都在Unix& Linux上,并标记为history - 您可能会发现浏览该标记非常有用。)

作者:Community,muru

相关问答

添加新评论