В Windows какая разница между Git Bash и Windows Power Shell против командной строки - PullRequest
0 голосов
/ 29 мая 2019

Я парень из Mac, который привык к терминалу Mac.Сейчас я использую Windows.

  • Какая разница между этими параметрами CLI?
  • Когда я должен использовать один над другим?
  • Есть ли еще варианты интерфейса командной строки, которые я должен рассмотреть?
  • Какой интерфейс командной строки вы бы использовали, если бы вы были человеком Mac, пытающимся адаптироваться к Windows?

ПричинаЯ пытаюсь использовать Windows, хочу, чтобы CLI моих проектов Docker работал для пользователей Windows, чтобы я мог записывать файлы, поступающие из моего контейнера в Windows, и чтобы мои файлы README содержали инструкции для пользователей Windows.И в основном проверяю все, что я делаю в Windows, например, Python.

1 Ответ

3 голосов
/ 29 мая 2019

Git bash равен bash, что является IIRC и оболочкой по умолчанию для MacOS.Это не оболочка по умолчанию в Windows, хотя существует несколько реализаций (CygWin, MinGW, ...).
Git поставляется с рядом утилит * NIX;во избежание «коллизий» с одноименными командами Windows, наиболее распространенным вариантом установки является установка bash таким образом, чтобы другие * NIX-подобные команды были доступны только при запуске bash.Установщик Git создаст ярлык для запуска этой «частной» версии bash, следовательно, «git bash».

В командной строке запускается оболочка Windows по умолчанию, CMD.EXE, которая является производной отстарая командная оболочка MS-DOS, COMMAND.COM.Он гораздо менее способен, чем большинство * NIX-оболочек;например, до недавнего времени он не поддерживал конструкцию if / then / else и не поддерживает функции оболочки или псевдонимы (хотя есть некоторые обходные пути для этих ограничений).

PowerShell - это скорее сценарийсреда.Я бы сравнил его с Perl в системах UNIX / Linux - гораздо более мощный, чем стандартная оболочка, но не обязательно что-то, что я хотел бы использовать в командной строке.
Одна вещь, о которой следует знать, это то, что некоторые PowerShellфункции требуют более новой версии PowerShell, чем та, которая установлена ​​по умолчанию в определенной версии Windows, а для обновления PowerShell обычно требуются права администратора.В зависимости от версии вам также может потребоваться обновить .NET Framework.


Если бы я был человеком Mac, пытающимся адаптироваться к Windows ... это зависит.В краткосрочной перспективе было бы проще использовать что-то знакомое, например bash.Но в долгосрочной перспективе вы - и, что более важно, ваши потенциальные пользователи - возможно, не захотите зависеть от стороннего инструмента, тем более что для пользователей Windows, которые обычно представляют дополнительную кривую обучения.

Что касаетсячто использовать, когда ... это действительно зависит от того, чего вы пытаетесь достичь - как с точки зрения технической функциональности, так и с точки зрения интерфейса, который вы хотите представить своим пользователям.Как отмечалось выше, я считаю PowerShell более подходящим для сценариев, чем CLI, если только вам не нужно просто запускать командлет (встроенный или созданный вами).

...