Командная строка линукс для виндовс

BASH – оболочка пользователя подсистемы Windows для Linux (WSL) в Windows 10.

Начиная с 2016 в Windows 10 появилась возможность использования подсистемы Windows для Linux (WSL — W indows S ubsystem for L inux), позволяющей легко и просто установить из 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
или

Первым в списке дистрибутивов отображается дистрибутив по умолчанию:

kali-linux (по умолчанию)
Ubuntu
SLES-15
ubuntu2
Ubuntu-18.04

Дистрибутив по умолчанию можно сменить с помощью команд wsl или wslconfig :

wsl —setdefault kali-linux — определить дистрибутив kali-linux дистрибутивом по умолчанию.

wslconfig /setdefault ubuntu — определить дистрибутив ubuntu дистрибутивом по умолчанию.

При запуске bash.exe без параметров, программа выполняется в интерактивном режиме, ожидая ввода команд пользователем. Строка приглашения содержит имя пользователя, компьютера и текущий каталог, унаследованный из среды windows:

Логические диски Windows монтируются в среде Linux в точки монтирования /mnt/c для диска C: , /mnt/d для диска D: и т.д. Путь /mnt/c/WINDOWS/system32 соответствует C:\WINDOWS\system32 в Windows. Оболочка для дистрибутива Ubuntu запускается в контексте учетной записи суперпользователя root , но, например, для kali-linux — в контексте учетной записи пользователя.

Читайте также:  Как после переустановки windows синхронизировать

Для просмотра переменных окружения можно воспользоваться командой 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

Для удобства работы можно установить файловый менеджер Midnight Commander :

И, например, на левой панели отобразить файловую структуру Linux, а на правой – файловую структуру Windows:

Оболочка позволяет выполнять запуск программ как Linux, так и Windows:

ping yandex.ru — выполнить опрос узла yandex.ru утилитой ping из среды Linux

/mnt/c/WINDOWS/system32/notepad.exe — запустить приложение Блокнот из среды Windows

В случае запуска из текущего каталога, полный путь указывать не обязательно:

По соображениям безопасности, текущий каталог в 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 вместо стандартной консоли.

Источник

WSL – запуск исполняемых файлов и конфигурирование подсистемы Windows для Linux (WSL) в Windows 10.

В современных версиях операционной системы Windows 10 имеется возможность использования подсистемы Windows для Linux (WSL — W indows S ubsystem for L inux), позволяющей легко и просто установить из Microsoft Store некоторые дистрибутивы Linux, в том числе Debian, Ubuntu, Kali, Suse. Подробности — Linux в среде Windows 10. При использовании WSL, пользователь получает не изолированную виртуальную машину с Linux, а интегрированную в Windows подсистему с возможностью выполнения утилит командной строки из обеих ОС, запуск программ одной ОС из среды другой и т.п. Кроме того, WSL предоставляет пользователю Windows 10 возможность использования нескольких дистрибутивов Linux одновременно.

Читайте также:  Cloud setup in windows

WSL.exe — утилита командной строки для выполнения программных файлов Linux и административных операций в подсистеме Windows для Linux (Windows Subsystem for Linux). Кроме функции запуска исполняемых файлов, возможности утилиты по управлению дистрибутивами Linux почти полностью соответствуют возможностям утилиты wslconfig.exe

Формат командной строки:

wsl.exe [Аргументы] [Параметры. ] [командная строка]

Параметры командной строки:

Аргументы для запуска двоичного кода Linux:

— Если командная строка не указана, то wsl.exe запускает стандартную оболочку bash дистрибутива Linux, используемого по умолчанию.

— —exec, -e — выполнение указанной командной строки без использования стандартной оболочки Linux.

— — — Передача оставшейся командной строки как есть.

—distribution, -d — Запуск указанного дистрибутива Linux. Параметр DistributionName должен принимать значение имени дистрибутива Linux, присвоенное ему в подсистеме WSL, например SLES-15 для SUSE Linux Enterprise Server 15. Список зарегистрированных в системе дистрибутивов можно получить с помощью команды wsl –list

—user, -u — Запуск от имени указанного пользователя.

Аргументы для управления подсистемой Windows для Linux:

—export — Экспорт дистрибутива DistributionName в TAR-файл FileName

—import — Импорт указанного TAR-файла в качестве нового дистрибутива DistributionName в каталоге InstallLocation

—list, -l [[—all] –running] — отобразить список дистрибутивов Linux, зарегистрированных в системе. При указании параметра —all отображается список всех дистрибутивов, включая те, которые сейчас устанавливаются или удаляются. При указании параметра —running отображается список выполняющихся на данный момент дистрибутивов.

-setdefault, -s — установить указанный дистрибутив в качестве дистрибутива по умолчанию.

—terminate, -t — прекратить выполнение указанного дистрибутива.

—unregister — отменить регистрацию (удалить) указанный дистрибутив.

—upgrade — дистрибутив переводится в формат файловой системы WslFs.

—help — отобразить справку по использованию wsl.exe.

Примеры использования WSL.EXE для запуска приложений.

wsl —help — отобразить подсказку по использованию wsl.exe.

wsl –h — то же, что и в предыдущем примере, но с использованием синтаксиса укороченных параметров.

wsl –list — отобразить список дистрибутивов Linux, зарегистрированных в системе. Пример отображаемой информации:

Распределения подсистемы Windows для Linux:

Ubuntu (по умолчанию)
kali-linux
SLES-15
Ubuntu-18.04

На сегодняшний день перевод сообщений утилиты wsl.exe на русский язык оставляет желать лучшего. Первым в списке зарегистрированных в Windows 10 дистрибутивов Linux отображается дистрибутив, установленный по умолчанию. Именно этот дистрибутив используется для запуска исполняемых файлов Linux, если явно не указано имя другого дистрибутива.

wsl.exe — если параметры командной строки не заданы, выполняется запуск дистрибутива Linux, установленного по умолчанию.

wsl -d Ubuntu — запустить дистрибутив Ubuntu . Для завершения работы в консоли Linux можно использовать команды logout или exit . После запуска дистрибутива отображается стандартный эмулятор терминала Linux с приглашением к вводу команд. Пользователю предоставляется стандартная оболочка bash.

wsl -e ls -l /etc — выполнить команду ls -l /etc для дистрибутива по умолчанию (отобразить содержимое каталога /etc в подробном формате).

wsl -d sles-15 -e ls -l /etc — то же, что и в предыдущем примере, но команда выполняется в среде дистрибутива sles-15

Читайте также:  Linux пути поиска библиотек

Для идентификации дистрибутива сценариями, можно использовать стандартную для WSL переменную окружения WSL_DISTRO_NAME .

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

wsl -e env — отобразить переменные окружения. В текущих версиях утилиты wsl.exe допускается форма командной строки без параметра -e :

Пример отображаемой информации о переменных окружения:

HOSTTYPE=x86_64
LANG=C.UTF-8
WSL_DISTRO_NAME=Ubuntu
USER=root
PWD=/mnt/c/WINDOWS/system32
HOME=/root
NAME=Win10
SHELL=/bin/bash
TERM=xterm-256color
SHLVL=1
LOGNAME=root
PATH=/usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/sbin:/bin:/usr/games: /usr/local/games:/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/User/AppData/Local/ Microsoft/WindowsApps
WSLENV=
_=/usr/bin/env

Как видим, текущий каталог, определяемый значением переменной PWD принимает значение, соответствующее текущему каталогу на момент запуска wsl.exe , в данном случае, C:\Windows\System32, что соответствует /mnt/c/WINDOWS/system32 в Linux.

Переменную WSLENV можно применить для совместного использования сценариями Windows и Linux.

Пути поиска исполняемых файлов включают в себя как каталоги файловой системы Windows, так и каталоги Linux.

wsl -d kali-linux -u root ifconfig — отобразить конфигурацию сетевых интерфейсов дистрибутива kali-linux от имени суперпользователя root .

Одновременное применение команд разных ОС с разными переменными окружения и различным синтаксисом может вызывать некоторые трудности, Например, нужно установить и сражу же запустить в среде WSL файловый менеджер Midnight Commander ( mc ). Напрашивается решение объединить установку и запуск в контейнер:

wsl apt-get install mc && mc

Но, интерпретатор команд Windows воспримет специальный символ & как предназначенный командной оболочке Windows и интерпретирует вводимую строку как 2 команды:

Wsl apt-get install mc — установить утилиту mc в среде Linux по умолчанию
mc — выполнить команду mc в среде Windows 10

Чтобы установленная программа mc выполнялась в среде Linux, она должна запускаться с помощью wsl.exe :

wsl apt-get install mc & wsl mc

Кроме того, необходимо учитывать, что имена некоторых команд в Linux и Windows совпадают, а в путях поиска исполняемых файлов присутствуют каталоги обеих операционных систем, а также то, что текущим каталогом на момент выполнения команд Linux, будет каталог, бывший текущим на момент запуска утилиты wsl.exe .

wsl ping ya.ru — выполнение команды ping.ya.ru в среде дистрибутива Linux, установленного по умолчанию.

wsl –e /mnt/c/windows/system32/ping.exe ya.ru — выполнение команды ping.ya.ru в среде Windows 10.

Примеры использования WSL.EXE для администрирования дистрибутивов Linux.

wsl —export kali-linux D:\kali-linux.tar — экспорт дистрибутива kali-linux в TAR-файл D:\kali-linux.tar

wsl —import ubuntu2 D:\linux\ubuntu2 D:\ubuntu.tar — импорт указанного TAR-файла D:\ubuntu.tar в качестве нового дистрибутива ubuntu2 , размещаемого в каталоге D:\linux\ubuntu2. При стандартной установке дистрибутивы Linux устанавливаются в каталог «C:\Users\имя пользователя\Local Settings\Packages»
BR> wsl —list —all — отобразить список установленных дистрибутивов Linux, включая те, которые устанавливаются или удаляются в данный момент времени.

wsl —list –running — отобразить список выполняющихся в данный момент дистрибутивов.

wsl –setdefault ubuntu2 — установить дистрибутив ubuntu2 , в качестве дистрибутива по умолчанию.

wsl -t Ubuntu — завершить работу дистрибутива Ubuntu

wsl —unregister ubuntu — отменить регистрацию дистрибутива Ubuntu

wsl —upgrade Ubuntu — выполнить перевод дистрибутива Ubuntu в формат файловой системы WslFs .

Источник

Оцените статью