Как установить bash windows 7

Обновлено: 04.07.2024

Windows 7 / 2008 - установка подсистемы UNIX. SUA + SDK

Y. G. Категория: Windows 29 декабря 2016 29 декабря 2016 7204

Подсистема UNIX в Windows или сокращенно SUA, на сегодня устанавливается штатными средствами, путем включения фичи Subsystem for UNIX-based Appplications, которая находится в Control Panel > Turn Windows features on or off:

win sua1

Установка подсистемы UNIX в Windows 7

Как устанавливается из фич описано выше, для меня самый простой способ - установить из командной строки, для этого достаточно запустить командную строку от имени Администратора, перейти в каталог Windows:

win sua2

Установка подсистемы UNIX в Windows Server 2008 R2

Устанавливает путем ключения серверной фичи Server Manager > Features > Add Features > Subsystem for UNIX-based Appplications:

win sua3

Либо из командной строки, где параметр restart автоматом перезагрузит систему после установки:

ServerManagerCmd.exe -install Subsystem-UNIX-Apps -restart

Установка SDK

SDK можно загрузить по этой ссылке, в момент установки отметить нужные параметры:

win sua4

win sua5

После установки потребуется перезагрузить компьютер.

После всех манипуляций, в меню Пуск будет доступно меню с названием Subsystem for UNIX-based Applications от куда можно запустить Korn Shell и заюзать Linux утилиты:

win sua7

На тему.

Unxutils работают без каких либо дополнительных библиотек, достаточно загрузить архив, распаковать и использовать, перечень утилит представлен ниже:

win sua8

Cygwin имеет свой установщик, который загружает список пакетов, из которых можно выбрать необходимые, изначально можно загрузить весь список в локальную дирректорию, в последствии производить установку из локального "зеркала", после установки запускается cygwin terminal в котором можно использовать достаточный набор Linux утилит.


Если вы изучаете скрипты оболочки, вероятно, как часть вашей учебной программы, вам нужно использовать команды Linux для практики команд и скриптов.

В вашей школьной лаборатории может быть установлен Linux, но лично у вас нет ноутбука с Linux, а обычный компьютер с Windows, как и у всех.

Ваша домашняя работа должна выполняться с командами Linux, и вы задаетесь вопросом, как запускать команды и скрипты Bash в Windows.

Вы можете установить Linux вместе с Windows в режиме двойной загрузки.

Этот метод позволяет вам выбрать Linux или Windows при запуске компьютера.

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

Вы также можете использовать терминалы Linux онлайн, но ваша работа не будет сохранена.

Хорошая новость заключается в том, что есть несколько способов запуска команд Linux внутри Windows, как и в любом обычном приложении. Разве это не круто?

Использование команд Linux внутри Windows

Если вы просто хотите попрактиковаться в Linux, вы можете использовать один из этих методов для запуска команд Bash в Windows.

1. Используйте оболочку Linux Bash в Windows 10

Знаете ли вы, что вы можете запустить дистрибутив Linux внутри Windows 10?

Подсистема Windows для Linux (WSL) позволяет запускать Linux внутри Windows.

В следующей версии WSL будет использоваться настоящее ядро Linux внутри Windows.

Этот WSL, также называемый Bash для Windows, дает вам дистрибутив Linux в режиме командной строки, работающий как обычное приложение Windows.


Вы можете найти некоторые популярные дистрибутивы Linux, такие как Ubuntu, Kali Linux, openSUSE и т. д. В Магазине Windows.

Вам просто нужно скачать и установить его, как любое другое приложение Windows.

После установки вы можете запускать все необходимые вам команды Linux.


2. Используйте Git Bash для запуска команд Bash в Windows

Вы, наверное, знаете, что такое Git.

Это система контроля версий, разработанная создателем Linux Линусом Торвальдсом

Одним из инструментов, включенных в Git для Windows, является Git Bash.

Приложение Git Bash предоставляет и слой эмуляции для командной строки Git.

Помимо команд Git, Git Bash также поддерживает множество утилит Bash, таких как ssh, scp, cat, find и т. д.


Другими словами, вы можете запускать множество общих команд Linux / Bash, используя приложение Git Bash.

Вы можете установить Git Bash в Windows, скачав и бесплатно установив инструмент Git для Windows с веб-сайта:

3. Использование команд Linux в Windows с Cygwin

Если вы хотите запускать команды Linux в Windows, рекомендуется Cygwin.

Cygwin был создан в 1995 году для обеспечения POSIX-совместимой среды, которая изначально работает в Windows.

В течение двух десятилетий пользователи Windows используют Cygwin для запуска и выполнения команд Linux / Bash.


Вы можете скачать Cygwin с официального сайта, который будет показан ниже.

4. Используйте Linux на виртуальной машине

Таким образом, вы устанавливаете дистрибутив Linux (с графическим интерфейсом) внутри Windows и запускаете его как обычное приложение Windows.

Этот метод требует, чтобы в вашей системе было достаточно оперативной памяти, по крайней мере, 4 ГБ, но лучше, если у вас более 8 ГБ.

Здесь хорошо то, что вы по-настоящему почувствуете использование настольного Linux. Если вам нравится интерфейс, вы можете позже полностью перейти на Linux.

Существует два популярных инструмента для создания виртуальных машин в Windows: Oracle VirtualBox и VMware Workstation Player.

В прилетевшем обновлении Windows 10 Creators Update появилась интереснейшая возможность — запускать виндовые программы в этом их линуксе. Официальные примеры меня категорически не устроили — евангелисты Microsoft предложили мне рисовать корову в PowerShell и запускать Notepad из bash. Чё, правда? Это всё до чего вы додумались?

image

Как человек страстно ждавший возможность запуска exe-файлов внутри WSL, я хочу поделиться опытом правильного использования новой фичи.

Bash on Windows я использую для всякой мелкой механизации — выкачать, распарсить, проанализировать. Взять 10-20 гигов логов и поколдовать над ними в поисках чего нибудь этакого. Взять 200 гигов исходных данных, сделать ВЖУХ и пульнуть пару мегов результатов в базу сайта. Вобщем, обычная бытовуха, как у всех. Разве нет?

Кейс номер один

Вот то ради чего именно я ждал возможность запуска exe-файлов на WSL.

Имеется некоторое количество веб-сайтов для разных программ, требуется проверить что все ссылки «download» ведут на актуальные версии.

image

Пропустив этап поиска ссылок и скачивания файлов перейдём к извлечению нужной информации.
Делаем это двумя путями.

Путь первый — обращение к WMIC

В CMD вызов данной информации выглядит вот так:


/VALUE — что бы получить всю возможную информацию

В bash это выглядит вот так


слэшей много и все нужные

Но мне то нужно не просто на экран вывести, а получить и обработать.

Поэтому, в PHP это выглядит вот так:


/mnt/c/Windows/System32/cmd.exe — полный путь, что бы наверняка
$b — результат многострочный, поэтому получаем его в виде массива (в $a попадает лишь последняя строчка)
$ini — формат результата совместим с ini-файлом, грех этим не воспользоваться — превращаем полученный массив $b в текст для последующего преобразования с помощью parse_ini_string()
.

Путь второй — использование Scripting.FileSystemObject

Данной решение я нашёл здесь и немножко допилил.

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


Я заменил эту строчку на цикл извлекающий ВСЕ возможные свойства файла


Почти так же как как в случае с WMI, только приходится перекодировать результат в юникод. ( CP866 — всплакнул )

Склеиваем полученные результаты в единый текст и парсим


Делаем разбиение на секции (второй параметр — true) и во избежании проблем включаем — INI_SCANNER_RAW

ВЖУХ и получаем массив всех возможных свойств файла с которым удобно работать.


Array
(
[WMIC] => Array
(
[AccessMask] => 1179817
[Archive] => TRUE
[Caption] => c:\windows\system32\cmd.exe
[Compressed] => FALSE
[CompressionMethod] =>
[CreationClassName] => CIM_LogicalFile
[CreationDate] => 20170318235750.921718+180
[CSCreationClassName] => Win32_ComputerSystem
[CSName] =>
[Description] => c:\windows\system32\cmd.exe
[Drive] => c:
[EightDotThreeFileName] => c:\windows\system32\cmd.exe
[Encrypted] => FALSE
[EncryptionMethod] =>
[Extension] => exe
[FileName] => cmd
[FileSize] => 271872
[FileType] => Application
[FSCreationClassName] => Win32_FileSystem
[FSName] => NTFS
[Hidden] => FALSE
[InstallDate] => 20170318235750.921718+180
[InUseCount] =>
[LastAccessed] => 20170318235750.921718+180
[LastModified] => 20170318235750.921718+180
[Manufacturer] => Microsoft Corporation
[Name] => c:\windows\system32\cmd.exe
[Path] => \windows\system32\
[Readable] => TRUE
[Status] => OK
[System] => FALSE
[Version] => 10.0.15063.0
[Writeable] => TRUE
)

[FileSystemObject] => Array
(
[Имя] => cmd.exe
[Размер] => 265 КБ
[Тип элемента] => Приложение
[Дата изменения] => 18.03.2017 23:57
[Дата создания] => 18.03.2017 23:57
[Дата доступа] => 18.03.2017 23:57
[Атрибуты] => A
[Автономность] =>
[Доступность] => Доступен автономно
[Распознанный тип] => Приложение
[Владелец] => TrustedInstaller
[Вид] => Программа
[Дата съемки] =>
[Исполнители] =>
[Альбом] =>
[Год] =>
[Жанр] =>
[Дирижер] =>
[Теги] =>
[Оценка] => Без оценки
[Авторы] =>
[Название] =>
[Тема] =>
[Категории] =>
[Комментарии] =>
[Авторские права] => c Microsoft Corporation. All rights reserved.
[№] =>
[Продолжительность] =>
[Скорость потока] =>
[С защитой] =>
[Камера, модель] =>
[Размеры] =>
[Камера, изготовитель] =>
[Организация] => Microsoft Corporation
[Описание файла] => Windows Command Processor
[Ключевые слова образцов] =>
[Имя программы] =>
[Длительность] =>
[В сети] =>
[Повторяется] =>
[Место] =>
[Адреса необязательных участников] =>
[Необязательные участники] =>
[Адрес организатора] =>
[Имя организатора] =>
[Время оповещения] =>
[Адреса обязательных участников] =>
[Обязательные участники] =>
[Ресурсы] =>
[Состояние собрания] =>
[Свободно/Занято] =>
[Общий размер] => 227 ГБ
[Учетная запись] =>
)

)

К чему был весь этот стрёмнокод? А вот к чему.

Как я уже упомянул ранее, на сайте майкрософта поведали, что теперь мы можем рисовать коров в PowerShell и запускать notepad.exe из баша.

А в обсуждении перевода этого майкрософтовского текста люди выясняют насколько там честный линукс и можно ли на него взгромоздить Докера.

Люди, вы не туда смотрите! Я в bash выполнил PHP-скрипт который через exec() запустил bat-файл в котором JScript создал ActiveXObject.

It's Kind Of Magic!

А ещё я могу из CMD сделать вот так:

Кейс номер два

Обновление Windows 10 Creators Update я накатил 6 числа, а на прошлой недели был отвлечён от новой игрушки бухгалтерией. Бухгалтерия запросила оригиналы первички.

Эврика, подумал я и поставил консольную печаталку

Лезем в bash и просто запускаем программу


Результат — из принтера ползут листочки:

image


(данный скриншот — последующая имитация на виртуальном принтере, но на реальном HP тоже сработало)

В результате имеем:

  • программа проявила интерактивность (триалка запросила нажать кнопочку)
  • из башевского окошка полезла по своим виндовым путям
  • взяла оттуда файлы с русскими названиями
  • вызвала офисный редактор через COM-объекты
  • отправила результат на принтер

Резюме

Я ещё не до конца осознал что ещё с этим можно делать, но эта штука может гораздо больше чем просто беседа с коровами и запуск LAMP.

Надо просто самому себе разрешить вырваться из дихотомиии «либо Linux, либо Windows» и начать скрещивать ежей и ужей в самых невероятных пропорциях и последовательностях.

Запустить bash скрипт из windows также просто как если бы вы использовали linux, необходимо всего лишь установить cygwin. Все используемые мной bash скрипты для администрирования железа прекрасно работаю под cygwin-ом.

Cygwin — бесплатный эмулятор командной строки Unix для Windows, используется для переноса программного обеспечения из UNIX в Windows, запуска скрипов bash, sh и т.п.

Установка cygwin.

2. Запускаем скачанную утилиту setup.exe и жмем далее.

cygwin_install_1

3. Выбираем установку из интернета, жмем далее.

cygwin_install_2

4. Выбираем папку для установки (по умолчанию C:\cygwin), жмем далее.

cygwin_install_3

5. Выбираем папку для загрузки установочных файлов (по умолчанию C:\cygwin), жмем далее.

cygwin_install_4

6. Выбираем тип соединения - прямое (Direct Connect) и жмем далее.

cygwin_install_5

7. Выбераем сайт, с которого будут загружаться установочные файлы (я выбрал ftp://cygwin.uib.no), жмем далее.

cygwin_install_6

8. Переходим к выбору устанавливаемых пакетов. Этот этап является наиболее важным, от него зависит работа запускаемых вами скриптов. Я при первой установке не выбрал пакет inetutils (в него входит утилита telnet), из-за чего написанный мной скрипт, использующий telnet, не работал. Тщательно изучите список предлагаемых пакетов и выберите необходимые вам. Я устанавливал из категории Net пакеты inetutils, openssh, openssl, ping, iperf, tftp, proftpd, а из раздела Utils пакеты utils-linux, mc, bzip2, ipcalc.

cygwin_install_7

9. Отмечаем создать ярлык на рабочем столе и в меню пуск, нажимаем готово .

Читайте также: