Bash в Windows — установка WSL и основные команды оболочки

Bash в Windows запускается через WSL (Windows Subsystem for Linux). Как установить, запустить и использовать команды Bash — пошаговая инструкция с примерами.

Bash в Windows запускается через подсистему WSL (Windows Subsystem for Linux) — полноценный Linux-интерпретатор внутри Windows без виртуальной машины. Он нужен разработчикам, системным администраторам и всем, кто работает с Linux-инструментами, скриптами или серверами прямо с рабочего стола Windows.

TL;DR: одна команда в PowerShell от администратора — wsl --install — устанавливает WSL2 и Ubuntu. После перезагрузки запускайте Bash через меню Пуск или командой bash в терминале.

Синтаксис запуска Bash в Windows

bash [параметры] [команда]
wsl [--distribution <имя>] [-u <пользователь>] [команда]

Плейсхолдеры:

  • --distribution <имя> — запустить конкретный дистрибутив (Ubuntu, Debian, Kali)
  • -u <пользователь> — запустить от имени указанного пользователя (например, root)
  • [команда] — выполнить команду и сразу выйти (например, wsl ls /home)

Установка Bash через WSL

Примечание: начиная с Windows 10 версии 1709 включать режим разработчика для WSL не требуется. На Windows 10 (сборка 2004 и выше) и Windows 11 достаточно одной команды.

Быстрая установка (Windows 10 2004+ и Windows 11)

  1. Откройте PowerShell от имени администратора (Win+X → «Windows PowerShell (администратор)»).
  2. Выполните команду:
    wsl --install

    По умолчанию установится Ubuntu. Для выбора другого дистрибутива: wsl --install -d Debian

  3. Дождитесь завершения установки и перезагрузите компьютер.
  4. После перезагрузки откроется окно первоначальной настройки: введите имя пользователя и пароль для Linux.

Ручная установка (для старых версий Windows 10)

  1. Откройте PowerShell от имени администратора.
  2. Включите функцию WSL:
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  3. Перезагрузите компьютер.
  4. Откройте Microsoft Store и найдите дистрибутив по выбору: Ubuntu, Debian, Kali Linux.
  5. Нажмите «Установить» и дождитесь завершения.
  6. Запустите установленный дистрибутив через меню Пуск.
  7. При первом запуске введите имя пользователя и пароль Linux.

Как установить Bash в Windows

Ключи и параметры команды WSL

Ключ Описание Пример
--install Установить WSL и дистрибутив по умолчанию (Ubuntu) wsl --install
--install -d <имя> Установить конкретный дистрибутив wsl --install -d Debian
--list --online Показать доступные для установки дистрибутивы wsl --list --online
--list --verbose Показать установленные дистрибутивы и их версии WSL wsl --list --verbose
--set-default-version Установить версию WSL по умолчанию (1 или 2) wsl --set-default-version 2
--shutdown Завершить все работающие экземпляры WSL wsl --shutdown
--update Обновить ядро WSL wsl --update
-d <имя> Запустить конкретный установленный дистрибутив wsl -d Kali-Linux
-u root Войти как root (суперпользователь) wsl -u root

Примеры использования Bash в Windows

Запуск Bash из командной строки Windows

Откройте CMD или PowerShell и введите bash — вы окажетесь в оболочке Linux. Путь к файлам Windows в WSL: /mnt/c/ соответствует диску C:.

bash
cd /mnt/c/Users/Admin/Desktop
ls -la

Выполнить одну команду Linux без перехода в Bash

Удобно для вызова Linux-утилит из скриптов Windows.

wsl ls -la /home

Команда выполнится в WSL и вернёт результат в терминал Windows.

Работа с файлами: копирование, перемещение, удаление

cp /mnt/c/Users/Admin/file.txt /mnt/d/backup/
mv /mnt/c/temp/old.log /mnt/c/archive/
rm /mnt/c/temp/trash.tmp

Установка пакетов через apt

В Ubuntu/Debian-дистрибутивах используется пакетный менеджер apt.

sudo apt update && sudo apt install curl git python3

Запуск Bash-скрипта из Windows

Скрипт должен иметь права на выполнение. Путь передаётся в формате Linux.

wsl bash /mnt/c/scripts/deploy.sh

Поиск файлов по содержимому через grep

grep -r "error" /mnt/c/logs/*.log

Рекурсивный поиск строки «error» во всех .log-файлах папки.

Перенаправление вывода в файл Windows

wsl ls -la /mnt/c/Users/Admin > C:\output.txt

Основные команды Bash — шпаргалка

Команда Описание Пример
ls Список файлов в директории ls -la
cd Сменить директорию cd /mnt/c/Users
pwd Показать текущую директорию pwd
cp Копировать файл или папку cp file.txt backup/
mv Переместить или переименовать mv old.txt new.txt
rm Удалить файл (с -r — папку) rm -r /tmp/folder
mkdir Создать директорию mkdir project
cat Вывести содержимое файла cat file.txt
grep Поиск строк по шаблону grep "error" log.txt
find Поиск файлов и папок find /home -name "*.sh"
chmod Изменить права доступа chmod +x script.sh
sudo Выполнить с правами суперпользователя sudo apt install git
echo Вывести текст или переменную echo $HOME
curl HTTP-запросы, скачивание файлов curl -O https://example.com/file

Частые ошибки и решения

Ошибка Причина Решение
«WslRegisterDistribution failed with error: 0x8007019e» Компонент WSL не включён Включите в PowerShell от администратора: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
«The Windows Subsystem for Linux optional component is not enabled» WSL отключён в параметрах Windows Панель управления → Программы → Включение или отключение компонентов Windows → поставьте галку «Подсистема Windows для Linux»
Не удаётся запустить WSL2 — ошибка ядра Устаревшее ядро WSL2 Выполните wsl --update в PowerShell от администратора
Команды Linux не видят файлы Windows Диски Windows монтируются под /mnt/ Используйте путь /mnt/c/ вместо C:\
«Permission denied» при выполнении скрипта У файла нет прав на выполнение Выполните chmod +x имя_скрипта.sh перед запуском
Медленная работа файловой системы при доступе к /mnt/c/ Кросс-ФС операции между WSL2 и Windows медленные по природе Храните рабочие файлы в Linux-разделе WSL (~/), а не в /mnt/c/

Когда применять Bash в Windows, а когда нет

Bash в Windows через WSL2 — правильный выбор для разработки под Linux, работы с серверами по SSH, запуска Python/Node.js/Ruby-проектов с Linux-зависимостями, использования git и утилит командной строки (grep, awk, sed, curl, wget). WSL2 требует Windows 10 версии 1903 или выше и включённой виртуализации в BIOS (Hyper-V или WSL2 hypervisor).

Не стоит использовать WSL для задач, связанных с графическим интерфейсом Windows (хотя WSLg в Windows 11 позволяет запускать Linux-приложения с GUI). Для простых файловых операций и административных задач в Windows предпочтительнее CMD или PowerShell — они работают быстрее без уровня совместимости.

PowerShell аналог запуска Linux-команд: wsl <команда> напрямую из PowerShell без перехода в оболочку.

FAQ

Как запустить Bash в Windows?

После установки WSL нажмите Win, найдите «Ubuntu» (или другой установленный дистрибутив) и запустите. Либо откройте CMD/PowerShell и введите bash.

Чем WSL2 отличается от WSL1?

WSL2 использует полноценное Linux-ядро и виртуализацию — лучшая совместимость с Linux-приложениями и значительно более высокая производительность файловой системы внутри Linux-раздела. WSL1 работает как слой трансляции системных вызовов и быстрее при работе с файлами Windows.

Можно ли установить несколько дистрибутивов Linux одновременно?

Да. Установите несколько дистрибутивов через Microsoft Store или командой wsl --install -d <имя>. Переключаться между ними: wsl -d Ubuntu, wsl -d Debian.

Можно ли в Bash работать с файлами на диске C:?

Да. Диски Windows монтируются автоматически: /mnt/c/ — это C:, /mnt/d/ — D:. Например: ls /mnt/c/Users/Admin/Documents.

Как обновить пакеты Linux в WSL?

В Ubuntu/Debian: sudo apt update && sudo apt upgrade. В Kali: sudo apt update && sudo apt full-upgrade. Рекомендуется выполнять после установки и периодически для получения обновлений безопасности.

Что делать, если WSL не устанавливается?

Убедитесь, что включена виртуализация в BIOS (параметр Intel VT-x или AMD-V). Проверьте версию Windows: WSL2 требует Windows 10 версии 1903 (сборка 18362) или выше. Запустите wsl --update и wsl --install от имени администратора.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.