PowerShell — это кроссплатформенная система автоматизации и управления конфигурациями от Microsoft. Она использует объектный конвейер (работает не с текстом, а с объектами .NET), что делает её более мощной для сложных сценариев, чем традиционные Bash-скрипты. PowerShell 7.x работает на Linux, macOS и Windows.
⚠️ Важно: Поддержка Debian со стороны Microsoft различается по версиям:
| Релиз Debian | Поддержка Microsoft | Рекомендуемый способ установки |
|---|---|---|
| Debian 13 (Trixie) | ✅ Поддерживается | Универсальный DEB-пакет с GitHub |
| Debian 12 (Bookworm) | ✅ Поддерживается (до 2026-06-10) | APT-репозиторий Microsoft |
| Debian 11 (Bullseye) | ❌ Не поддерживается | Обновите систему или используйте неофициально |
Предварительные требования
Перед установкой убедитесь, что:
- У вас amd64 архитектура (PowerShell 7.x для Linux доступна только для 64-битных систем)
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Обновление системы и установка зависимостей
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gpg jq
Что делает: Устанавливает утилиты для скачивания ключей, работы с HTTPS и парсинга JSON (нужен для скрипта, определяющего последнюю версию PowerShell на GitHub).
Проверка архитектуры и версии Debian
. /etc/os-release
printf 'Debian %s (%s)\n' "$VERSION_ID" "$VERSION_CODENAME"
dpkg --print-architecture
✅ Ожидаемый вывод: amd64. PowerShell для Linux не поддерживает 32-битные или ARM-системы.
Способ 1: Установка PowerShell на Debian 13 (Trixie) — универсальный DEB-пакет с GitHub
Microsoft пока не опубликовала стабильный пакет powershell в APT-репозитории для Debian 13 (Trixie). Поэтому используем универсальный DEB-пакет с GitHub.
Скрипт автоматической установки
(
set -euo pipefail
release_json=$(curl -fsSL https://api.github.com/repos/PowerShell/PowerShell/releases/latest)
package_url=$(printf '%s' "$release_json" | jq -r 'first(.assets[] | select(.name | test("^powershell_[0-9.]+-1\\.deb_amd64\\.deb$")) | .browser_download_url) // empty')
checksums_url=$(printf '%s' "$release_json" | jq -r 'first(.assets[] | select(.name == "hashes.sha256") | .browser_download_url) // empty')
if [ -z "$package_url" ] || [ "$package_url" = "null" ] || [ -z "$checksums_url" ] || [ "$checksums_url" = "null" ]; then
printf '%s\n' 'PowerShell release assets were not found.'
exit 1
fi
package_file="/tmp/${package_url##*/}"
checksums_file="/tmp/hashes.sha256"
trap 'rm -f "$package_file" "$checksums_file"' EXIT
curl -fL -o "$package_file" "$package_url"
curl -fsSL -o "$checksums_file" "$checksums_url"
(
cd /tmp
iconv -f UTF-16LE -t UTF-8 "$checksums_file" | grep -F " *${package_file##*/}" | sha256sum -c -
)
sudo apt install "$package_file"
)
Что делает скрипт:
- Определяет последнюю стабильную версию PowerShell через GitHub API
- Скачивает DEB-пакет и файл контрольных сумм
- Конвертирует контрольные суммы из UTF-16 в UTF-8
- Проверяет целостность пакета
- Устанавливает его через
apt
Проверка установки
dpkg-query -W -f='${binary:Package} ${Version} ${Architecture}\n' powershell
command -v pwsh
pwsh --version
✅ Ожидаемый вывод: powershell 7.6.1-1.deb amd64 и путь /usr/bin/pwsh.
Способ 2: Установка PowerShell на Debian 12 (Bookworm) — APT-репозиторий Microsoft
Этот способ удобен тем, что PowerShell будет обновляться вместе с системой через apt upgrade.
Скрипт добавления репозитория
(
set -euo pipefail
. /etc/os-release
if [ "$VERSION_ID" != "12" ]; then
printf 'This repository method is for Debian 12 (Bookworm), not Debian %s (%s).\n' "$VERSION_ID" "$VERSION_CODENAME"
exit 1
fi
if [ "$(dpkg --print-architecture)" != "amd64" ]; then
printf '%s\n' 'The Microsoft PowerShell repository package in this workflow is for amd64 systems.'
exit 1
fi
keyring="/usr/share/keyrings/microsoft-powershell.gpg"
source_file="/etc/apt/sources.list.d/microsoft-powershell.sources"
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor --yes -o "$keyring"
printf '%s\n' \
'Types: deb' \
"URIs: https://packages.microsoft.com/debian/$VERSION_ID/prod" \
"Suites: $VERSION_CODENAME" \
'Components: main' \
'Architectures: amd64' \
"Signed-By: $keyring" | sudo tee "$source_file" >/dev/null
)
Проверьте ключ репозитория
gpg --show-keys --with-fingerprint /usr/share/keyrings/microsoft-powershell.gpg
✅ Отпечаток должен быть: BC52 8686 B50D 79E3 39D3 721C EB3E 94AD BE12 29CF
Обновите список пакетов и установите PowerShell
sudo apt update
apt-cache policy powershell
sudo apt install -y powershell
Проверка установки
dpkg-query -W -f='${binary:Package} ${Version} ${Architecture}\n' powershell
command -v pwsh
pwsh --version
Альтернативные пакеты PowerShell
| Пакет | Команда | Для чего |
|---|---|---|
powershell | pwsh | Стабильная версия (рекомендуется) |
powershell-lts | pwsh | Старая LTS-ветка (только если нужно) |
powershell-preview | pwsh-preview | Тестовые сборки (не для продакшена) |
Установка LTS-версии (Debian 12):
sudo apt install -y powershell-lts
Установка preview-версии:
sudo apt install -y powershell-preview
Запуск PowerShell
pwsh
Выход: exit
Обновление PowerShell
Для универсального DEB-пакета (Debian 13)
Повторно запустите скрипт установки из раздела «Способ 1» — он сам определит новую версию и установит её поверх старой.
Для APT-репозитория (Debian 12)
sudo apt update
sudo apt install --only-upgrade powershell -y
Удаление PowerShell
Удаление пакета
sudo apt remove powershell
hash -r
Если вы устанавливали preview-версию: замените powershell на powershell-preview.
Удаление репозитория Microsoft (Debian 12)
sudo rm -f /etc/apt/sources.list.d/microsoft-powershell.sources
Проверьте, не осталось ли ссылок на ключ:
grep -Rqs 'microsoft-powershell.gpg' /etc/apt/sources.list /etc/apt/sources.list.d || sudo rm -f /usr/share/keyrings/microsoft-powershell.gpg
Удаление пользовательских данных (опционально)
rm -rf ~/.config/powershell ~/.local/share/powershell ~/.cache/powershell
Решение типичных проблем
8.1 Ошибка: Unable to locate package powershell (Debian 13)
Симптом: sudo apt install powershell не находит пакет.
Причина: В репозитории Microsoft для Debian 13 может не быть стабильного пакета powershell.
Пошаговое решение:
Используйте универсальный DEB-пакет с GitHub (см. Способ 1).
8.2 Ошибка: sha256sum reports no properly formatted checksum lines
Симптом: При проверке контрольной суммы ошибка.
Причина: Файл hashes.sha256 имеет кодировку UTF-16.
Пошаговое решение:
Скрипт установки уже конвертирует файл через iconv -f UTF-16LE -t UTF-8. Если вы делаете вручную:
iconv -f UTF-16LE -t UTF-8 hashes.sha256 | grep -F ' *powershell_7.6.1-1.deb_amd64.deb' | sha256sum -c -
8.3 Ошибка: NO_PUBKEY или repository signature errors
Симптом: При sudo apt update ошибка подписи репозитория Microsoft.
Причина: Проблемы с GPG-ключом.
Пошаговое решение:
Шаг 1: Проверьте ключ:
gpg --show-keys --with-fingerprint /usr/share/keyrings/microsoft-powershell.gpg
Шаг 2: Если ключ отсутствует или неверен — переустановите его:
sudo curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor --yes -o /usr/share/keyrings/microsoft-powershell.gpg
Шаг 3: Обновите список пакетов:
sudo apt update
8.4 Ошибка: The wrong PowerShell command starts
Симптом: Вы установили preview-версию, но команда pwsh запускает стабильную.
Причина: Preview-версия запускается командой pwsh-preview, а не pwsh.
Пошаговое решение:
Для preview-версии используйте:
pwsh-preview
Проверьте, какие команды доступны:
command -v pwsh
command -v pwsh-preview
8.5 Debian 11 (Bullseye) — не поддерживается
Симптом: Вы пытаетесь установить PowerShell на Debian 11.
Причина: Microsoft больше не поддерживает Debian 11 для PowerShell.
Пошаговое решение:
Вариант A: Обновитесь до Debian 12 или 13.
Вариант B: Используйте неофициальную установку (на свой страх и риск) — универсальный DEB-пакет с GitHub может работать, но Microsoft не гарантирует поддержку.
Чек-лист: что проверить после установки
- [ ] PowerShell установлен:
pwsh --versionпоказывает версию - [ ] Запускается интерактивная сессия:
pwsh→ приглашениеPS> - [ ] Для Debian 12: репозиторий Microsoft добавлен:
apt-cache policy powershell→ строка сpackages.microsoft.com - [ ] Для Debian 13: пакет установлен из GitHub,
dpkg -l powershell→ii - [ ] Можно выполнить базовую команду:
pwsh -c "Get-Process | Select-Object -First 5"
Основы работы с PowerShell
Получение версии:
$PSVersionTable.PSVersion
Список процессов:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
Чтение файла:
Get-Content /etc/os-release | Select-String PRETTY_NAME
Работа с JSON:
'{"name":"debian","release":13}' | ConvertFrom-Json | Select-Object name, release
Обновление справки:
Update-Help -Scope CurrentUser
Выход:
exit
Местоположение пользовательских данных
| Тип данных | Путь |
|---|---|
| Профиль пользователя | ~/.config/powershell/Microsoft.PowerShell_profile.ps1 |
| Пользовательские модули | ~/.local/share/powershell/Modules |
| История команд | ~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt |
| Системные модули | /usr/local/share/powershell/Modules |
Часто задаваемые вопросы (FAQ)
Вопрос: PowerShell бесплатен?
Ответ: Да, PowerShell 7.x — это open-source проект под лицензией MIT.
Вопрос: В чём разница между PowerShell и Bash?
Ответ: Bash работает с текстом, PowerShell — с объектами .NET. Это делает PowerShell более мощным для обработки структурированных данных (JSON, XML, CSV).
Вопрос: Нужно ли удалять Bash, чтобы использовать PowerShell?
Ответ: Нет, они прекрасно сосуществуют. Вы можете использовать оба.
Вопрос: Как запустить PowerShell-скрипт?
Ответ: pwsh -f script.ps1 или ./script.ps1 (если файл исполняемый).
Вопрос: Поддерживает ли PowerShell команды Linux (ls, cat)?
Ответ: Да, они есть как алиасы к cmdlet’ам (Get-ChildItem, Get-Content), но лучше использовать полные имена для ясности.
Заключение
Теперь PowerShell установлен на вашем Debian. Вы можете использовать его для автоматизации задач, управления системами и обработки данных.
Что дальше?
- Изучите официальную документацию PowerShell
- Установите Visual Studio Code с расширением PowerShell
- Настройте удалённое управление через SSH