Как создать и запустить shell-скрипт в Windows
TL;DR
Вы можете запускать shell-скрипты (.sh) в Windows через Windows Subsystem for Linux (WSL). Установите WSL, установите дистрибутив (например, Ubuntu) из Microsoft Store, создайте файл .sh в bash и выполните его через bash или sh. В статье — пошаговые инструкции, альтернативы, советы по отладке и рекомендации по безопасности.

Shell-скрипт — это программа на языке shell (обычно Bash), которая чаще всего используется в Linux и других Unix-подобных системах. На Windows запуск shell-скриптов возможен, но требует дополнительных шагов и настройки среды. В этом руководстве показан пошаговый процесс создания и запуска shell-скрипта в Windows с акцентом на WSL. В конце — альтернативы, распространённые ошибки и рекомендации.
Что вам понадобится перед началом
- Учётная запись администратора Windows для включения компонентов системы.
- Подключение к интернету для загрузки компонентов и дистрибутива Linux.
- Базовые знания командной строки (PowerShell / CMD) и простых команд bash.
Важное: команды ниже затрагивают системные компоненты. Сохраняйте важные данные и перезагружайте систему, когда это требуется.
1. Включение компонента Windows Subsystem for Linux (WSL)
- Нажмите Windows + I, чтобы открыть “Настройки”.
- Перейдите в раздел “Конфиденциальность и безопасность” и откройте пункт “Для разработчиков”.

- Включите переключатель рядом с “Режим разработчика” и подтвердите действие во всплывающем окне “Использовать функции разработчика”.

- Нажмите на меню Пуск и введите “Включение или отключение компонентов Windows” (Turn Windows features). Откройте найденный пункт.

- Найдите “Подсистема Windows для Linux (Windows Subsystem for Linux)” и установите флажок. Нажмите “ОК”.

- Следуйте инструкциям на экране и перезагрузите компьютер, чтобы завершить установку.
2. Установка Ubuntu и интеграция с WSL
- Откройте Microsoft Store (через поиск Windows).
- В Microsoft Store введите “Ubuntu” в строке поиска и выберите дистрибутив Ubuntu.

- Нажмите “Получить” (Get) для загрузки и установки.
- После установки запустите приложение Ubuntu из меню Пуск.
- Дождитесь первичной настройки: будет установлена командная оболочка Linux на ваш диск.

- Интеграция с WSL завершится автоматически.
- При появлении приглашения введите имя пользователя и пароль для Linux и сохраните их — они понадобятся для работы в окружении.
Совет: если у вас Windows 11/10 с поддержкой WSL2, рекомендуется использовать WSL2 для лучшей производительности и совместимости с Docker.
3. Создание shell-скрипта в WSL из проводника Windows
- Откройте проводник и перейдите в папку, где хотите создать файл. Нажмите Shift и правой кнопкой мыши кликните по пустому месту.

- В контекстном меню выберите “Открыть окно PowerShell здесь”.
- В PowerShell введите команду
bash, чтобы перейти в bash-сессию WSL.
- Чтобы быстро создать файл скрипта, можно выполнить:
cat>filename.sh(замените filename.sh на нужное имя) и нажать Enter. После ввода содержимого нажмите Ctrl+C для завершения.
Альтернативный способ — создать файл через редактор vi сразу:
- Введите
vi filename.shчтобы открыть файл для редактирования.
- Нажмите
iдля входа в режим вставки и добавьте содержимое, например:
#!/bin/bash
echo "Hello World"- После редактирования нажмите
Esc, затем наберите:wqи нажмите Enter, чтобы сохранить и выйти.
Примечание: строка
#!/bin/bashуказывает, что скрипт должен выполняться с помощью bash.

4. Запуск shell-скрипта
4.1 Через PowerShell (с использованием WSL)
- Перейдите в папку с файлом, нажмите Shift и щёлкните правой кнопкой по пустому месту.
- Выберите “Open PowerShell window here”.
- Введите
bashи нажмите Enter, чтобы перейти в bash-сессию. - Запустите скрипт командой:
sh filename.shилиbash filename.shи нажмите Enter.
- Вы увидите вывод скрипта в окне.
4.2 Через классическую командную строку (CMD)
- Откройте CMD (через поиск Windows введите “CMD” и откройте приложение).
- Перейдите в нужную директорию:
cd /d E:/New folder(замените путь на ваш). Обратите внимание: в WSL пути между Windows и Linux отличаются — при запуске черезbashиспользуйте либо абсолютный путь в Windows, либо путь в формате WSL. - Выполните:
bash filename.shи нажмите Enter.
- Результат появится в окне CMD.
5. Частые проблемы и как их решать
- Скрипт не запускается: убедитесь, что в первом ряду
#!/bin/bashи что вы запускаете файл черезbashилиsh. Также можно сделать файл исполняемым:chmod +x filename.shи запустить./filename.sh. - Различия в кодировке: файлы, созданные в Windows, могут иметь CRLF (\r\n). В bash рекомендуются LF. Преобразуйте с помощью
dos2unix filename.shесли видите странные символы. - Путь к файлу: при запуске из WSL используйте пути вида
/mnt/c/Users/...или запускайтеbashиз PowerShell/CMD, чтобы корректно увидеть путь. - Права доступа: файлы, находящиеся в файловой системе Windows (C:…), могут иметь отличительные проблемы с правами. Рекомендуется хранить сценарии в файловой системе WSL (обычно под /home/username) для наилучшей совместимости.
6. Альтернативные подходы (когда WSL не нужен или нежелателен)
- Git Bash — порт Bash из Git for Windows. Хорош для простых скриптов и разработчиков, привыкших к Git. Установка: установщик Git for Windows.
- Cygwin — более полный набор GNU-инструментов для Windows. Подходит для сложных сценариев, но требует настройки.
- MSYS2 — лёгкая среда с пакетным менеджером pacman; полезна для сборок и скриптов, требующих POSIX-среды.
- Использование контейнеров Docker с Linux-образами (если у вас Docker Desktop) — выполняйте скрипты внутри контейнера.
Когда альтернативы лучше: если вы не хотите включать системные компоненты (WSL) или нужны только отдельные утилиты, Git Bash или MSYS2 быстрее настроить.
7. Безопасность и лучшие практики
- Не запускайте скрипты из непроверенных источников.
- Устанавливайте минимальные права доступа:
chmod 700 filename.shесли скрипт конфиденциальный. - Явно указывайте интерпретатор в первой строке (
#!/bin/bash). - Логируйте важные действия и проверяйте коды возврата команд:
command || exit 1.
8. Контроль версий и тестирование
- Храните скрипты в системе контроля версий (например, Git).
- Пишите простые автотесты: проверка синтаксиса
bash -n filename.sh, тестовый прогон в изолированном окружении. - Используйте
set -euo pipefailв скриптах для строгой обработки ошибок.
Справочник команд (шпаргалка)
bash filename.sh— выполнить скрипт через bash.sh filename.sh— выполнить через sh (может отличаться от bash).chmod +x filename.sh— сделать файл исполняемым../filename.sh— запустить исполняемый файл в текущей директории.dos2unix filename.sh— преобразовать CRLF → LF.bash -n filename.sh— проверка синтаксиса без выполнения.
Роли и чек-листы
Разработчик:
- Создать файл в репозитории.
- [ ] Добавить shebang и
set -euo pipefail. - Тестировать локально в WSL или контейнере.
- Сделать код доступным для ревью.
Системный администратор:
- Развернуть WSL/дистрибутив на целевых хостах.
- Настроить резервное копирование и права доступа.
- Добавить мониторинг и логирование выполнения задач.
Критерии приёмки
- Скрипт запускается без ошибок на целевой среде (WSL/выбранная альтернатива).
- Выполняет ожидаемые команды и возвращает код 0 при успехе.
- Логирует ключевые шаги и корректно обрабатывает ошибки.
Короткая таблица совместимости
- Windows + WSL2: рекомендуемый путь для полной совместимости с Linux.
- Git Bash: быстрый и лёгкий; подходит для большинства простых задач.
- Cygwin/MSYS2: для более глубоких POSIX-совместимых потребностей.
Заключение
Запуск shell-скриптов в Windows удобен и надёжен, если использовать WSL или одну из альтернатив. Для простых задач достаточно Git Bash; для производственных сценариев и контейнеризации лучше WSL2 и тестирование в изолированном окружении. Соблюдайте лучшие практики безопасности, контролируйте код в системе контроля версий и используйте проверку синтаксиса перед запуском.
Если у вас остались вопросы или нужна помощь по конкретному сценарию — напишите в комментариях.
Ключевые ресурсы и дополнительное чтение
- Документация Microsoft по WSL — официальный источник настроек и запуска.
- Руководства по Git Bash, Cygwin и MSYS2 — для альтернативных подходов.
Краткое резюме:
- Установите WSL и дистрибутив Ubuntu из Microsoft Store.
- Создайте файл .sh в bash, укажите shebang и сделайте исполняемым.
- Запустите через
bash filename.shили./filename.shпослеchmod +x.
Похожие материалы
Сторонние cookie в Chrome Инкогнито — включить или заблокировать
Разблокировать голоса синтеза речи в Windows 10
Как записать встречу в Zoom — полное руководство
Выборочно скрыть значки на рабочем столе macOS
Транскрибировать и переводить аудио в Windows Copilot