Powershell ubuntu что это
Перейти к содержимому

Powershell ubuntu что это

  • автор:

Что такое PowerShell?

PowerShell — это кроссплатформенное решение для автоматизации задач, которое включает оболочку командной строки, скриптовый язык и платформу управления конфигурацией. PowerShell поддерживается в Windows, Linux и macOS.

Оболочка командной строки

PowerShell — это современная командная оболочка, в которой реализованы лучшие возможности других популярных оболочек. В отличие от большинства оболочек, которые только принимают и возвращают текст, PowerShell принимает и возвращает объекты .NET. Это решение предлагает следующие возможности:

  • надежный журнал командной строки;
  • заполнение нажатием клавиши TAB и подстановка команд (см. раздел about_PSReadLine);
  • поддержка псевдонимов команд и параметров;
  • создание конвейера для объединения команд;
  • система справки в консоли, похожая на страницы man в Unix.

Язык сценария

В качестве скриптового языка PowerShell обычно используется для автоматизации процессов управления системами. Он также используется для создания, тестирования и развертывания решений, часто в средах CI/CD. В основе PowerShell лежит среда CLR .NET. Все входные и выходные данные являются объектами .NET. Вам не нужно анализировать текстовые выходные данные для извлечения информации из них. Скриптовый язык PowerShell предлагает следующие возможности:

  • расширяемость с использованием функций, классов, скриптов и модулей;
  • расширяемая система форматирования для удобного вывода;
  • расширяемая система типов для создания динамических типов;
  • встроенная поддержка распространенных форматов данных, таких как CSV, JSON и XML.

Платформа автоматизации

Расширяемый характер PowerShell позволил создать экосистему модулей PowerShell для развертывания и администрирования практически любой технологии, с которой вы работаете. Пример:

Управление конфигурацией

PowerShell Desired State Configuration (DSC) — это платформа управления в PowerShell, которая позволяет управлять корпоративной инфраструктурой, используя конфигурацию как код. С помощью DSC можно выполнять следующие задачи:

  • создавать декларативные конфигурации и пользовательские скрипты для повторяемых развертываний;
  • применять параметры конфигурации и настраивать информирование о смещении конфигурации;
  • развертывать конфигурации с помощью моделей принудительной отправки или опроса.

Дальнейшие действия

Начало работы

Не знакомы с PowerShell и не знаете, с чего начать? Просмотрите следующие ресурсы:

  • Installing Windows PowerShell (Установка Windows PowerShell)
  • Краткие руководства по PowerShell
  • Основы PowerShell
  • Видео Microsoft Virtual Academy
  • Модули Learn по PowerShell

Использование PowerShell

Узнайте, как PowerShell используется в разных сценариях и на разных платформах.

  • Удаленное взаимодействие с PowerShell через SSH
  • Начало работы с Azure PowerShell
  • Создание конвейера CI/CD с помощью DSC
  • Управление Microsoft Exchange

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

PowerShell против Bash: в чем разница?

img

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

PowerShell vs Bash

Немного истории: PowerShell

PowerShell — это среда автоматизации и задач Microsoft, удобная для управления конфигурацией. PowerShell использует компоненты, называемые командлетами, которые встроены в PowerShell. Дополнительные функции доступны через модули. Они устанавливаются из галереи PowerShell непосредственно из командной строки.

PowerShell отличается от Bash, потому что он предназначен для взаимодействия со структурами .NET изначально в Windows. Это означает, что он может передавать объекты и данные между сценариями, приложениями и сеансами. Каждый объект имеет свой собственный набор свойств, что делает обработку данных в PowerShell еще более детальной. Данные могут быть указаны как числа (целые числа), слова (строки), логические (истина и ложь) и многие другие типы. Это означает, что вы можете по-настоящему определиться с тем, как ваши скрипты обрабатывают ввод и вывод данных.

Немного истории: Bash

Системы Linux и Unix всегда выигрывали от структурирования многопользовательской терминальной среды. Это означает, что вы можете запускать дополнительные сессии в той же системе и запускать сценарии и приложения, не влияя на основные сессии, в которые вошли другие пользователи. Это сильно отличалось от ранних систем Windows и DOS, которые были однопользовательскими средами с одной сессией, до появления Windows NT в середине 90-х годов.

Первоначальная оболочка, поставляемая с Unix, была известна как оболочка Bourne, названная в честь ее создателя Стивена Борна. Bash (Bourne again Shell) является преемником оболочки Bourne с открытым исходным кодом. Bash получил широкое распространение, когда Linux был создан в начале 90-х годов, поэтому он используется до сих пор.

Существует множество функций, которые делают Bash очень популярным, главными из которых являются стабильность системы и то, что это открытый исходный код. Из-за этого он встречается практически в каждом дистрибутиве Linux. Все эти факторы делают его одной из наиболее часто используемых сред сценариев для ИТ-специалистов.

Когда использовать PowerShell

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

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

PowerShell включен в платформу .NET, поэтому вы можете создавать великолепно выглядящие меню и формы winform. Вы можете использовать PowerShell, чтобы делать что угодно — от запросов к базам данных SQL до захвата ваших любимых RSS-каналов прямо в сеанс PowerShell для дальнейших манипуляций. Это настоящий швейцарский нож для системного администрирования в среде Windows.

Когда использовать Bash

Если вы используете системы Linux, значит, вы знаете о необходимости автоматизации задач. Ранние ленточные накопители использовались для резервного копирования с архивированием tar. Эти операции могут быть написаны в Bash, а затем запущены через расписание cron. Сегодня мы воспринимаем подобные вещи как должное, но многие задачи приходилось выполнять вручную до создания таких сред, как Bash. Все, что связано с манипуляциями с файлами, такими как архивирование, копирование, перемещение, переименование и удаление файлов, подходит Bash.

Также возможны более сложные манипуляции с файлами. Вы можете найти файлы, созданные в определенные даты, и для каких файлов были изменены права доступа CHMOD и владельца. Bash также отлично подходит для создания интерактивных меню для запуска скриптов и выполнения системных функций. Они выполняются в неграфической среде, но работают очень хорошо. Это отлично подходит для обмена вашими библиотеками скриптов с другими.

Отличия

PowerShell и Bash в чем-то похожи, но также очень разные. Вот четыре основных отличия.

PowerShell по-разному обрабатывает данные

PowerShell отличается от Bash способом обработки данных. PowerShell — это язык сценариев, но он может передавать данные в разных форматах таким образом, чтобы он выглядел как язык программирования. PowerShell также имеет дело с областями действия в своих скриптах.

Использование переменных с $session , $script и $cache дает вашим сценариям дополнительную гибкость, позволяя передавать переменные другим командам в том же сценарии или сеансе PowerShell.

Bash — это CLI

Bash — это CLI (Command Language Interpreter), что означает интерпретатор командного языка. Как и PowerShell, Bash может передавать данные между командами по каналам. Однако эти данные отправляются в виде строк. Это ограничивает некоторые вещи, которые вы можете делать с выводом ваших скриптов, например математические функции.

PowerShell — это и CLI, и язык

Интегрированная среда сценариев PowerShell по умолчанию (ISE — Integrated Scripting Environment), поставляемая с Windows, показывает, как можно быстро и легко создавать сценарии, не жертвуя прямым доступом к командной строке. По умолчанию верхний раздел позволяет набирать строки кода сценария и быстро его тестировать.

Окно ниже представляет собой командную строку PowerShell, которая дает вам быстрый доступ для выполнения отдельных команд. Это дает вам лучшее из обоих миров между языком сценариев и оболочкой командной строки. ISE — отличный инструмент для быстрого создания прототипов решений.

ISE

PowerShell и Bash — мощные инструменты

Среда, в которой вы работаете, определит, какой инструмент вы выберете. Системные администраторы Linux, пишущие сценарии в Bash, считают, что освоить сценарии PowerShell относительно легко. Навыки написания сценариев PowerShell также в определенной степени переносятся на сценарии Bash.

Основными различиями между этими двумя языками сценариев являются синтаксис и обработка данных. Если вы понимаете такие концепции, как переменные и функции, тогда изучение любого из этих языков становится проще.

Установка PowerShell в Ubuntu

Все пакеты доступны на нашей странице выпусков GitHub. Перед установкой ознакомьтесь с приведенным ниже списком поддерживаемых версий. После установки пакета запустите pwsh из терминала. Выполните pwsh-lts , если вы установили предварительный выпуск.

PowerShell 7.4 — это обновление на месте, которое удаляет предыдущие версии PowerShell 7. Предварительные версии PowerShell можно установить параллельно с другими версиями PowerShell. Если необходимо запустить PowerShell 7.4 параллельно с предыдущей версией, переустановите предыдущую версию с помощью двоичного метода архива .

Ubuntu использует APT (Advanced Package Tool) в качестве диспетчера пакетов.

Установка с помощью репозитория пакетов репозитория пакетов

Корпорация Майкрософт создает и поддерживает различные программные продукты для систем Linux и делает их доступными с помощью клиентов упаковки Linux (apt, dnf, yum и т. д.). Эти пакеты программного обеспечения Linux размещаются в репозитории пакетов Linux для продуктов Майкрософт, https://packages.microsoft.comтакже известных как PMC.

Установка PowerShell из PMC является предпочтительным способом установки.

Этот скрипт работает только для поддерживаемых версий Ubuntu.

################################### # Prerequisites # Update the list of packages sudo apt-get update # Install pre-requisite packages. sudo apt-get install -y wget apt-transport-https software-properties-common # Get the version of Ubuntu source /etc/os-release # Download the Microsoft repository keys wget -q https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb # Register the Microsoft repository keys sudo dpkg -i packages-microsoft-prod.deb # Delete the Microsoft repository keys file rm packages-microsoft-prod.deb # Update the list of packages after we added packages.microsoft.com sudo apt-get update ################################### # Install PowerShell sudo apt-get install -y powershell # Start PowerShell pwsh 

Ubuntu поставляется с предварительно настроенным репозиторием пакетов, включающим пакеты .NET, но не PowerShell. Эти инструкции по установке PowerShell регистрируют репозиторий Майкрософт в качестве источника пакета. Вы можете установить PowerShell и некоторые версии .NET из этого репозитория. Однако репозиторий пакетов Ubuntu имеет разные версии пакетов .NET. Это может привести к проблемам при установке .NET для других целей. Дополнительные сведения об этих проблемах см. в статье «Устранение неполадок с пакетом .NET» в Linux.

Необходимо выбрать веб-канал, который вы хотите использовать для установки .NET. Вы можете задать приоритет репозиториев пакетов, чтобы использовать один из них. Инструкции по настройке приоритетов см. в разделе «Мой дистрибутив Linux» предоставляет пакеты .NET, и я хочу использовать их.

Установка с помощью прямого скачивания

Для упрощения установки PowerShell 7.2 можно использовать Universal Package, Скачайте универсальный пакет с страницы выпусков на компьютер Ubuntu.

Ссылка на текущую версию:

  • Универсальный пакет PowerShell 7.4 (LTS) для поддерживаемых версий Ubuntu
    • https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/powershell_7.4.1-1.deb_amd64.deb
    • https://github.com/PowerShell/PowerShell/releases/download/v7.3.11/powershell_7.3.11-1.deb_amd64.deb
    • https://github.com/PowerShell/PowerShell/releases/download/v7.2.18/powershell_7.2.18-1.deb_amd64.deb

    Следующий скрипт оболочки загружает и устанавливает текущий предварительный выпуск PowerShell. Вы можете изменить URL-адрес, чтобы скачать версию PowerShell, которую вы хотите установить.

    ################################### # Prerequisites # Update the list of packages sudo apt-get update # Install pre-requisite packages. sudo apt-get install -y wget # Download the PowerShell package file wget https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/powershell_7.4.1-1.deb_amd64.deb ################################### # Install the PowerShell package sudo dpkg -i powershell_7.4.1-1.deb_amd64.deb # Resolve missing dependencies and finish the install (if necessary) sudo apt-get install -f # Delete the downloaded package file rm powershell_7.4.1-1.deb_amd64.deb # Start PowerShell Preview pwsh-lts 

    Удаление PowerShell

    sudo apt-get remove powershell 

    Поддержка процессоров ARM

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

    Пути PowerShell

    • $PSHOME имеет значение /opt/microsoft/powershell/7/ .
    • Скрипты профилей хранятся в следующих расположениях:
      • AllUsersAllHosts — $PSHOME/profile.ps1
      • AllUsersCurrentHost — $PSHOME/Microsoft.PowerShell_profile.ps1
      • CurrentUserAllHosts — ~/.config/powershell/profile.ps1
      • CurrentUserCurrentHost — ~/.config/powershell/Microsoft.PowerShell_profile.ps1
      • Пользовательские модули — ~/.local/share/powershell/Modules
      • Общие модули — /usr/local/share/powershell/Modules
      • Модули по умолчанию — $PSHOME/Modules

      Поддерживаемые версии

      В следующей таблице приведен список поддерживаемых выпусков PowerShell и поддерживаемых версий Ubuntu. Эти версии поддерживаются до окончания поддержки версии PowerShell или Ubuntu.

      • Значок указывает, что версия ОС или PowerShell по-прежнему поддерживается.
      • Значок указывает, что версия PowerShell больше не поддерживается в этой версии ОС.
      • Значок указывает, что мы не закончили тестирование PowerShell в этой ОС
      • Значок указывает, что версия ОС или PowerShell не поддерживается
      • Если версия ОС и версия PowerShell имеют значок, эта комбинация поддерживается.
      Ubuntu 7.2 (LTS-previous) 7.3 7.4 (LTS-current)
      22.04 LTS (Jammy)
      20.04 LTS (Focal)
      18.04 LTS (Bionic)

      Официально поддерживаются только LTS-выпуски Ubuntu. Корпорация Майкрософт не поддерживает промежуточные выпуски или их эквивалент. Промежуточные выпуски поддерживаются сообществом. Дополнительные сведения см. в статье о поддержке дистрибутивов сообществом.

      PowerShell поддерживается в Ubuntu для перечисленных ниже архитектур процессора.

      Ubuntu 7.2 (текущая LTS) 7.3 7.4 (LTS-current)
      Все поддерживаемые версии x64, ARM32 x64, ARM32 x64, ARM32

      Поддержка установки

      Корпорация Майкрософт поддерживает методы установки, изложенные в этом документе. В сторонних источниках могут быть доступны другие методы установки. Хотя эти средства и методы могут работать, корпорация Майкрософт не может поддерживать эти методы.

      Совместная работа с нами на GitHub

      Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

      Как и почему PowerShell-команды в Linux отличаются от команд в Windows?

      PowerShell – популярный инструмент, используемый IT-специалистами для выполнения широкого круга задач. И хотя Microsoft стремится к тому, чтобы PowerShell выглядел и чувствовался одинаково на всех системах, у PowerShell для Linux и Windows есть несколько важных различий, некоторые из которых могут быть очевидны для опытных разработчиков, но другие могут оказаться неожиданными. Давайте вместе изучим их различия!

      PowerShell и Windows PowerShell

      Так как в этой статье мы говорим о PowerShell, а не о Windows PowerShell, нам важно понимать различия между ними. ● PowerShell – это программа с открытым исходным кодом, созданная на базе .NET Core и совместимая с операционными системами Windows, macOS и Linux. ● Windows PowerShell – эксклюзивная программа для Windows. Она установлена в системе по умолчанию и создана на базе платформы .NET Framework. В нашей статье мы будем говорить о последней версии PowerShell для Windows и Linux – 7.2.4.

      Немного про .NET Core

      .NET Core позволяет PowerShell работать на разных ОС. Платформа, представленная Microsoft в 2014 году, сделала .NET совместимой с Linux и macOS. Это позволило создать кроссплатформенное ПО, построенного на базе .NET Framework. И хотя большая часть функций и возможностей .NET Framework доступны в .NET Core, не обошлось без изменений, которые подробно описаны в документации Microsoft по .NET.

      Так чем же PowerShell для Windows и Linux различаются?

      Чувствительность к регистру
      Из всех различий в PowerShell между платформами чувствительность к регистру – одно из самых значительных. PowerShell-скрипты на Linux чувствительны к регистру в имени файлы или модуля. И хотя системы файлов и модулей чувствительны к регистру, имена файлов в PowerShell можно записывать с помощью автозаполнения, не думая о чувствительности к регистру.
      Рисунок 1. Запуск скрипта для Test.txt возвращает True. Например, если в текущем рабочем каталоге есть файл с именем Test.txt, запуск скрипта для проверки на наличие test.txt и Test.txt вернет True только для Test.txt, как показано на рисунке 1. Однако, если набрать ./test, автозаполнение подставит в командную строку Test.txt, если нет другого файла или папки, название которых начинается с test. Файловая система Еще одно ключевое различие между Windows и Linux – это файловая система. Windows использует буквенные обозначения дисков и обратные косые черты в качестве разделителя каталогов, в то время как Linux использует древовидную структуру и косые черты.
      Рисунок 2. Система возвращает True при проверке на наличие файла .\Test.txt в Linux PowerShell позволяет передавать пути командам, используя косую черту, либо обратную косую черту, интерпретируя любую из них как правильный разделитель каталогов для текущей платформы. Это отлично подтверждает скрипт, показанный на рисунке 2. Видно, что возвращается True при проверке на наличие файла .\Test.txt в Linux, даже несмотря на использование обратной косой черты. Псевдонимы Псевдонимы – это удобная функция в PowerShell, экономящая время пользователя. Пытаясь сделать PowerShell более привычным для пользователей Linux, Microsoft ввел несколько псевдонимов, которые привязывают Unix-команды к их PowerShell-эквивалентам. Например, команда ls выводит список содержимого каталога в Linux и macOS. А запуск псевдонима ls в PowerShell в Windows вызывает команду PowerShell Get-ChildItem.
      Рисунок 3. Результат выполнения команды ls в Ubuntu. На рисунке 3 показаны результаты выполнения команды ls в PowerShell для Ubuntu. В отличие от этого, на рисунке 4 показаны результаты выполнения команды ls в PowerShell на Windows.
      Рисунок 4. Результат выполнения команды ls в PowerShell для Windows. Стоит отметить, что в PowerShell для Linux удалены следующие псевдонимы:

      • cp
      • mv
      • rm
      • cat
      • man
      • mount
      • ps

      Однако эти псевдонимы все еще существуют в PowerShell для Windows и в Windows PowerShell.

      Sudo и PowerShell

      Поскольку PowerShell выполняет команды в памяти, sudo невозможно вызвать в PowerShell. Однако, пользователи все же могут вызывать PowerShell непосредственно с помощью sudo и указать, какие команды должны быть запущены.

      Подведем итоги

      Несмотря на различия между PowerShell в Windows и Linux, основа у них одна и та же. Зная, чем они отличаются друг от друга, IT-администраторы могут с легкостью писать кроссплатформенные PowerShell-скрипты, быстро устранять неполадки и решать связанные с ними проблемы.

      Где кванты и ИИ становятся искусством?

      На перекрестке науки и фантазии — наш канал

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

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