Как использовать Microsoft PowerShell Core на виртуальных машинах Linux

Итак, вы заинтересованы в использовании PowerShell, но хотели бы сделать это в системе Linux. Вы можете подумать, что это невозможно, поскольку PowerShell совместим только с системами Windows. Действительно, PowerShell чаще всего ассоциируется с Windows, но у вас есть решение в виде чего-то под названием PowerShell Core. Это версия PowerShell с открытым исходным кодом, которую можно использовать в кроссплатформенных средах, включая macOS и Linux.
Хотите узнать больше? В этой статье я расскажу обо всем, что вам нужно знать, чтобы начать использовать PowerShell Core на виртуальной машине (ВМ) Linux. Прежде чем углубляться, позвольте мне кратко рассмотреть несколько моментов, которые вам необходимо учитывать в отношении версий пакетов.
Что нужно знать о версиях пакетов
Когда-то установка PowerShell на компьютер с Linux означала, что вам нужно было сопоставить дистрибутив Linux и номер сборки с репозиторием пакетов. Например, допустим, вы используете Ubuntu 22.04. Вам нужно будет загрузить и установить пакет специально для Ubuntu 22.04.
К счастью, Microsoft немного упростила задачу , представив универсальные пакеты. Вам по-прежнему необходимо использовать подходящий пакет для вашего дистрибутива Linux, но вам больше не нужно сопоставлять этот пакет с используемой версией Linux.
В этой статье я установлю PowerShell Core в дистрибутиве Linux, известном как Ubuntu. В этом случае мне нужно будет использовать универсальный пакет, предназначенный для использования с Ubuntu. Важно отметить, что версия Ubuntu больше не имеет значения.
Хорошо, давайте приступим к установке PowerShell Core в Ubuntu.
Как установить PowerShell Core на Ubuntu
У вас есть несколько вариантов, которые следует учитывать при установке PowerShell Core на машину под управлением Ubuntu. Наиболее часто используемый метод включает в себя загрузку файла пакета и последующее указание операционной системе установить его.
Конечно, если вы собираетесь развернуть PowerShell из пакета, вам нужно знать, где взять этот пакет. Вы можете узнать это здесь. Поскольку Microsoft выпускает новые версии PowerShell, вам нужно будет постоянно проверять эту ссылку для этих новых выпусков. Если вам интересно, Microsoft перечисляет URL-адреса PowerShell здесь.
Теперь, без лишних слов, вот руководство по установке PowerShell Core в Ubuntu.
Шаг 1: Загрузка пакета
Для начала вам нужно скачать пакет PowerShell. Чтобы загрузить пакет PowerShell в Ubuntu, вам потребуется использовать следующую команду:
В случае загрузки PowerShell 7.2.6 вы можете использовать следующую команду:
На приведенном ниже снимке экрана видно, что я создал папку с именем «temp», а затем перешел к ней перед началом загрузки. Вам не обязательно делать это. Я просто создал временную папку, чтобы в целом сделать процесс менее запутанным. Если вы хотите создать и использовать временную папку, просто введите следующие команды:
На скриншоте ниже показана команда, которую я использовал для загрузки пакета. Вы можете видеть, что когда я закончил, я использовал команду «Dir», чтобы подтвердить, что пакет действительно был загружен. Я сделал это, потому что, если вы ошибетесь при вводе URL-адреса, вы, скорее всего, не получите сообщение об ошибке. Ubuntu просто не загружает файл. Таким образом, всегда полезно проверить успешность загрузки.

Шаг 2. Распаковка PowerShell
После загрузки PowerShell следующим шагом будет распаковка только что загруженного файла пакета. Опять же, команда зависит от версии PowerShell. В случае PowerShell 7.2.6 команда выглядит так:
Я включил скриншот ниже, чтобы вы могли использовать его в качестве ориентира, если он вам понадобится.

Шаг 3: Завершение процесса установки
Последний шаг в процессе развертывания PowerShell — позаботиться обо всех отсутствующих зависимостях и завершить процесс установки PowerShell. Этот шаг требуется не всегда, но в любом случае рекомендуется его выполнить на случай, если вы что-то пропустили. Вы не причините никакого вреда, запустив эту команду без необходимости. Вот команда, используемая для завершения процесса развертывания и проверки наличия отсутствующих зависимостей:
Опять же, не стесняйтесь обращаться к снимку экрана ниже, если вам нужна наглядная помощь.

Итак, вы только что установили PowerShell в систему Linux с Ubuntu, но как вы можете получить к ней доступ? В следующем разделе содержится ответ!
Доступ к PowerShell
Теперь, когда вы установили PowerShell, вы можете приступить к его использованию. Для запуска PowerShell используется команда «pwsh». Однако вы также можете использовать эту же команду для проверки версии PowerShell. Все, что вам нужно сделать, это добавить «–version» после команды «pwsh». Вы можете увидеть примеры обеих этих команд на скриншоте ниже.

И это все! Это простой процесс, не так ли? Прежде чем закончить, я хотел бы рассказать о том, чем PowerShell Core отличается от самого PowerShell. Давайте узнаем в следующем разделе.
Чем PowerShell Core отличается от PowerShell?
Как уже упоминалось, кроссплатформенная версия PowerShell обычно называется PowerShell Core. Основное различие между ним и Windows PowerShell заключается в том, что PowerShell Core поддерживает меньше командлетов. Вы можете проверить количество поддерживаемых командлетов, введя следующие команды:
Количество командлетов, распознаваемых PowerShell в Windows, сильно различается в зависимости от версии Windows и установленных функций и модулей. Однако мой ПК с Windows 10 сообщил о наличии чуть более 12 000 командлетов. Напротив, PowerShell Core, работающий на моей виртуальной машине Ubuntu, сообщил всего о 270 командлетах.

Хорошо, а теперь давайте кратко повторим все, что вы узнали.
Нижняя линия
Хотя PowerShell обычно ассоциируется с системами Windows, у вас есть решения, если вы хотите использовать PowerShell на других платформах. PowerShell Core — одно из таких решений.
Благодаря кроссплатформенным возможностям вы можете запускать его в нескольких средах, таких как Linux и macOS. В этой статье объясняется процесс развертывания PowerShell на виртуальной машине Linux.
Важно помнить, что PowerShell Core не включает столько командлетов, сколько Windows PowerShell. Несмотря на это, вы по-прежнему можете использовать почти 300 доступных команд PowerShell Core для создания сложных сценариев, которые могут работать в кросс-платформенных средах.
У вас есть дополнительные вопросы о PowerShell Core? Ознакомьтесь с разделами часто задаваемых вопросов и ресурсов ниже!
Часто задаваемые вопросы
Где я могу найти информацию об установке PowerShell в дистрибутивах Linux, отличных от Ubuntu?
Microsoft предоставляет документацию по установке PowerShell в Alpine, Debian, Raspberry PI OS, RHEL и Ubuntu. Вы можете узнать больше здесь.
Как найти определенные командлеты, доступные в PowerShell Core, работающем в Linux?
В PowerShell просто введите «Get-Command». PowerShell отобразит список доступных командлетов.
Является ли PowerShell Core расширяемым?
Да, вы можете использовать модули для добавления дополнительных командлетов в PowerShell Core. Вы можете использовать командлет Get-Module для просмотра установленных модулей. Вы также можете добавить дополнительные модули, загрузив их, а затем используя командлет Import-Module для загрузки модуля в PowerShell.
Поскольку PowerShell Core поддерживает небольшое количество командлетов, в чем преимущество его использования?
PowerShell Core включает почти те же функции, что и Windows PowerShell. Правда, отсутствуют тысячи командлетов, но эти командлеты в основном относятся к управлению операционной системой Windows. Вы можете найти командлеты, используемые для сценариев общего назначения, входящие в состав PowerShell Core. Основное преимущество использования PowerShell Core заключается в том, что оно позволяет разрабатывать сценарии PowerShell, которые могут работать на нескольких платформах.
Каковы существенные архитектурные различия между PowerShell и PowerShell Core?
Основное архитектурное различие между PowerShell и PowerShell Core заключается в том, что хотя PowerShell работает только в Windows, PowerShell Core может работать в Windows, macOS и Linux. На более фундаментальном уровне самая большая разница между ними заключается в том, что PowerShell зависит от.NET Framework, а PowerShell Core использует среду выполнения.NET Core.