После того, как Microsoft влюбилась в Linux (то, что в народе стало известно как «Microsoft любит Linux»), PowerShell, который изначально был компонентом только для Windows, 18 августа 2016 года был открыт и стал кроссплатформенным, доступным в Linux и Mac OS.
PowerShell — это система автоматизации задач и управления конфигурацией, разработанная Microsoft. Он состоит из интерпретатора командного языка (оболочки) и языка сценариев, построенного на платформе .NET Framework.
Он предлагает полный доступ к COM (компонентная объектная модель) и WMI (инструментарий управления Windows), тем самым позволяя системным администраторам выполнять административные задачи как в локальных, так и в удаленных системах Windows, а также WS-Management и CIM (общая информационная модель), обеспечивающие администрирование удаленных систем Linux и сетевых устройств.
В этой структуре административные задачи в основном выполняются определенными классами .NET, называемыми командлетами (произносится как command-let).
Подобно сценариям оболочки в Linux, пользователи могут создавать сценарии или исполняемые файлы, сохраняя группы командлетов в файлах, следуя определенным правилам. Эти сценарии можно использовать как независимые утилиты или инструменты командной строки.
Установка PowerShell в системах Linux
Чтобы установить PowerShell в Linux, мы будем использовать официальный репозиторий Microsoft, который позволит нам установить самые популярные инструменты управления пакетами Linux, такие как apt-get или apt и yum или dnf.
Установка PowerShell в Ubuntu
Сначала импортируйте ключи GPG общедоступного репозитория, затем зарегистрируйте репозиторий Microsoft Ubuntu в списке источников пакетов APT, чтобы установить Powershell:
$ sudo apt-get update $ sudo apt-get install -y wget apt-transport-https software-properties-common $ wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" $ sudo dpkg -i packages-microsoft-prod.deb $ sudo apt-get update $ sudo apt-get install -y powershell
Установка PowerShell в Debian 11
Выпуски дистрибутива PowerShell для Debian публикуются в репозиториях пакетов для упрощения установки и обновления.
$ sudo apt update $ sudo apt install -y curl gnupg apt-transport-https $ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - $ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-bullseye-prod bullseye main" > /etc/apt/sources.list.d/microsoft.list' $ sudo apt update $ sudo apt install -y powershell
Установите PowerShell в Debian 10
$ wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb $ sudo dpkg -i packages-microsoft-prod.deb $ sudo apt-get update $ sudo apt-get install -y powershell
Установка PowerShell в системах RHEL
Дистрибутивы PowerShell для RHEL, такие как CentOS Stream, Rocky и AlmaLinux, публикуются в официальных репозиториях Microsoft для упрощения установки и обновления.
---------- On RHEL, CentOS, Rocky & AlmaLinux 9 ---------- $ curl https://packages.microsoft.com/config/rhel/9.0/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo $ sudo dnf install --assumeyes powershell ---------- On RHEL, CentOS, Rocky & AlmaLinux 8 ---------- $ curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo $ sudo dnf install --assumeyes powershell ---------- On RHEL/CentOS 7 ---------- $ curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo $ sudo dnf install --assumeyes powershell
Как использовать Powershell в Linux
В этом разделе у нас будет краткое введение в Powershell; где мы увидим, как запустить powershell, запустить некоторые основные команды и посмотреть, как работать с файлами, каталогами и процессами. Затем позже углубитесь в то, как вывести список всех доступных команд и показать справку по командам и псевдонимы.
Чтобы запустить Powershell, введите:
$ pwsh PowerShell 7.3.3PS /root>
Вы можете проверить версию Powershell с помощью команды ниже:
PS /root> $PSVersionTable

Запуск некоторых основных команд Powershell в Linux.
get-date [# Display current date] get-uptime [# Display server uptime] get-location [# Display present working directory]

Работа с файлами и каталогами в Powershell
1. Создайте новый пустой файл, используя два следующих метода:
new-item tecmint.tex OR “”>tecmint.tex
Затем добавьте в него содержимое и просмотрите содержимое файла.
set-content tecmint.tex -value "TecMint Linux How Tos Guides" get-content tecmint.tex

2. Удалите файл в powershell.
remove-item tecmint.tex get-content tecmint.tex

3. Создайте новый каталог.
mkdir tecmint-files cd tecmint-files “”>domains.list ls

4. Для выполнения длинного списка, в котором отображаются сведения о файле/каталоге, включая режим (тип файла) и время последнего изменения.
dir

5. Просмотрите все запущенные процессы в вашей системе:
get-process

6. Чтобы просмотреть сведения об одном или группе запущенных процессов с заданным именем, укажите имя процесса в качестве аргумента предыдущей команды следующим образом:
get-process apache2

Значение единиц в выводе выше:
- NPM(K) — объем невыгружаемой памяти, которую использует процесс, в килобайтах.
- PM(K) — объем страничной памяти, которую использует процесс, в килобайтах.
- WS(K) – размер рабочего множества процесса, в килобайтах. Рабочий набор состоит из страниц памяти, на которые недавно ссылался процесс.
- CPU(s) – количество процессорного времени, которое процесс использовал на всех процессорах, в секундах.
- ID – идентификатор процесса (PID).
- ProcessName — имя процесса.
7. Чтобы узнать больше, получите список всех команд Powershell для разных задач:
get-command

8. Чтобы узнать, как использовать команду, просмотрите ее справочную страницу (похожую на справочную страницу в Unix/Linux); в этом примере вы можете получить справку по команде Describe:
get-help Describe

9. Просмотреть все доступные псевдонимы команд, введите:
get-alias

10. И последнее, но не менее важное: отобразите историю команд (список команд, которые вы запускали ранее) следующим образом:
history

Вот и все! А пока в этой статье мы показали вам, как установить Microsoft Powershell в Linux. На мой взгляд, Powershell еще предстоит пройти очень долгий путь по сравнению с традиционными оболочками Unix/Linux, которые предлагают гораздо лучшие, более интересные и продуктивные функции для управления машиной из командной строки и, что важно, для целей программирования (скриптов) также.