Есть ли способ запуска сценариев Bash в Windows?

Я купил, и я использую Windows 7 Ultimate, и мне нравится использовать его для разработки приложений. Одна из нижних сторон (как и для каждой ОС) заключается в том, что я не могу запускать сценарии Bash. Есть ли способ запустить сценарии Bash в Windows, установив некоторое программное обеспечение? Это нормально, если он не работает на 100%, но до тех пор, пока доступны самые распространенные функции, это должно быть здорово.

Ответ 1

Установите Cygwin, который включает Bash среди многих других утилит GNU и Unix (без которых маловероятно, что Bash будет очень полезно в любом случае).

Другим вариантом является MinGW MSYS, который включает Bash и меньший набор более важных утилит, таких как awk. Лично я бы предпочел Cygwin, потому что он включает такие тяжелые инструменты для поднятия, как Perl и Python, которые, как мне кажется, я не могу жить без них, в то время как MSYS отказывается от них и предполагает, что вы собираетесь их установить самостоятельно.

Обновление: Если кто-то интересуется этим ответом и работает MS-Windows 10, обратите внимание, что в MS-Windows 10 есть функция Подсистема Windows для Linux "который - после включения - позволяет установить образ пользовательского режима Ubuntu, а затем запустить Bash. Это обеспечивает 100% совместимость с Ubuntu для отладки и запуска сценариев Bash, но эта установка полностью автономна из Windows, и вы не можете использовать сценарии Bash для взаимодействия с функциями Windows (такими как процессы и API), за исключением ограниченного доступа к файлам через функцию DrvFS.

Ответ 2

Если вы ищете что-то немного более родное, вы можете использовать getGnuWin32 для установки всех инструментов командной строки unix, которые были портирован. Этот плюс winBash дает вам большую часть рабочей среды unix. Добавьте console2 для лучшего эмулятора терминала, и вы почти не можете рассказать о своих окнах!

Cygwin - лучший инструментарий в целом, но я столкнулся с проблемами, возникающими из-за разрыва между ним и окнами. Однако ни одно из этих решений не так хорошо, как родная Linux-система.

Возможно, вы захотите изучить virtualbox, чтобы создать виртуальную виртуальную машину с вашим дистрибутивом. Установите его для совместного использования папки с хостом os, и вы можете использовать настоящую среду разработки Linux и делиться с окнами. Просто следите за этими маркерами EOL, они получают каждый раз.

Ответ 3

Вы всегда можете установить Cygwin для запуска оболочки Unix под Windows. Я широко использовал Cygwin с Window XP.

Ответ 4

После установки git -extentions (https://code.google.com/p/gitextensions/) вы можете запустить .sh файл из командной строки. (No./script.sh требуется, просто запустите его, как файл bat/cmd) Или вы можете запустить их в "полной" среде bash, используя оболочку MinGW Git bash.

Я не большой поклонник Cygwin (да, я уверен, что он действительно мощный), поэтому запускать скрипты bash на окнах без необходимости устанавливать его для меня идеально.

Ответ 5

Лучший вариант, который я могу найти, это Git Windows. Просто установите его, затем щелкните правой кнопкой мыши и выберите "Git Bash Here", это откроет окно bash enter image description here.

Это откроет окно bash, например: enter image description here

и команды Linux работают...

Я пробовал команды 'sh', 'vi', 'ssh', 'curl' и т.д...

Ответ 6

Лучший вариант? Окна 10. Родная поддержка Bash!

Ответ 7

Для запуска изначально вам, скорее всего, придется использовать Cygwin (который я не могу прожить без использования Windows). Так что сразу с места в карьер, +1 для Cygwin. Все остальное было бы нецивилизованным.

ОЧЕНЬ, что, как я уже сказал, я недавно начал использовать комбинацию утилит, чтобы легко создавать сценарии PORT Bash для Windows, чтобы мои сотрудники, работающие с ОС Linux, могли легко запускать сложные задачи, которые лучше обрабатываются утилитами GNU.

Я могу обычно переносить Bash script в пакетную загрузку за очень короткое время, открывая исходный script на одной панели и записывая пакетный файл в другой панели. Инструменты, которые я использую, следующие:

Я предпочитаю UnxUtils для GnuWin32 из-за того, что [кто-то, пожалуйста, поправьте меня, если я ошибаюсь] Утилиты GnuWin обычно должны быть установлены, а UnxUtils - это автономные двоичные файлы, которые просто работают из коробки.

Однако CoreUtils не содержит некоторых знакомых * NIX-утилит, таких как cURL, которые также доступны для Windows (curl.haxx.se/download.html).

Я создаю папку для проектов и всегда устанавливаю PATH =. в .bat файле, чтобы никакие другие команды, кроме основных команд оболочки CMD, не указывались (а также определенные UnxUtils, необходимые в папке проекта для Batch script, чтобы функционировать должным образом).

Затем я копирую необходимые файлы CoreUtils.exe в папку проекта и ссылаюсь на них в файле .bat, таком как ".\curl.exe -s google.com" и т.д.

Программа Bat2Exe - это то место, где происходит волшебство. Как только ваш пакетный файл будет завершен и был успешно протестирован, запустите Bat2Exe.exe и укажите путь к папке проекта. Затем Bat2Exe создаст двоичный файл Windows, содержащий все файлы в этой конкретной папке, и будет использовать первый .bat, который он использует для использования в качестве основного исполняемого файла. Вы даже можете включить файл .ico для использования в качестве значка для окончательного файла .exe, который сгенерирован.

Я пробовал несколько из этих типов программ, и многие из сгенерированных двоичных файлов отмечены как вредоносные программы, но версия Bat2Exe, на которую я ссылаюсь, отлично работает, и сгенерированные файлы .exe полностью сканируются.

Результирующий исполняемый файл может запускаться интерактивно путем двойного щелчка или запускаться из командной строки с параметрами и т.д., как и обычный пакетный файл, за исключением того, что вы сможете использовать функциональность многих инструментов, которые вы обычно будет использоваться в Bash.

Я понимаю, что это довольно долго, но если я могу немного отвлечься, я также написал Batch script, который я называю PortaBashy, который мои коллеги могут запускать из общего сетевого ресурса, который содержит переносную установку Cygwin. Затем он устанавливает переменную% PATH% в нормальный формат * NIX (/usr/bin:/usr/sbin:/bin:/sbin) и т.д. И может либо запускаться в оболочку Bash, либо запускать более- мощный и красивый эмулятор терминала MinTTY.

Всегда есть множество способов выполнить то, что вы пытаетесь сделать; это просто вопрос объединения правильных инструментов для работы, и много раз это сводится к личным предпочтениям.

Ответ 8

Там есть еще одна теоретическая возможность: профессиональные версии Windows имеют встроенную поддержку POSIX, поэтому bash может быть скомпилирован для Windows изначально.

Жаль, но я до сих пор не нашел скомпилированный...