我是Mac的人,习惯了Mac的终端。现在我正在使用Windows。
我尝试使用Windows的原因是,我希望确保我的Docker项目的CLI为Windows用户工作,我可以将来自容器的文件写入Windows,并确保我的自述文件对Windows用户有指示。基本上测试我在Windows上所做的一切,比如Python。
发布于 2019-05-29 14:20:54
Git是bash
,它也是MacOS上的默认外壳。它不是Windows上的默认shell,尽管有几个实现(CygWin、MinGW、.)。
Git与许多POSIX (UNIX/Linux/等)捆绑在一起。除了bash
之外,为了避免与类似名称的bash
命令发生“冲突”,最常见的安装选项是安装bash
,使其他POSIX命令只有在运行bash
时才可用。Git安装程序将创建一个快捷方式来启动这个“私有”版本的bash
,从而启动"git“。
Windows命令提示符运行默认的Windows,CMD.EXE,它是旧的MS命令shell COMMAND.COM的衍生物。它的能力要比大多数POSIX shell低得多;例如,它直到最近才支持if/ than /else结构,并且它不支持shell函数或别名(尽管有一些解决这些限制的方法)。
PowerShell更像是一个脚本环境。我将其与UNIX/Linux系统上的Perl进行比较--比标准shell强大得多,但不一定是我想在命令行使用的东西。
需要注意的一件事是,一些更好的PowerShell特性可能要求您更新PowerShell版本--与PowerShell捆绑的版本通常是几年前的。更新PowerShell通常需要管理特权;根据版本的不同,您可能还需要更新.NET框架。
如果我是个想适应Windows的Mac用户.那得看情况。在短期内,使用类似bash
之类的东西会更容易。但长期而言,你--更重要的是,你的潜在用户--可能不想依赖第三方工具,尤其是对于Windows用户来说,这通常会带来额外的学习曲线。
当..。这真的取决于你想要完成什么--无论是在技术功能方面,还是在你想向用户展示的界面方面。如上所述,我认为PowerShell比CLI更适合脚本编写,除非您只需要运行cmdlet (一个内置的或自己创建的cmdlet)。
发布于 2022-03-31 19:23:21
这是对shell之间的一些差异的高级概述,而不是通过特性比较的特性。
CMD
(命令提示符)和PowerShell
都是Windows的外壳。CMD.exe
来自COMMAND.COM
,它本身是从MS-DOS
中诞生的,具有一些逻辑结构,可以运行程序、进程输出和执行您期望从shell执行的大多数基本任务。根据其他shell所能做的,它通常被认为是非常有限的,但是如果您知道如何使用它,它并不是无能为力的。然而,它从来没有真正的“设计”,新的功能在没有明确的路线图的情况下被加入。
Powershell
是一个从底层设计到.NET的外壳,并内置了更现代的语言结构。微软将Powershell设计成了CMD.exe
和批处理脚本的替代品,尽管CMD
远未被人们所反对。Powershell
可以直接调用.NET类,本机使用WMI对象,并内置了远程处理功能。它更类似于编程或脚本语言,而不是批处理脚本。现在围绕Powershell
的社区要比批处理脚本强得多,通常建议用Powershell
编写新代码,而不是继续使用批处理(CMD
)脚本。
Powershell
一开始确实觉得自己像CMD
。您可以在其中运行程序并处理其输出,在大多数情况下,程序的行为与从Powershell
或CMD
运行的程序完全相同。但是,您很快就会发现一些不同之处--并不是所有变量都被视为环境变量,变量都以$
作为前缀,而不是包装在%
中,而且Powershell
管道比CMD
管道强大得多。Powershell
也是完全面向对象的,与大多数其他主要基于文本的shell语言相比,它是独一无二的。
你可以在这里读到更多介绍了为什么推荐Powershell
而不是批处理脚本,CMD.exe
和批处理文件也有很好的历史记录。
Git Bash
是您习惯于在Linux和MacOS上使用的bash
shell,而是为MacOS编译的。它有一个名称为Git
的前缀,表示它是用用于Windows的Git安装的,这是一个git
包,以及为用于Windows的Git编译的各种*nix实用程序,以便与git一起使用。您可以在其中运行sh
和bash
脚本,也可以调用它安装的Unix程序。
Unix实用程序通常也可以在CMD
或PowerShell
中运行,但在默认情况下,安装程序不会将这些实用程序添加到系统或用户PATH
中,因为不可能覆盖用户在其他上下文中可能使用的相同实用程序。基本上,它将安装在Git Bash
中的实用程序隔离到Git Bash
。
除了git
自动化之外,我不建议在任何与生产相关的方面使用Git Bash
本身,在这种情况下,您可能更愿意自己管理cygwin
、msys2
或其他Unix兼容层的安装。但是在开发过程中它可以是一个方便的shell,尽管现在我更喜欢PowerShell
而不是bash
的Windows。
https://stackoverflow.com/questions/56362161
复制相似问题