После того как компания Microsoft заинтересовалась Linux и открыла исходный код нескольких своих проектов, был открыт код командного интерпретатора и оболочки для выполнения системных скриптов Windows — PowerShell. Раньше PowerShell была доступна только для Windows, но теперь ее можно использовать даже в Linux и MacOS.
В этой статье мы рассмотрим что такое PowerShell, чем она может быть нам полезна, а также как выполняется работа с PowerShell Linux.
Что такое PowerShell?
PowerShell — это больше чем командная оболочка, это система автоматизации задач и управления конфигурацией, разработанная в Microsoft. Она состоит из интерпретатора команд (оболочки) и языка сценариев, основанного на платформе NET Framework. PowerShell реализует полный доступ к COM (Component Object Model) и WMI (Windows Management Instrumentation), поэтому позволяет системным администраторам выполнять различные административные действия на локальной или удаленных машинах. Также поддерживаются технологии WS-Management и CIM (Common Information Model), что позволяет управлять сетевыми устройствами.
Для решения каждой возникшей задачи необходимо создавать .NET классы, которые называются cmdlet или по-нашему коммандлеты. Для создания скриптов, так же как и в Linux можно сохранять группы коммандлетов в файл. Затем эти скрипты можно применить в качестве утилит командной строки или дополнительных инструментов.
Установка PowerShell в Linux
В официальных репозиториях оболочки PowerShell, к сожалению, нет, но в Microsoft создали свой PPA репозиторий, который мы можем использовать. Для добавления репозитория в Ubuntu используйте такие команды:
curl https://packages.microsoft.com/keys/microsoft.asc |sudo apt-key add -
$ curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list |sudo tee /etc/apt/sources.list.d/microsoft.list
$ sudo apt-get update
Эти команды рассчитаны на Ubuntu 16.04, для добавления репозитория в Ubuntu 16.10 используйте такие команды:
curl https://packages.microsoft.com/keys/microsoft.asc |sudo apt-key add -
$ curl https://packages.microsoft.com/config/ubuntu/16.10/prod.list |sudo tee /etc/apt/sources.list.d/microsoft.list
$ sudo apt-get update
Затем используйте пакетный менеджер apt для установки powershell и необходимых компонентов:
sudo apt install -y powershell
Для Red Hat, Fedora и CentOS Microsft тоже подготовили отдельный репозиторий. Чтобы его добавить выполните:
sudo curl https://packages.microsoft.com/config/rhel/7/prod.repo> /etc/yum.repos.d/microsoft.repo
Затем используйте yum для установки:
sudo yum install -y powershell
Работа с PowerShell в Linux
После того как установка PowerShell Linux будет завершена, вы можете перейти к работе с этой оболочкой. Дальше мы рассмотрим как начать работать, разберем основные команды для работы с файлами, каталогами и процессами. Также рассмотрим как получить список всех доступных команд и справку по них.
Чтобы запустить сеанс PowerShell выполните такую команду:
powershell
Теперь, вы можете узнать версию PowerShell и ее компонентов с помощью такой команды:
Продолжим рассмотрение команд, с команд для получения информации. Следующие две команды позволяют узнать текущую дату и время бесперебойной работы компьютера:
А эта команда позволяет узнать текущую рабочую папку:
Работа с файлами в PowerShell
Чтобы создать новый пустой файл используйте команду:
Или:
Затем добавим в этот файл содержимое:
И смотрим новое содержимое файла:
Чтобы удалить файл используйте команду remove-item:
Создайте новый каталог и перейдите в него:
Затем создадим один файл в этой папке и посмотрим ее содержимое:
Если вы хотите получить полный список файлов в папке с подробной информацией используйте команду dir:
Работа с процессами в PowerShell
Чтобы посмотреть список запущенных процессов используйте команду get-process:
Также вы можете получить информацию только по определенному процессу или группе, для этого передайте его имя в параметрах команде:
Вот значения основных колонок, которые выводит команда:
- NPM (K) — количество оперативной памяти, которую процесс использует в килобайтах;
- PM(K) — количество выгружаемой оперативной памяти, используемой процессом в килобайтах;
- WS (K) — размер блока с исполняемыми инструкциями процесса в килобайтах;
- CPU(s) — занимаемый процент процессорного времени;
- ID — идентификатор процесса (PID);
- ProcessName — имя процесса.
Как видите, здесь можно увидеть всю основную информацию о процессах. Чтобы остановить процесс используйте команду stop-process, в параметрах ей нужно передать PID:
Информация про PowerShell
Вы можете узнать всю необходимую информацию про команды PowerShell Linux, чтобы работа с оболочкой была максимально удобной. Для просмотра информации про доступные команды:
Чтобы посмотреть более подробную информацию по нужной команде используйте функцию get-help. Например, узнаем информацию про команду Describe:
Чтобы посмотреть все доступные псевдонимы команд используйте:
И еще одна вещь, которая может вам понадобиться, это история команд. Для ее просмотра наберите: