Гид по технологиям

Установка и использование PowerShell на Linux

7 min read Системное администрирование Обновлено 30 Dec 2025
PowerShell на Linux: установка и использование
PowerShell на Linux: установка и использование

Установка и использование PowerShell на Linux — пример экрана

Что такое Windows PowerShell

Windows PowerShell — это командная оболочка и фреймворк автоматизации на базе .NET. В двух строках:

  • Что это: оболочка командной строки и скриптовый язык для автоматизации задач и управления конфигурацией.
  • Для чего: управление локальными и удалёнными системами, доступ к WMI/CIM/COM и интеграция с сетевыми устройствами.

С выходом версии на .NET Core PowerShell стал кроссплатформенным: появилась поддержка Linux и macOS. На Linux PowerShell работает как гибрид — он поддерживает как собственные cmdlet, так и нативные команды оболочки (например, ls).

Что изменилось при переносе на Linux

  • Платформа: .NET Core вместо .NET Framework. Это даёт кроссплатформенность, но накладывает зависимости от версий библиотек в дистрибутиве.
  • Совместимость: большая часть базовых cmdlet работает, но есть Windows-специфичные модули (например, управления конкретными Windows-сервисами), которые на Linux недоступны.
  • Гибридность: можно вызывать нативные утилиты Linux напрямую из PowerShell и наоборот.

Important: PowerShell на Linux не делает из Linux «Windows» — это инструмент автоматизации, спроектированный для кроссплатформенного управления.

Установка PowerShell на Linux (через терминал)

Сначала скачайте подходящий пакет с официальной страницы релизов на GitHub для вашей версии дистрибутива. Для Debian/Ubuntu это .deb, для CentOS/RHEL — .rpm, для macOS — .pkg.

Список загрузок PowerShell

Типичный сценарий для Ubuntu: откройте терминал, перейдите в папку, куда скачали пакет (обычно «Загрузки»), и выполните команды:

sudo apt-get install libunwind8 libicu55
sudo dpkg -i /path/to/your/powershell.deb

Замените /path/to/your/powershell.deb на фактический путь. Пример команды для пакета из «Загрузки» пользователя:

sudo apt-get install libunwind8 libicu55
sudo dpkg -i /home/moe/Downloads/powershell_6.0.0-alpha.14-1ubuntu1.16.04.1_amd64.deb

Во время установки может потребоваться ввести пароль суперпользователя. Дождитесь завершения установки — в терминале появятся строки об распаковке и настройке пакета.

Установка PowerShell в терминале Linux

Если у вас RHEL/CentOS, используйте rpm или yum/dnf для установки .rpm пакета. Для macOS — откройте .pkg и следуйте мастеру установки.

Установка PowerShell на Linux (через графический интерфейс)

Если вы предпочитаете GUI: дважды кликните .deb — он откроется в Ubuntu Software Center (или в другом менеджере пакетов), затем нажмите Установить и введите пароль при запросе.

Установка через центр приложений

После завершения установочного процесса система уведомит о готовности.

Авторизация при установке

Запуск и базовое использование PowerShell на Linux

Запуск делается из терминала командой:

powershell

После запуска вы увидите баннер и приглашение командной строки вида:

PowerShell

Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS /home/moe>

Внутри PowerShell доступны привычные cmdlet, например:

Get-ChildItem -Path /

или нативная команда оболочки:

ls

Пример PowerShell на Linux — вывод Get-ChildItem

PowerShell на Linux — гибрид: используйте и PowerShell-специфичные инструменты, и привычные Linux-утилиты.

Удаление PowerShell

Чтобы удалить PowerShell в Debian/Ubuntu:

sudo apt-get remove powershell

Подтвердите действие, нажав Y, когда будет предложено.

Когда PowerShell на Linux может не подойти

  • Модули, завязанные на Windows API, не будут работать (например, модуль для управления Hyper-V или службой Windows Update).
  • Если в скриптах используются Windows-пути или реестр — потребуется адаптация.
  • В дистрибутивах с устаревшими версиями библиотек .NET Core могут возникнуть зависимости, мешающие запуску.

Контрпример: если ваша задача — управлять исключительно Linux-пакетами и сервисами, чистый Bash или systemd-инструменты зачастую проще и легче.

Альтернативы и интеграция

  • Bash/zsh/fish — простые и эффективные для большинства Linux-утилит.
  • Ansible — декларативное управление конфигурацией, удобно для масштабируемого управления узлами.
  • Python (Fabric, Paramiko) — мощные скрипты и модули для управления системами.

PowerShell хорошо вписывается в гибридные среды и когда требуется единый инструмент управления для Windows и Linux.

Ментальные модели и правила выбора

  • Если у вас смешанная инфраструктура (Windows + Linux), выбирайте PowerShell для единого набора инструментов.
  • Если инфраструктура — чисто Linux и нужны лёгкие утилиты, Bash/Ansible могут быть предпочтительнее.
  • Правило 80/20: 80% задач автоматизации можно решить стандартными средствами Linux; PowerShell даёт преимущества при кроссплатформенных сценариях.

Быстрый чек-лист по установке (роль: системный администратор)

  • Проверить совместимость дистрибутива с версией PowerShell.
  • Скачать соответствующий пакет (.deb/.rpm/.pkg).
  • Установить зависимости (.NET Core runtime, libicu и libunwind при необходимости).
  • Установить пакет через dpkg/rpm/dnf/apt.
  • Запустить powershell и выполнить Get-ChildItem для проверки.
  • Протестировать ключевые скрипты/модули.

Мини‑методика: как подготовить миграцию скриптов с Windows на Linux

  1. Просканируйте скрипты на зависимость от Windows-специфичных модулей (реестр, WMI, COM).
  2. Для каждого найденного случая найдите эквивалент на Linux (например, systemd для управления сервисами).
  3. Протестируйте скрипт в контейнере/виртуальной машине Ubuntu/CentOS.
  4. Исправьте пути и права доступа (различия в разделителях и правах файлов).
  5. Автоматизируйте тесты и добавьте в CI.

Проверки и критерии приёмки

  • PowerShell запускается без ошибок: команда powershell возвращает PS-промпт.
  • Базовые cmdlet (Get-ChildItem, Get-Process) возвращают ожидаемый вывод.
  • Ключевые скрипты выполняются в тестовой среде и возвращают валидные результаты.
  • Нет критических зависимостей от Windows API в продовых скриптах.

Трудности и способы устранения неполадок

  • Проблема: powershell не запускается — ошибка о несовместимости библиотек.
    • Решение: проверьте требования .NET Core и установите нужные пакеты (libicu, libunwind и т.д.).
  • Проблема: исполняемый модуль не доступен — ModuleNotFoundException.
    • Решение: убедитесь, что модуль поддерживается на Linux или замените на альтернативу.
  • Проблема: различия в кодировке/переводе путей.
    • Решение: используйте полноформатные пути, проверяйте права доступа и используйте Path.Combine из PowerShellCore.

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

Безопасность и рекомендации по харднингу

  • Ограничьте доступ к запуску PowerShell только доверенным пользователям.
  • Используйте подпись скриптов и политику исполнения (ExecutionPolicy имеет значение, но на Linux контроль может быть организован и на уровне прав файлов).
  • Логи и аудит: направляйте вывод и ошибки выполнения скриптов в централизованный лог-агрегатор.
  • Сократите права: не выполняйте скрипты от root, если это не требуется.

Совместимость и миграционные заметки

  • Модули: проверьте наличие кроссплатформенных модулей, таких как PowerShellGet и многие основные модули из PowerShell Gallery.
  • Remoting: PowerShell Remoting использует WSMan/SSH; на Linux рекомендуется настроить SSH remoting для безопасности и совместимости.
  • Версии: тестируйте на целевых версиях дистрибутива и .NET Core, чтобы избежать проблем с зависимостями.

Примеры команд и сниппеты (cheat sheet)

  • Запуск PowerShell:
powershell
  • Просмотр элементов каталога:
Get-ChildItem -Path /
ls
  • Установка модуля (если доступен в репозитории):
Install-Module -Name PSReadLine
  • Включение точки останова в интерактивной сессии:
Enable-PSBreakpoint

Рекомендации для разработчиков и DevOps

  • Интегрируйте тесты PowerShell в CI/CD: запускайте критические скрипты в контейнерах на этапе сборки.
  • Документируйте зависимости от ОС внутри репозиториев.
  • Используйте модули, поддерживаемые сообществом и имеющие активные релизы для кроссплатформенной устойчивости.

Часто задаваемые вопросы

Q: Будут ли работать все модули PowerShell на Linux?

A: Нет. Модули, требующие Windows-специфичных API, не будут работать. Многие кроссплатформенные модули работают корректно.

Q: Как настроить удалённое выполнение команд на Linux с помощью PowerShell?

A: На Linux предпочтителен PowerShell Remoting поверх SSH. Нацеливайтесь на настройку SSH-ключей и аудита соединений.

Q: Нужен ли .NET Core для PowerShell на Linux?

A: Да, текущие кроссплатформенные версии PowerShell основаны на .NET Core и требуют его библиотек.

Факто-бокс: ключевые пункты

  • Платформа: PowerShell Core на базе .NET Core — кроссплатформенный.
  • Форматы пакетов: .deb, .rpm, .pkg.
  • Запуск: команда powershell в терминале.
  • Удаление: sudo apt-get remove powershell (для Debian/Ubuntu).

Decision flowchart (упрощённый)

flowchart TD
  A[Нужна кроссплатформенность?] -->|Да| B[Рассмотреть PowerShell]
  A -->|Нет| C[Оставаться на Bash/Ansible]
  B --> D{Есть Windows-специфичные модули?}
  D -->|Да| E[Переписать/заменить]
  D -->|Нет| F[Миграция возможна]

Короткое руководство по принятию решения (SOP)

  1. Оцените инфраструктуру: процент Windows vs Linux.
  2. Инвентаризируйте скрипты и модули на зависимость от Windows API.
  3. Если >20% сценариев зависят от Windows — используйте PowerShell для унификации.
  4. План миграции: тесты, контейнеры, CI, аудит безопасности.

Итог

PowerShell на Linux — полезный инструмент для гибридных сред и для тех, кто хочет единый язык автоматизации. Он не заменяет нативные инструменты Linux во всех сценариях, но даёт хорошие возможности для унификации и переноса автоматизации между системами. При внедрении обращайте внимание на зависимости от .NET Core, совместимость модулей и вопросы безопасности.

Расскажите в комментариях, используете ли вы PowerShell на Linux и какие у вас наблюдения!

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

PlayStation Plus на ПК — установить и играть
Гайды

PlayStation Plus на ПК — установить и играть

CONVERT в Excel — быстрое преобразование единиц
Excel

CONVERT в Excel — быстрое преобразование единиц

Открывать маршруты в Google Maps на iPhone
Советы

Открывать маршруты в Google Maps на iPhone

Кастомные шрифты и текстовые эффекты в Python Arcade
Разработка игр

Кастомные шрифты и текстовые эффекты в Python Arcade

Spotlight на iPhone и iPad — полный гид
iOS

Spotlight на iPhone и iPad — полный гид

Как смотреть НФЛ без кабеля — лучшие способы
Развлечения

Как смотреть НФЛ без кабеля — лучшие способы