BASH – оболочка пользователя подсистемы Windows для Linux (WSL) в Windows 10.Начиная с 2016 в Windows 10 появилась возможность использования подсистемы Windows для Linux (WSL - Windows Subsystem for Linux), позволяющей легко и просто установить из Microsoft Store некоторые дистрибутивы Linux, в том числе Debian, Ubuntu, Kali, Suse. Подробности - Linux в среде Windows 10. При использовании WSL, пользователь получает не изолированную виртуальную машину с Linux, а интегрированную в Windows подсистему с возможностью выполнения утилит командной строки из обеих ОС, запуск программ одной ОС из среды другой и т.п. Кроме того, WSL предоставляет пользователю Windows 10 возможность использования нескольких дистрибутивов Linux одновременно. bash.exe - утилита командной строки в подсистеме Windows для Linux (Windows Subsystem for Linux), обеспечивающая оболочку bash пользователя (shell) операционной системы Linux. Представляет собой командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом или сценарием. Нужно отметить, что команда разработчиков подсистемы WSL, в том числе и bash.exe, проделала огромную работу над программой, и с каждым новым релизом Windows 10, ее возможности становятся все более приближенными к возможностям классической оболочки bash Linux, и приобретают дополнительные качества, направленные на обеспечение максимальной совместимости Windows и Linux. Формат командной строки: bash [длинные опции GNU] [опции] ... bash [длинные опции GNU] [опции] файл_со_скриптом... Длинные опции GNU: --debug --debugger --dump-po-strings --dump-strings --help --init-file --login --noediting --noprofile --norc --posix --rcfile --restricted --verbose --version Опции оболочки: -ilrsD или -c команда или -O короткие параметры ( только при запуске) -abefhkmnptuvxBCHP или опция -o Для получения дополнительной информации о параметрах командной строки используется команда: bash -c "help set" Для получения подсказки по внутренним командам bash используется команда: bash -c help команда В системе могут быть установлены несколько дистрибутивов Linux, и один из них является дистрибутивом по умолчанию. Утилита работает именно с данным дистрибутивом. Список зарегистрированных в системе дистрибутивов можно получить с помощью команд: wslconfig /l или wsl --list Первым в списке дистрибутивов отображается дистрибутив по умолчанию: kali-linux (по умолчанию) Ubuntu SLES-15 ubuntu2 Ubuntu-18.04 Дистрибутив по умолчанию можно сменить с помощью команд wsl или wslconfig: wsl --setdefault kali-linux - определить дистрибутив kali-linux дистрибутивом по умолчанию. wslconfig /setdefault ubuntu - определить дистрибутив ubuntu дистрибутивом по умолчанию. При запуске bash.exe без параметров, программа выполняется в интерактивном режиме, ожидая ввода команд пользователем. Строка приглашения содержит имя пользователя, компьютера и текущий каталог, унаследованный из среды windows: root@win10n:/mnt/c/WINDOWS/system32 Логические диски Windows монтируются в среде Linux в точки монтирования /mnt/c для диска C:, /mnt/d для диска D: и т.д. Путь /mnt/c/WINDOWS/system32 соответствует C:\WINDOWS\system32 в Windows. Оболочка для дистрибутива Ubuntu запускается в контексте учетной записи суперпользователя root, но, например, для kali-linux - в контексте учетной записи пользователя. Для просмотра переменных окружения можно воспользоваться командой env. Пример выводимой информации: SHELL=/bin/bash WSL_DISTRO_NAME=kali-linux NAME=Win10n PWD=/mnt/c/WINDOWS/system32 LOGNAME=user HOME=/home/user LANG=en_US.UTF-8 TERM=xterm-256color USER=user SHLVL=1 WSLENV= PATH=/usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/sbin:/bin /mnt/c/WINDOWS/system32: /mnt/c/WINDOWS: /mnt/c/WINDOWS/System32/Wbem: /mnt/c/WINDOWS/System32 /WindowsPowerShell/v1.0/: /mnt/c/WINDOWS/System32 /OpenSSH/: /mnt/c/Users/usr/AppData/Local/ Microsoft/WindowsApps HOSTTYPE=x86_64 _=/usr/bin/env Переменная WSL_DISTRO_NAME определяет имя дистрибутива Linux в подсистеме WSL. Переменная WSLENV может быть использована для обмена данными между скриптами, выполняющимися как в среде Linux, так и в среде Windows. Переменная PATH задает пути поиска исполняемых файлов в обеих ОС. Работу в среде выбранного дистрибутива Linux следует начать с обновления пакетов программ, например, для пользователя kali-linux: sudo apt update sudo apt upgrade Для случая выполнения оболочки bash в контексте учетной записи root, команда sudo не нужна: apt update apt upgrade Для удобства работы можно установить файловый менеджер Midnight Commander: apt install mc И, например, на левой панели отобразить файловую структуру Linux, а на правой – файловую структуру Windows: Оболочка позволяет выполнять запуск программ как Linux, так и Windows: ping yandex.ru - выполнить опрос узла yandex.ru утилитой ping из среды Linux /mnt/c/WINDOWS/system32/notepad.exe - запустить приложение Блокнот из среды Windows В случае запуска из текущего каталога, полный путь указывать не обязательно: ./notepad.exe По соображениям безопасности, текущий каталог в Linux не включается в пути поиска исполняемых файлов, и должен быть указан явно - ./ Выполняемые командой bash скрипты (сценарии) могут находиться как в файловой системе Linux, так и в файловой системе Windows: bash /home/user/scripts/test.sh - выполнить скрипт test.sh из домашнего каталога пользователя user Linux bash /mnt/d/scripts/test.sh - выполнить скрипт test.sh из каталога файловой системы Windows D:\scripts bash ./test.sh - выполнить скрипт test.sh из текущего каталога файловой системы (Windows или Linux). Подсистема Windows для Linux не предоставляет пользователю полноценное ядро Linux, по крайней мере, на момент реализации в Windows 10.0.18362.295. По этой причине, например, невозможно установить драйверы ядра (kernel drivers), что накладывает определенные ограничения на использование программного обеспечения, которому необходим доступ к оборудованию – датчикам температуры, напряжения, контроля скорости вращения вентиляторов и т.п. (lm-sensors и ему подобное ПО). При работе с командной строкой в Windows 10 вместо bash удобнее пользоваться новой командой wsl, а также новым Терминалом Windows вместо стандартной консоли. Если же требуется изучение конкретной версии Linux, то вместо WSL в современных версиях Windows можно создать виртуальную машину и установить в ней любую операционную систему Linux при использовании стандартного сервера виртуализации Hyper-V, являющегося компонентом системы Windows 10 Professional и старше. После установки системы компоненты Hyper-V выключены, но после их включения вы получаете возможность создания виртуальных машин стандартными средствами и можете устанавливать на них любые операционные системы таким же образом, как и на реальном компьютере. Пример - Установка Linux Mint на виртуальную машину Hyper-V Windows 10. |
|