Как установить 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:
Установка подсистемы UNIX в Windows 7
Как устанавливается из фич описано выше, для меня самый простой способ - установить из командной строки, для этого достаточно запустить командную строку от имени Администратора, перейти в каталог Windows:
Установка подсистемы UNIX в Windows Server 2008 R2
Устанавливает путем ключения серверной фичи Server Manager > Features > Add Features > Subsystem for UNIX-based Appplications:
Либо из командной строки, где параметр restart автоматом перезагрузит систему после установки:
ServerManagerCmd.exe -install Subsystem-UNIX-Apps -restart
Установка SDK
SDK можно загрузить по этой ссылке, в момент установки отметить нужные параметры:
После установки потребуется перезагрузить компьютер.
После всех манипуляций, в меню Пуск будет доступно меню с названием Subsystem for UNIX-based Applications от куда можно запустить Korn Shell и заюзать Linux утилиты:
На тему.
Unxutils работают без каких либо дополнительных библиотек, достаточно загрузить архив, распаковать и использовать, перечень утилит представлен ниже:
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. Чё, правда? Это всё до чего вы додумались?
Как человек страстно ждавший возможность запуска exe-файлов внутри WSL, я хочу поделиться опытом правильного использования новой фичи.
Bash on Windows я использую для всякой мелкой механизации — выкачать, распарсить, проанализировать. Взять 10-20 гигов логов и поколдовать над ними в поисках чего нибудь этакого. Взять 200 гигов исходных данных, сделать ВЖУХ и пульнуть пару мегов результатов в базу сайта. Вобщем, обычная бытовуха, как у всех. Разве нет?
Кейс номер один
Вот то ради чего именно я ждал возможность запуска exe-файлов на WSL.
Имеется некоторое количество веб-сайтов для разных программ, требуется проверить что все ссылки «download» ведут на актуальные версии.
Пропустив этап поиска ссылок и скачивания файлов перейдём к извлечению нужной информации.
Делаем это двумя путями.
Путь первый — обращение к 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 и просто запускаем программу
Результат — из принтера ползут листочки:
(данный скриншот — последующая имитация на виртуальном принтере, но на реальном HP тоже сработало)
В результате имеем:
- программа проявила интерактивность (триалка запросила нажать кнопочку)
- из башевского окошка полезла по своим виндовым путям
- взяла оттуда файлы с русскими названиями
- вызвала офисный редактор через COM-объекты
- отправила результат на принтер
Резюме
Я ещё не до конца осознал что ещё с этим можно делать, но эта штука может гораздо больше чем просто беседа с коровами и запуск LAMP.
Надо просто самому себе разрешить вырваться из дихотомиии «либо Linux, либо Windows» и начать скрещивать ежей и ужей в самых невероятных пропорциях и последовательностях.
Запустить bash скрипт из windows также просто как если бы вы использовали linux, необходимо всего лишь установить cygwin. Все используемые мной bash скрипты для администрирования железа прекрасно работаю под cygwin-ом.
Cygwin — бесплатный эмулятор командной строки Unix для Windows, используется для переноса программного обеспечения из UNIX в Windows, запуска скрипов bash, sh и т.п.
Установка cygwin.
2. Запускаем скачанную утилиту setup.exe и жмем далее.
3. Выбираем установку из интернета, жмем далее.
4. Выбираем папку для установки (по умолчанию C:\cygwin), жмем далее.
5. Выбираем папку для загрузки установочных файлов (по умолчанию C:\cygwin), жмем далее.
6. Выбираем тип соединения - прямое (Direct Connect) и жмем далее.
7. Выбераем сайт, с которого будут загружаться установочные файлы (я выбрал ftp://cygwin.uib.no), жмем далее.
8. Переходим к выбору устанавливаемых пакетов. Этот этап является наиболее важным, от него зависит работа запускаемых вами скриптов. Я при первой установке не выбрал пакет inetutils (в него входит утилита telnet), из-за чего написанный мной скрипт, использующий telnet, не работал. Тщательно изучите список предлагаемых пакетов и выберите необходимые вам. Я устанавливал из категории Net пакеты inetutils, openssh, openssl, ping, iperf, tftp, proftpd, а из раздела Utils пакеты utils-linux, mc, bzip2, ipcalc.
9. Отмечаем создать ярлык на рабочем столе и в меню пуск, нажимаем готово .
Читайте также: