Після того, як 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, які пропонують набагато кращі, цікавіші та продуктивніші функції для керування машиною з командного рядка і, що важливо, для цілей програмування (скриптів) також.