PowerShell сегодня является открытой кроссплатформенной оболочкой и языком сценариев, который можно установить и использовать как в Windows, так и в Linux, MacOS и других платформах. В этой статье мы рассмотрим, как установить PowerShell в популярных дистрибутивах Linux (CentOS, RHEL, Debian, Kali, Mint, Ubuntu). Статья скорее всего будет полезна Windows администраторам, знакомым с PowerShell, перенести свой опыт в Linux.
- Как установить PowerShell Core в Ubuntu 20.04 и Linux Mint 20?
- Установка PowerShell Core в Debian 11
- Установка PowerShell в CentOS и Red Hat Enterprise Linux (RHEL) 7 и 8
- Установка PowerShell Core 7.x в Kali Linux.
- Установка PowerShell в Linux с помощью Snap
- Как удалить PowerShell в Linux?
- Запуск и использование PowerShell в Linux
- Полный список скомпилированных пакетов PowerShell под различные платформы доступен в официальном репозитарии https://github.com/PowerShell/PowerShell/releases.
- Информация о поддержке версий PowerShell в различных версиях дистрибутивов Linux есть здесь: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-linux?view=powershell-7.2
На данный момент пакет 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
Также вы можете скачать и установить 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 Core 7.2.0:
PSVersion 7.2.0 PSEdition Core OS Linux 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021 Platform Unix
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
Вывести историю выполненных команд PowerShell:
History
Получить справку по команде:
Get-help Get-History
Для запуска скрипта PowerShell из bash:
pwsh /home/sysops/CheckDrive.ps1