Я купил и использую Windows 7 Ultimate, и мне нравится использовать ее для разработки приложений. Один из недостатков (как и в любой другой ОС) заключается в том, что я не могу запускать сценарии Bash. Есть ли способ запускать сценарии Bash в Windows, установив какое-либо программное обеспечение? Ничего страшного, если он не работает на 100%, но пока доступны наиболее распространенные функции, он должен быть отличным.
100
Ответы:
Установите Cygwin , который включает в себя Bash среди множества других утилит GNU и Unix (без которых bash вряд ли будет очень полезен в любом случае).
Другой вариант - MSYS от MinGW, который включает bash и меньший набор более важных утилит, таких как awk. Лично я предпочел бы Cygwin, потому что он включает в себя такие тяжелые инструменты, как Perl и Python, без которых я не могу жить, в то время как MSYS экономит на них и предполагает, что вы собираетесь установить их самостоятельно.
Обновлено : если кто-то заинтересован в этом ответе и использует MS-Windows 10, обратите внимание, что в MS-Windows 10 есть функция « Подсистема Windows для Linux », которая - после включения - позволяет вам установить образ Ubuntu в пользовательском режиме и затем запустите на нем Bash. Это обеспечивает 100% совместимость с Ubuntu для отладки и запуска сценариев Bash, но эта установка полностью автономна от Windows, и вы не можете использовать сценарии Bash для взаимодействия с функциями Windows (такими как процессы и API), за исключением ограниченного доступа к файлам через функцию DrvFS. .
источник
mingw32
каталог, содержащий в основном MSYS. Итак, Git для Windows - это MinGW, который включает Git (его необязательно в установщике MSYS) с «более приятным» установщиком: superuser.com/a/1362301/10942Лучший вариант, который я смог найти, - это Git Windows. Просто установите его, а затем щелкните правой кнопкой мыши и выберите «Git Bash Here», это откроет окно bash.
Откроется такое окно bash:
и команды linux работают ...
Я пробовал команды 'sh', 'vi', 'ssh', 'curl' и т. Д.
источник
Если вы ищете что-то более родное, вы можете использовать getGnuWin32 для установки всех перенесенных инструментов командной строки unix. Этот плюс winBash дает вам большую часть рабочей среды Unix. Добавьте console2 для лучшего эмулятора терминала, и вы почти не сможете определить свой на Windows!
Cygwin - лучший инструментарий в целом, но я столкнулся с неожиданными проблемами из-за разделения между ним и окнами. Однако ни одно из этих решений не так хорошо, как родная система Linux.
Вы можете изучить возможность использования virtualbox для создания виртуальной машины Linux с выбранным вами дистрибутивом. Настройте его для совместного использования папки с ОС хоста, и вы можете использовать настоящую среду разработки Linux и делиться с Windows. Просто следите за этими маркерами EOL, они появляются каждый раз.
источник
Лучший вариант? Windows 10. Встроенная поддержка Bash!
источник
cbwin
... но это уже слишком много для простого обходного пути).Вы всегда можете установить Cygwin для запуска оболочки Unix под Windows. Я широко использовал Cygwin с Window XP.
источник
После установки git-extentions ( https://code.google.com/p/gitextensions/ ) вы можете запустить файл .sh из командной строки. (Нет ./script.sh требуется, просто запустите его как файл bat / cmd) Или вы можете запустить их в «полной» среде bash, используя оболочку MinGW Git bash.
Я не большой поклонник Cygwin (да, я уверен, что он действительно мощный), поэтому запуск сценариев bash в Windows без необходимости его установки идеально подходит для меня.
источник
bash
из экземпляра PowerShell, потерпел неудачу, установил git-extensions и повторил попытку, и это сработало для меня.Для запуска в исходном виде вам, вероятно, потребуется использовать Cygwin (без которого я не могу жить при использовании Windows). Так что сразу +1 за Cygwin. Все остальное было бы нецивилизованным.
ОДНАКО, как уже было сказано, я недавно начал использовать комбинацию утилит для легкого ПОРТИРОВАНИЯ сценариев Bash в Windows, чтобы мои коллеги по анти-Linux могли легко выполнять сложные задачи, которые лучше обрабатываются утилитами GNU.
Обычно я могу перенести сценарий Bash в пакетную обработку за очень короткое время, открыв исходный сценарий на одной панели и записав пакетный файл на другой панели. Я использую следующие инструменты:
Я предпочитаю UnxUtils GnuWin32 из-за того, что [кто-нибудь, пожалуйста, поправьте меня, если я ошибаюсь] утилиты GnuWin обычно должны быть установлены, тогда как UnxUtils - это автономные двоичные файлы, которые просто работают из коробки.
Однако CoreUtils не включает некоторые знакомые утилиты * NIX, такие как cURL, который также доступен для Windows (curl.haxx.se/download.html).
Я создаю папку для проектов и всегда УСТАНАВЛЯЮ ПУТЬ =. в файле .bat, чтобы не было ссылок на другие команды, кроме основных команд оболочки CMD (а также на конкретные UnxUtils, необходимые в папке проекта для того, чтобы сценарий пакетной обработки работал должным образом).
Затем я копирую необходимые файлы CoreUtils .exe в папку проекта и ссылаюсь на них в файле .bat, например ". \ Curl.exe -s google.com" и т. Д.
В программе Bat2Exe происходит волшебство. Как только ваш пакетный файл будет готов и успешно протестирован, запустите Bat2Exe.exe и укажите путь к папке проекта. Затем Bat2Exe создаст двоичный файл Windows, содержащий все файлы в этой конкретной папке, и будет использовать первый .bat, который будет использоваться в качестве основного исполняемого файла. Вы даже можете включить ICO-файл для использования в качестве значка для создаваемого окончательного EXE-файла.
Я пробовал несколько таких программ, и многие из сгенерированных двоичных файлов помечаются как вредоносные, но версия Bat2Exe, на которую я ссылался, работает отлично, а сгенерированные файлы .exe сканируются полностью.
Полученный исполняемый файл можно запустить в интерактивном режиме двойным щелчком или запустить из командной строки с параметрами и т. Д., Как и обычный пакетный файл, за исключением того, что вы сможете использовать функциональность многих инструментов, которые вы обычно используете. в Баш.
Я понимаю, что это занимает довольно много времени, но если я могу немного отвлечься, я также написал пакетный сценарий, который я называю PortaBashy, который мои коллеги могут запускать из общего сетевого ресурса, содержащего переносную установку Cygwin. Затем он устанавливает переменную% PATH% в обычный формат * NIX (/ usr / bin: / usr / sbin: / bin: / sbin) и т. Д. И может либо запускаться в самой оболочке Bash, либо запускать более мощную и симпатичный эмулятор терминала MinTTY.
Всегда есть множество способов выполнить то, что вы пытаетесь сделать; это просто вопрос сочетания правильных инструментов для работы, и во многих случаях все сводится к личным предпочтениям.
источник
Есть еще одна теоретическая возможность сделать это: профессиональные версии Windows имеют встроенную поддержку POSIX, поэтому bash можно было скомпилировать для Windows изначально.
Жалко, но сам скомпилированный так и не нашел ...
источник