После того как компания 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:
Чтобы посмотреть все доступные псевдонимы команд используйте:
И еще одна вещь, которая может вам понадобиться, это история команд. Для ее просмотра наберите:
Выводы
Вот и все. В этой статье мы показали как выполняется работа с PowerShell Linux, а также как установить эту оболочку во всех основных дистрибутивах. PowerShell очень сильно отличается от привычных оболочек Linux, которые имеют лучшие, продуктивные и более интересные команды для выполнения различных задач из командной строки или написания скриптов. Но, возможно, администраторам Windows будет интересно использовать именно эту оболочку.
Источник: tecmint.com
Нафига козе баян?)))
Единственное для чего может быть полезным - это подключение к удаленной win машине и выполнение на ней PowerShell скриптов.
То-то и оно что нихрена не пашет Enter-PSSession, выдает ошибки по-любому. Проще короче опенссх поставить на сервер вин7
оффтоп маленький.
$ sudo apt update
...
Hit:4 http://packages.microsoft.com/repos/vscode stable InRelease
вот уж не знаю, это страшный сон линуксоида или виндузятника 😀
А какие-нибудь более менее стандартные задачи как в нем сделать? Типа `grep xxx * -r` или `scp file host:path` или `tail -f file`
О госпаде зачем??? В bash есть все что необходимо, а для более продвинутых задач можно юзать встроенный в любые линуксы питон. Зачем нужна эта поделка в линуксе? Кстати как она вообще тут работает, она же основана на .NET который онли виндовс?
Емнип, тут не оригинальный powershell, как в винде, а "Powershell Core", который использует .NET core, который тоже опенсоурсный (dotnet)