Если вы хотите сделать, как вы заявили, я бы порекомендовал использовать CYGWIN.
Программа установки является зрелой и позволяет вам выбирать, какие команды и функции вы хотите. По умолчанию вы получите практически все, что вам нужно, а затем вы сможете расширить и настроить позже.
Для начала вам нужно понять разницу между терминалом и командной средой (AKA "shell"). Первая позволяет получить доступ к удаленной или локальной системе на низком уровне, вторая - это то, что запускается при подключении через терминал. Это верно для всех систем, в одних это просто лучше, чем в других. Также стоит отметить, что командные среды содержат встроенные команды, такие как UNIXy ls
и DOSy dir
но во всех системах есть другие инструменты "командной строки", например, ifconfig
в Linux и ipconfig.exe
в Windows. Может быть трудно различить их, но иногда вы будете сбиты с толку при попытке выполнить команду UNIXy в Windows. Однако многие из лучших инструментов командной строки UNIXy также доступны для Windows, либо через сам CYGWIN, либо через собственные версии. Например, отличный exiftool
который я использую для пакетного переименования фотографий как в Linux, так и в Windows.
Таким образом, вы можете заменить терминал чем-то более полнофункциональным, если вам это нужно, например, Lterm2 на вашем Mac, даже у Windows есть пара альтернатив, хотя лично я бы не стал беспокоиться - больше проблем, чем стоит.
В Windows (в любом случае, более новые версии) командная среда по умолчанию - cmd.exe
. Это далеко не так многообещающе, как эквивалент Linux BASH
. В Linux BASH является наиболее распространенным стандартом, но вы можете встретить другие, такие как ASH
, Korn Shell, SH
и другие. В действительности Windows предоставляет несколько других командных оболочек, наиболее распространенной и мощной из которых является PowerShell. PowerShell настолько мощен, потому что он может использовать и предоставлять интерфейсы для большинства библиотек .NET, многие из которых делают все умные вещи. Это также выбранная Microsoft административная оболочка, поэтому вы используете ее для обслуживания удаленных систем (как серверов, так и клиентов) и даже облачных сервисов, таких как Office 365 и Azure. Если вы хотите стать Гуру системы Windows, PowerShell - это необходимое средство обучения.
Вернемся к вашему вопросу. Вы можете легко запустить BASH через CYGWIN, который установит его и ряд вспомогательных команд. CYGWIN не только дает вам UNIXY способ взаимодействия с дисками, файлами и папками на компьютерах с Windows, но также делает доступными такие вещи, как реестр Windows, аналогичным образом.
Конечно, есть и другие ограничения. Начнем с того, что расположение папок в Windows всегда будет отличаться от хостов Linux или MAC, и вам придется учитывать это в любых написанных вами скриптах, если вы хотите, чтобы они работали на всех платформах.
Конечно, вы можете продолжать использовать gitBASH, но вы, вероятно, обнаружите, что в нем нет некоторых команд, которые, как вы ожидаете, будут доступны. Вы должны просто попробовать и посмотреть. Если вы пойдете по этому пути, то, когда вы найдете отсутствующую команду, вы можете просто найти ее в сети, она может быть доступна как собственный исполняемый файл Windows и, следовательно, должна использоваться из gitBASH, если она помещена в папку в вашем PATH.
Пояснение 1. Если вы привыкли к Linux, вы будете знакомы с тем фактом, что в каждом дистрибутиве есть "менеджер пакетов", который помогает в установке программного обеспечения из признанных и (мы надеемся) надежных источников. Они помогают обеспечить наличие всех необходимых компонентов и зависимостей. CYGWIN использует свой "установщик" для той же цели, хотя это намного проще. Помните, что большинство инструментов Linux скомпилированы для использования в Linux (как правило, вам нужно знать тип используемого вами процессора, плюс вам нужна загрузка внутренних зависимостей от "ядра" Linux). Для использования команд Linux в Windows требуется, чтобы все они были перекомпилированы для работы на платформе Windows. Существует вспомогательная библиотека, которая позволяет сделать это относительно безболезненно (MSYS? во всяком случае, вам не нужно это знать).
Вы правы, говоря, что Chocolatey - это попытка создать менеджер пакетов для Windows. Одним из главных недостатков Windows является отсутствие единого, надежного, общепризнанного источника пакетов - или "Магазина приложений", как сейчас повальное увлечение называть эти вещи! С помощью W8 Microsoft пытается (не все так хорошо, как следует сказать) исправить это, но в настоящее время она очень ограничена - нацелена на мобильные приложения и приложения ModernUI.
Тем не менее, многие разработчики Windows уже давно используют инструмент под названием NUGET, чтобы упаковать приложения для установки в Windows. NUGET использует PowerShell за кулисами. Chocolately - это набор скриптов, созданных с использованием PowerShell и NUGET, чтобы помочь автоматизировать установку. Он работает нормально, но все еще не пользуется широкой поддержкой, которую он, вероятно, должен иметь. Это достаточно легко создать установки пакетов для шоколадного, я сделал мою первую пару недель назад для инструмента ума отображения Open Source Freeplane.
Но, как вы говорите, нет никакой связи между Chocolatey (используя PowerShell) и BASH на CYGWIN. В вашем примере вам нужно будет решить, где и как вы хотите использовать VIM. Если вы хотите использовать его только в контексте CYGWIN, установите его через установщик CYGWIN. Однако, если вы хотите использовать его в качестве обычного редактора Windows, лучше установить его через Chocolatey. К сожалению, нет простого способа предсказать, что будет лучше. Вы могли бы даже сделать то и другое. С другой стороны, вы можете обнаружить, что некоторые приложения Windows также отлично работают при вызове из BASH, а другие - нет !! Боль да!
ОБНОВЛЕНИЕ 2: я упоминал, что вы должны придерживаться PowerShell! Добро пожаловать в мир кроссплатформенной работы. CYGWIN хочет, чтобы его собственный пакет Python устанавливался для удовлетворения внутренних зависимостей. Использование собственного Windows Python (например, установленного через Chocolately или вручную) может работать, но с другой стороны может не сработать. Нелегкий способ сказать, но очень вероятно, что в конечном итоге вы столкнетесь с проблемой, если у вас не будет установлен пакет Cygwin. Вот почему кто-то еще рекомендовал использовать виртуальную машину, чтобы вы содержали вещи в чистоте и обособленности.
Честно говоря, вам лучше принять, что вам нужно изучать разные инструменты для разных платформ. Это не так сложно. Это действительно зависит от того, что вы хотите сделать. Если вы хотите изучить командную строку Linux, используйте виртуальную машину. Если вы хотите автоматизировать задачи Windows, изучите PowerShell или, если вы уже знаете Python, используйте его вместо этого! Так много вариантов!