Установка PowerShell Core в различных дистрибутивах Linux

PowerShell сегодня является открытой кроссплатформенной оболочкой и языком сценариев, который можно установить и использовать как в Windows, так и в Linux, MacOS и других платформах. В этой статье мы рассмотрим, как установить PowerShell в популярных дистрибутивах Linux (CentOS, RHEL, Debian, Kali, Mint, Ubuntu). Статья скорее всего будет полезна Windows администраторам, знакомым с PowerShell, перенести свой опыт в Linux.

На данный момент пакет PowerShell отсутствует почти во всех стандартных репозиториях Linux. Поэтому для установки PowerShell на Linux сначала нужно скачать пакет репозитория Microsoft, импортировать ключи и использовать стандартный менеджер пакетов вашего Linux дистрибутива для установки PowerShell.

Также напомним, что на Linux можно установить только PowerShell Core (основан на .NET Сore). В Linux нельзя штатно установить классический Windows PowerShell 5.1 ( отличия между PowerShell Core и Windows PowerShell ). На момент написания статьи максимальная доступная версия PowerShell Core 7.2 LTS.

Как установить PowerShell Core в Ubuntu 20.04 и Linux Mint 20?

Перед установкой PowerShell в Ubuntu и Linux Mint нужно обновить список пакетов:

sudo apt-get update -y

Скачайте GPG ключи репозитория Microsoft:

wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

Установите GPG ключи Microsoft:

sudo dpkg -i packages-microsoft-prod.deb

Обновите список пакетов, добавив пакеты из packages.microsoft.com:

sudo apt-get update

Установите PowerShell:
sudo apt-get install powershell -y

Пакет powershell будет автоматически обновляться менеджером пакетов apt:

sudo apt update

Если на компьютере была установлена предыдущая версия PowerShell Core, она будет удалена.

Также вы можете скачать и установить DEB пакет powershell вручную:

wget -q https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-lts_7.2.0-1.deb_amd64.deb
sudo dpkg -i powershell_7.2.0-1.deb_amd64.deb

Разрешить зависимости и закончить установку:

sudo apt-get install -f

Установка PowerShell Core в Debian 11

Для установки PowerShell Core версии 7.0+ в Debian 11 bullseye, сначала нужно загрузить GPG ключи репозитория Microsoft:

wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb

Теперь нужно зарегистрировать скачанный GPG ключ:

sudo dpkg -i packages-microsoft-prod.deb

Обновите список программ в менеджере пакетов:

sudo apt update

Установите PowerShell:

sudo apt install -y powershell

Обновление PowerShell будет происходить автоматически, когда вы запускаете обновление всех пакетов командой:

sudo apt update

Если нужно обновить только пакет PowerShell:

sudo apt install powershell

Установка PowerShell в CentOS и Red Hat Enterprise Linux (RHEL) 7 и 8

Установка PowerShell в Linux CentOS и Red Hat Enterprise Linux (RHEL), Oracle Linux выполняется одинаково:

Зарегистрируйте в yum новый репозиторий Microsoft RedHat:

curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo

Установите последнюю доступную версию PowerShell Core с помощью менеджера пакета yum (dnf) :

sudo yum install -y powershell

Обновляется пакет стандартно через yum:

sudo yum update powershell

Также можно установить PowerShell из RPM файла:

sudo yum install https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-lts-7.2.0-1.rh.x86_64.rpm

Установка PowerShell Core 7.x в Kali Linux.

Чтобы установить PowerShell в Kali, достаточно выполнить команду:

apt update && apt -y install powershell

Установка PowerShell в Linux с помощью Snap

Вы можете использовать snap для установки PowerShell в различных дистрибутивах Linux. Так же этот метод установки можно рекомендовать для дистрибутивов Linux для которых нет официальной поддержки posh.

Команда установки PowerShell через snap:

sudo snap install powershell --classic

Обновление PowerShell через snap выполняется автоматически, но вы можете обновить его вручную:

sudo snap refresh powershell

Как удалить PowerShell в Linux?

Рассмотрим команды удаления PowerShell в различных дистрибутивах Linux:

  • Удалить PowerShell Core в Ubuntu/Linux Mint: sudo apt remove powershell
  • Удалить PowerShell в Debian: sudo apt remove powershell
  • Удалить PowerShell в Kali Linux: sudo apt -y remove powershell
  • Удаление PowerShell в CentOS и Red Hat Enterprise Linux (RHEL): sudo yum remove powershell
  • Удалить PowerShell через Snap: sudo snap remove powershell

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

Чтобы запустить командную оболочку PowerShell в Linux, выполните команду:

pwsh

Проверить какая версию PowerShell установлена на данном хосте Ubuntu можно командой:

$PSVersionTable

При наборе команд PowerShell можно использовать стандартное автодополнение с клавишей TAB.

В нашем примере установлен PowerShell Core 7.2.0:

PSVersion 7.2.0_x000D_PSEdition Core_x000D_OS Linux 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021_x000D_Platform Unix

Бросается в глаза, что команды в оболочке PowerShell выполняются в несколько раз дольше, чем в оболочке bash. Можно сравнить время выполнения с помощью простых команд:

time pwsh -Command Get-History
time bash -c history

По умолчанию в Linux доступен небольшой список встроенных модулей:

Get-Module –ListAvailable

  • Microsoft.PowerShell.Archive
  • Microsoft.PowerShell.Host
  • Microsoft.PowerShell.Management
  • Microsoft.PowerShell.Security
  • Microsoft.PowerShell.Utility
  • PackageManagement
  • PowerShellGet
  • PSReadLine
  • ThreadJob

Можно установить другие модули, в том числе VMWare PowerCLI .

Получить текущую дату:

Get-date

Узнать аптайм хоста:

get-Uptime

Вывести содержимое текущшего каталога:

Dir

Или

Get-ChildItem

Обратите внимание, что в Linux PowerShell регистр команд не имеет значения.

Вывести историю выполненных команд PowerShell :

History

Получить справку по команде:

Get-help Get-History

Для запуска скрипта PowerShell из bash:

pwsh /home/sysops/CheckDrive.ps1

Более подробно об особенностях и сценариях использования PowerShell для администрирования и автоматизации в Linux мы рассмотрим в следующей статье.
admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 недели ago