Начало работы с PowerShell в Linux [Руководство для начинающих]

После того как Microsoft влюбилась в Linux (что стало популярно известно как “Microsoft Loves Linux”), PowerShell, изначально компонент только для Windows, был открытым исходным кодом и сделан кроссплатформенным 18 августа 2016 года, доступным на Linux и Mac OS.

PowerShell – это система автоматизации задач и управления конфигурацией, разработанная Microsoft. Он состоит из интерпретатора языка команд (shell) и скриптового языка, построенного на .NET Framework.

Он предлагает полный доступ к COM (Component Object Model) и WMI (Windows Management Instrumentation), что позволяет администраторам систем выполнять административные задачи как на локальных, так и на удаленных системах Windows, а также WS-Management и CIM (Common Information Model), что позволяет управлять удаленными системами Linux и сетевыми устройствами.

В этой рамке административные задачи в основном выполняются специальными .NET классами, называемыми cmdlets (произносится команда-летс).

Подобно скриптам оболочки в Linux, пользователи могут создавать скрипты или исполняемые файлы, храня группы cmdlets в файлах, следуя определенным правилам. Эти скрипты могут использоваться как независимые утилиты или инструменты командной строки.

Установка 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.3
PS /root> 

Вы можете проверить версию Powershell с помощью следующей команды:

PS /root> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.3.3
PSEdition                      Core
GitCommitId                    7.3.3
OS                             Linux 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30)
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Выполнение основных команд Powershell в Linux.

get-date          [# Display current date]
get-uptime        [# Display server uptime]
get-location      [# Display present working directory]
Running PowerShell Commands

Работа с файлами и каталогами в Powershell

1. Создайте новый пустой файл, используя два метода ниже:

new-item  tecmint.tex
OR
“”>tecmint.tex

Тогда добавьте содержимое в него и просмотрите содержимое файла.

set-content tecmint.tex -value "TecMint Linux How Tos Guides"
get-content tecmint.tex
Create New File in Powershell

2. Удалите файл в PowerShell.

remove-item tecmint.tex
get-content tecmint.tex
Delete File in Powershell

3. Создайте новый каталог.

mkdir  tecmint-files
cd  tecmint-files
“”>domains.list
ls
Create a Directory in Powershell

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

dir
Directory Long Listing in Powershell

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

get-process
View Running Processes in Powershell

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

get-process apache2
View Specific Process in Powershell

Значение единиц в выводе выше:

  • NPM(K) – количество нестраничной памяти, которое процесс использует, в килобайтах.
  • PM(K) – количество страничной памяти, которое процесс использует, в килобайтах.
  • WS(K) – размер рабочего набора процесса, в килобайтах. Рабочий набор состоит из страниц памяти, которые были недавно ссылаемы процессом.
  • CPU(s) – количество процессорного времени, которое процесс использовал на всех процессорах, в секундах.
  • ID – идентификатор процесса (PID).
  • ProcessName – имя процесса.

7. Чтобы узнать больше, получите список всех команд PowerShell для различных задач:

get-command
List Powershell Commands

8. Чтобы узнать, как использовать команду, просмотрите ее страницу справки (аналогично странице man в Unix/Linux); в этом примере вы можете получить помощь для команды Describe:

get-help Describe
Powershell Help Manual

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

get-alias
List Powershell Command Aliases

10. Наконец, отобразить историю команд (список команд, которые вы ранее выполняли) следующим образом:

history
List Powershell Commands History

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

Посетите репозиторий PowerShell на Github: https://github.com/PowerShell/PowerShell

Однако вы можете попробовать его и поделиться своими впечатлениями с нами в комментариях.

Source:
https://www.tecmint.com/install-powershell-in-linux/