PowerShell на Linux: установка, запуск и настройка
TL;DR
PowerShell (pwsh) доступен на большинстве дистрибутивов Linux и даёт объектно-ориентированный интерфейс командной строки, полезный для администраторов и разработчиков, работающих в смешанных средах. Установка зависит от дистрибутива: Microsoft предоставляет репозитории и скрипты для Debian/Ubuntu, RHEL/CentOS, Fedora и других. Для постоянного использования можно сменить логин-шелл на /usr/bin/pwsh через chsh или указать pwsh в shebang скриптов.

Коротко о PowerShell
PowerShell — это командная оболочка и язык сценариев от Microsoft. Ключевая особенность: пайплайн передаёт не текст, а объекты .NET. Это упрощает сложную обработку данных: вместо парсинга строк вы фильтруете и преобразуете объекты с явными свойствами.
Определение в одну строку: PowerShell — объектно-ориентированная оболочка, где команды возвращают объекты с полями и методами.
Важно: pwsh работает как обычная оболочка на Linux — вы запускаете команды, пишете скрипты и можете использовать знакомые алиасы (например, ls). Но мышление немного иное: думайте в терминах объектов, а не потоков текста.
Почему стоит установить PowerShell на Linux
- Унификация: если вы управляете смешанными средами Windows и Linux, pwsh позволяет использовать одни и те же скрипты и модули на обеих ОС.
- Переход с Windows: знакомые команды и модель упрощают миграцию администраторов.
- Мощные встроенные возможности: доступ к .NET, удобные обработчики форматов (JSON, CSV, XML), модульная экосистема (PSGallery).
Когда это полезно:
- Автоматизация кроссплатформенных задач.
- Подготовка скриптов, которые должны работать и на Windows, и на Linux.
Когда не подходит:
- Лёгкие одноразовые задачи, где достаточно bash/awk/sed.
- Скрипты, которые обязательно должны быть минималистичными и совместимыми со всеми UNIX-утилитами по философии «текст как интерфейс».
Установка PowerShell — общая стратегия
Установка зависит от дистрибутива. Microsoft предоставляет пакеты и официальные репозитории для нескольких популярных веток Linux. Общая последовательность:
- Добавить репозиторий Microsoft (если есть пакет для вашего дистрибутива).
- Установить пакет pwsh через менеджер пакетов (apt, yum/dnf, zypper и т.д.).
- Проверить путь установки: /usr/bin/pwsh или /opt/microsoft/powershell/<версия>/pwsh.
Ниже — пример для Debian/Ubuntu. Для других дистрибутивов шаги похожи: есть готовые инструкции и скрипты от Microsoft.

Пример: установка на Debian/Ubuntu (типичный сценарий)
Microsoft публикует скрипт, который добавляет репозиторий и устанавливает пакет. Обычно достаточно скопировать команду со страницы и вставить в терминал. Перед выполнением рекомендуется просмотреть скрипт вручную.
Советы перед запуском скрипта из интернета:
- Откройте скрипт в редакторе и быстро просмотрите (curl | sed -n ‘1,200p’ или просто открыть в браузере).
- Убедитесь, что доверяете источнику.

После установки проверьте версию:
pwsh --versionЕсли всё удалось, вы увидите номер версии, например 7.x.x.
Запуск PowerShell на Linux
Чтобы запустить оболочку PowerShell интерактивно, выполните:
pwshВы получите интерактивную сессию pwsh. Команды такие же, как и в других оболочках, но поведение некоторых команд будет объектно-ориентированным. Например, команда dir (алиас Get-ChildItem) вернёт объекты с полями: Mode, LastWriteTime, Length и т.д.

Завершение сессии: введите exit или нажмите Ctrl+D.
Смена логин-шелла на PowerShell
Если вы хотите, чтобы при входе в систему терминал открывал pwsh по умолчанию, смените логин-шелл.
- Убедитесь, что pwsh присутствует в файле /etc/shells:
cat /etc/shells
- Выберите путь, например /usr/bin/pwsh, и выполните:
chsh -s /usr/bin/pwshПри смене потребуется ввести пароль. После выхода из сессии и повторного входа новая оболочка будет применена.
Примечание: выбирайте путь без номера версии (например, /usr/bin/pwsh), чтобы обновления пакета не ломали ссылку.
Shebang для скриптов PowerShell
Чтобы запускать скрипт напрямую, укажите shebang в первой строке:
#!/usr/bin/pwshСкрипт должен быть исполняемым (chmod +x script.ps1). Это гарантирует, что система запустит сценарий через pwsh.
Краткая шпаргалка (cheat sheet)
- Запуск интерактивно: pwsh
- Версия: pwsh –version
- Выполнение скрипта: ./script.ps1 (если есть shebang и права)
- Запуск одноразовой команды: pwsh -c “Get-Process | Where-Object CPU -gt 1”
- Алиасы для привычных команд: ls → Get-ChildItem, dir → Get-ChildItem, cat → Get-Content
- Работа с потоками: используйте | для передачи объектов, не строк
Ментальная модель: объекты вместо строк
В традиционных UNIX-оболочках вы передаёте текст и парсите его. В PowerShell каждая команда выдаёт объекты с полями и методами. Представьте, что команды — это фабрики, которые создают структурированные записи, которые вы фильтруете и изменяете по полям.
Хорошая привычка: сначала фильтровать, затем выбирать поля, а не наоборот.
Альтернативы и когда PowerShell не подходит
- Bash/POSIX shell: проще, легче для небольших скриптов, полностью совместим с UNIX-утилитами.
- Python/Perl: лучше для сложной обработки данных и кроссплатформенных библиотек.
- Для задач, завязанных на минимальный overhead или контейнеры с ограниченным размером, может быть предпочтительнее использовать нативные шеллы.
Если ваша инфраструктура полностью Linux-native и не требует .NET или модулей PowerShell, изучение bash + стандартных утилит может быть эффективнее.
Советы по безопасности и жёсткая настройка
- Не делайте pwsh логин-шеллом для пользователей с минимальными привилегиями, если у них нет необходимости.
- Контролируйте права на скрипты (chmod 700 /path/to/script.ps1 для личных скриптов).
- Подписывайте критичные сценарии и храните ключи отдельно (на Linux политика подписывания скриптов не принудительна, но полезна для аудита).
- Не запускайте pwsh от root без необходимости. Используйте sudo для отдельных команд.
- Отключайте ненужные модули и ограничивайте доступ к PSGallery, если требуется контроль пакетов.
Совместимость и пути установки
Частые пути установки:
- /usr/bin/pwsh — обычно символьная ссылка на актуальную версию; предпочитаемый путь для chsh/shebang.
- /opt/microsoft/powershell/7/pwsh — установка с указанием версии.
Поддерживаемые дистрибутивы (обзор): Debian/Ubuntu, RHEL / CentOS, Fedora, SUSE, а также пакеты для ARM-архитектур. Всегда сверяйтесь с официальной страницей PowerShell для вашей версии дистрибутива.
Роли: краткие контрольные списки
Системный администратор:
- Установить pwsh из официального репозитория.
- Проверить наличие в /etc/shells.
- Настроить привилегии и права на скрипты.
- Документировать пути и версии.
Разработчик/DevOps:
- Настроить CI для выполнения ps1-скриптов (уточнить runner образ).
- Использовать модули из PSGallery только после проверки.
- Тестировать совместимость Windows/Linux в локальной среде.
Новичок в Linux:
- Использовать pwsh как вспомогательный инструмент для изучения.
- Пробовать знакомые команды, затем изучать объектную модель.
Критерии приёмки для установки PowerShell
- pwsh запускается и возвращает корректную версию: pwsh –version.
- pwsh присутствует в /etc/shells, если планируется использовать через chsh.
- Скрипт с shebang /usr/bin/pwsh исполняется через ./script.ps1 после chmod +x.
- Откат: при удалении pwsh systemd/скрипты/cron, зависящие от pwsh, обновлены или удалены.
Тестовые сценарии и проверка
- Тест 1: Интерактивный запуск pwsh; выполнить Get-ChildItem и сравнить с ls.
- Тест 2: Создать скрипт с shebang, дать права и запустить; убедиться, что исполняется.
- Тест 3: Выполнить pwsh -c “Write-Output ‘hello’” и проверить код возврата.
- Тест 4: Обновление пакета: обновить pwsh и проверить, что /usr/bin/pwsh остаётся валидным.
Быстрые решения проблем
- pwsh: команда не найдена — проверьте установку и PATH, выполните which pwsh.
- chsh: «shell не в списке /etc/shells» — добавьте путь в /etc/shells или используйте существующий путь.
- Скрипт не запускается напрямую — проверьте shebang и флаги chmod.
Важно: перед выполнением копируемых скриптов из интернета всегда просмотрите код.
Мини-методология установки в организации
- Определить список дистрибутивов и версии в парке машин.
- Подготовить стандартизированный пакет/скрипт установки и внутрений репозиторий (если нужно).
- Тестировать установку в staging среде.
- Документировать пути, политики прав и ожидаемое поведение при обновлениях.
- Развернуть по группам, наблюдая логи и откаты на первом этапе.
Пример короткого анонса для команды (100–200 слов)
PowerShell теперь официально поддерживается на Linux. Это даёт единый инструмент автоматизации для смешанных сред и позволяет использовать знакомые команды и модули как на Windows, так и на Linux. Для установки следуйте инструкциям Microsoft для вашего дистрибутива или используйте централизованный репозиторий. При планировании развертывания учитывайте права на скрипты и политику подписывания. Если нужна помощь с миграцией скриптов или интеграцией в CI, команда инфраструктуры готова помочь.
Заключение
PowerShell на Linux — полезный инструмент для администраторов и разработчиков в смешанных средах. Он не заменит классический UNIX-подход во всех задачах, но даёт мощную альтернативу и облегчает перенос знаний и автоматизации между ОС. Устанавливайте из официальных репозиториев, тестируйте скрипты и следуйте базовым правилам безопасности.
Резюме — ключевые выводы
- PowerShell доступен и поддерживается на большинстве популярных дистрибутивов Linux.
- Используйте /usr/bin/pwsh для стабильности при обновлениях.
- Для постоянного применения можно сменить логин-шелл на pwsh через chsh.
- Думайте в терминах объектов, а не текста; это основное отличие от bash.
Похожие материалы
Как установить Rust на Linux и начать работу
ZIP в Node.js: Archiver и Unzipper
Как стать PNGTuber — приватный стриминг шаг за шагом
Как распознать фальшивые антивирусы и очистители
Как защитить компьютер паролем BIOS или UEFI