PowerShell на Linux. Зачем?

Чем может быть полезен PowerShell в Linux? Именно на этот вопрос я постарался ответить в статье. Тут приведены несколько примеров использования PowerShell для настройки Linux: работа с файлами, запуск программ Linux, редактирование. Это лишь идеи о том как можно использовать PowerShell Core на Linux. И статья написана все же для администраторов знакомых с PowerShell. Как минимум ознакомьтесь с введением в PowerShell

Работа с файлами Linux в PowerShell Core

Работать с файлами вы можете привычным для себя образом, как это делали в bash или cmd. Однако помните, что команды cd, dir, pwd и т.п. теперь алиасы PowerShell и работают не совсем так как обычно. Например, pwd -L выдает ошибку, хотя принимает параметры командлета get-location. А вот ls, cp, rm это не алиасы и работают как обычно в bash.

В общем-то PowerShell Core работает с файлами одинаково и в Windows и в Linux. Я приведу лишь несколько примеров.

Копирование файлов можно производить или unix командой cp, или используя Copy-Item. В первом примере ниже копируется файл. Во втором — каталог целиком с объединением содержимого каталогов.

Создание каталога можно произвести или unix командой md, или используя New-Item


Копирование файлов между Windows и Linux

А вот копирование файлов между Windows и Linux используя PowerShell я решил вынести в отдельный раздел

Вариантов тут два, или использовать WS-Man или SSH. Начнем пожалуй с WS-Man. Для его использования необходимо:

  • Установить gss-ntlmssp — для аутентификации NTLM. В моем дистрибутиве это команда sudo apt-get install gss-ntlmssp
  • Создать сессию до Windows компьютера, конечно на нем уже должен быть выполнен Enable-PSRemoting
  • Копировать файлы используя Сopy-Item и в зависимости от направления с параметрами FromSession или ToSession

С SSH последовательность действий идентичная. Единственное, что нужно сделать — это установить и настроить ssh на Windows компьютере. О том как это сделать я писал в статье
Дружим PowerShell и SSH на Windows и Linux .

Запуск программ и команд Bash

Большинство способов выполнения команд bash и программ будут работать одинаково в PowerShell Core на Linux и на Windows. Хочу заметить, что PowerShell можно использовать как Shell по умолчанию в Linux, поэтому с запуском программ сложностей быть не должно.

Подробнее о способах запуска команд вы можете поглядеть в Wiki Technet.

Заметьте, что отлично работает и конвеер. Причем не важно в какой последовательности (слева или справа) стоят команды Powershell и команды Bash. Однако, помним, что результат выполнения Bash команд — это строка!

Работа с текстовыми файлами в PowerShell в Linux

Классические для PowerShell варианты создания файла работают на ура:

Чтение файлов и их анализ, так же можно делать с использованием возможностей PowerShell. Впрочем, можно использовать и команду cat.

Добавление строчек в текстовый файл можно реализовать используя Out-File с параметром Append. Делать это можно построчно, а можно сразу несколько строк.

Заменить какую-либо строку можно используя Get-Content, ForEach-Object (алиас %)

Что все это нам дает?

Известно, что большинство программ работающих на Linux настраивается используя конфигурационные файлы и запуск консольных приложений. Получается, что редактируя текстовые файлы, описанным в статье образом, запуская исполняемые файлы, описанным в статье образом можно настраивать и конфигурировать почти все возможности Linux, используя широкий функционал PowerShell.

Что почитать еще?

get-help about_FileSystem_Provider

get-help Set-Content

Microsoft Wiki running executables

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *