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

Powershell ubuntu что это

  • автор:

Powershell в Linux.

Попросили установить Powershell. Я слабо представляю зачем он в Linux сейчас нужен, однако кто-то всё же использует его не только в Windows. Нужно отдать должное разработчикам, которые занимаются релизами для альтернативных систем, они сделали всё что бы установка была простой и удобной. Тут тебе и однострочник, и репозитории, и пакеты — подход искренне порадовал.

Итак, Powershell, установка одной командой подходит для большинства случаев и дистрибутивов:

bash <(curl -fsSL https://raw.githubusercontent.com/PowerShell/PowerShell/v6.0.0-alpha.18/tools/download.sh)

При выполнении этой команды будет загружен и запущен специально подготовленный скрипт, который определит используемую ОС, скачает нужный пакет и установит его в систему. Для тех кто предпочитает работать с репозиториями, так же есть возможность добавить нужный репозиторий в систему и выполнить установку оттуда:

CentOS 7:

wget -O /etc/yum.repos.d/microsoft.repo https://packages.microsoft.com/config/rhel/7/prod.repo yum install powershell

Ubuntu 16.04:

sudo wget -O /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/ubuntu/16.04/prod.list sudo apt-get update sudo apt-get install -y powershell

Тем кто не привык подключать лишние репозитории, доступны готовые пакеты. Скачать их можно напрямую со страницы релиза. Интересно что для Debian отдельного пакета не собирается, но практика показала что в Debian 8 можно установить пакет для Ubuntu 14.04 powershell_6.0.0-alpha.18-1ubuntu1.14.04.1_amd64.deb

Надо сказать что в моём случае, при установке с помощью одной команды, в CentOS ставился пакет версии v6.0.0-alpha.17, в то время как для установке из репозитория был доступен пакет версии v6.0.0-alpha.18. Т. е. самая новая версия устанавливалась именно из репозитория, а не однострочником.

# powershell PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS /root> $PSVersionTable Name Value ---- ----- PSVersion 6.0.0-alpha PSEdition Core PSCompatibleVersions BuildVersion 3.0.0.0 GitCommitId v6.0.0-alpha.18 CLRVersion WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 PS /root> $PSHOME /opt/microsoft/powershell/6.0.0-alpha.18 PS /root> exit #

Дополнительные подробности на соответствующей странице проекта.

Глава 2. Познакомьтесь с PowerShell

Эта глава целиком посвящена тому чтобы помочь вам решить какой интерфейс PowerShell вы будете применять (да, у вас есть выбор). Если вы уже применяли PowerShell ранее, этот материал может показаться вам избыточным, так что е стесняйтесь перелистывать эту главу - вы всё ещё можете найти некие лакомые кусочки, которые помогут вам в дальнейшем.

Кроме того, данная глава относится исключительно к Windows, macOS и Ubuntu 18.04. Прочие дистрибутивы Linux обладают аналогичной настройкой, но они не будут рассматриваться в данной главе. Прочие инструкции по установке вы можете получить непосредственно на странице GitHub PowerShell.

Нам следует определить несколько терминов, с которыми мы достаточно часто будем сталкиваться в этой главе..

PowerShell - Относится к установленной вами версии 7.x.

Оболочка - Оболочка в целом это приложение, которое способно принимать основанные на тексте команды и обычно применяется для взаимодействия с вашим компьютером или прочими машинами через сценарии или интерактивную практику, такую как терминал. Примерами оболочек выступают Bash, fish или PowerShell.

Терминал - Терминал это некое приложение, которое способно исполнять внутри себя приложение оболочки с тем, чтобы пользователь был способен взаимодействовать с этой оболочкой визуально. Терминалы равнодушны к оболочке, поэтому вы можете исполнять любую оболочку в любом терминале, в котором пожелаете.

Windows PowerShell - Относится к PowerShell 5.1, который поступает предустановленным в вашем устройстве Windows 10.

PowerShell в Windows

PowerShell поступает предустановленным в ПК Windows начиная с Windows 7 (и Server 2008). Важно отметить что название процесса PowerShell было изменено в Windows. Это больше не powershell.exe , а pwsh.exe . PowerShell установка бок- о- бок, подразумевающая что Windows PowerShell (5.1) всё ещё устанавливается по умолчанию (именно поэтому пришлось заменить имя его процесса).

Давайте вначале установим PowerShell. Имеется много вариантов его установки (например, из Microsoft Store, winget, Chocolatey), поэтому вы можете выбирать любой нравящийся вам метод, однако для данной книги мы намерены пойти непосредственным подходом, который состоит в выгрузке необходимого MSI из репозитория GitHub PowerShell. Убедитесь что вы выгрузили стабильный выпуск, согласно последней общедоступной (GA, general availability) версии от бригады PowerShell (Рисунок 2.1).

Рисунок 2-1

Здесь отображены различные доступные для PowerShell установки с MSI указывающими на установку Windows

Пройдёмся по мастеру установки MSI, примем значения по умолчанию, и это всё. Существую различные способы запуска PowerShell (Рисунок 2.2). После его установки вы можете найти его в своей панели задач. Это также подходящее время для того чтобы указать на то что его иконка слегка изменилась.

Рисунок 2-2

Меню Пуск в Windows 10, показывающее установку бок- о- бок PowerShell и Windows PowerShell 5.1

Если вы кликните по иконке PowerShell 7 (мы предлагаем вам также поместить её в панели задач), это запустит консоль PowerShell. Если вы знакомы с Windows PowerShell, вы обнаружите заметное отличие в том как она выглядит. Это обусловлено цветом фона, который теперь чёрный вместо синего. Для целей данной книги мы изменим цвета консоли с тем, чтобы их было проще читать.

Такое приложение консоли PowerShell это единственный вариант того, как вы запускаете PowerShell в сервере, который не обладает установленной оболочкой графического интерфейса пользователя (GUI):

  • Приложение консоли крошечное. Оно загружается быстро и не занимает много памяти.
  • Для него не требуется больше наполнения .NET Framework, чем необходимо самому PowerShell.
  • Вы можете установить цвета для зелёного текста на чёрном фоне и представлять что вы работаете на мэйнфрейме эпохи 1970-х.

Если вы решили воспользоваться приложением консоли, у нас имеется ряд приглашений для его настройки. Вы можете выполнить все эти настройки кликнув по верхнему левому управляющему блоку окна и выбрав Properties (Свойства). Получаемый в результате блок диалога показан на Рисунке 2.3. Он выглядит слегка иначе в Windows 10, поскольку получил некие новые варианты, но по сути это то же самое.

Рисунок 2-3

Настройка свойств приложения консоли

В закладке Options (Настройки) вы можете увеличить значение Размера буфера Запоминания команд. Данный буфер позволяет вашей консоли запоминать какие команды вы набирали и позволяет вам вспоминать их применяя стрелки вверх и вниз с вашей клавиатуры.

В закладке Font (Шрифт), укажите нечто слегка больше установленного по умолчанию шрифта в 12- пунктов. Пожалуйста. Нам всё равно что у вас зрение 20/10; слегка увеличьте размер шрифта. Для PowerShell требуется чтобы вы могли быстро различать множество похожих символов, например ' (апостроф или одинарная кавычка) и ` (обратная кавычка или гравис) - а крошечный шрифт этому не способствует.

В закладке Layout (Расположение) установите обе ширины в одно и то же численной значение и убедитесь что получаемое в результате окно помещается на вашем экране. Если вы не сделаете этого, в результате вы можете получить в низу этого окна полосу прокрутки, что может приводить к тому, что часть вывода PowerShell окажется подвёрнутой в правой части окна, где вы его никогда не видите. Я наблюдал студентов, которые тратили полчаса на исполнение команд, полагая что они вообще не производят никакого вывода, хотя на самом деле получаемый вывод был прокручен вправо. Это раздражает.

Наконец, в закладке Colors (Цвета)не сходите с ума. Сохраняйте всё высококонтрастным и легко читаемым. И если вы и вправду пожелаете, вы можете установить цвета в соответствии с вашим терминалом Windows PowerShell.

Один момент, который стоит иметь в виду: данное приложение консоли это не PowerShell; это просто средство, при помощи которого вы взаимодействуете с PowerShell.

Мы не будем пользоваться Windows PowerShell или его ISE ни в какой части нашего совместного пути. Этот ISE не поддерживает PowerShell 7. Вместо этого мы будем пользоваться Visual Studio Code, который рассматривается чуть позднее в этой главе.

PowerShell в macOS

Если вы пользуетесь Маком, этот раздел для вас. Мы обсудим как установить и запустить PowerShell конкретно в macOS. Данная книга предполагает что вы знаете как открывать Terminal - приложение macOS для терминала по умолчанию. Вы можете пользоваться и другим терминалом в macOS, если он установлен у вас, однако в данной книге мы останемся с этим установленным по умолчанию. Ладно, давайте установим PowerShell!

Установка в macOS

В наши дни PowerShell не поступает включённым в macOS. Возможно настанет день, когда это будет так, но до тех пор нам придётся устанавливать его самостоятельно. К счастью, это просто сделать и имеется множество способов для этого. Мы рассмотрим самый простой способ установки PowerShell для macOS, который пролегает через Homebrew - предпочтительный диспетчер пакетов для macOS. Homebrew предоставляет возможность установки PowerShell через терминал без единого клика мышью.

Homebrew не поставляется с macOS, поэтому если его у вас ещё нет, вам требуется пройти на вебсайт Homebrew за инструкциями по его установке. Проследуйте им и выполните. Мы подождём вас, пока вы не вернётесь.

После того как Homebrew установлен и готов к запуску, вы можете установить PowerShell. Всё что вам потребуется это некий экземпляр Terminal , поэтому пройдите в него и откройте его в своём Маке. Применяя Homebrew вы установите PowerShell одной командой:

 brew cask install powershell 

Наберите эту команду в Terminal и нажмите Enter . Вы увидите как Homebrew устанавливает PowerShell (Рисунок 2.4).

Рисунок 2-4

Устанавливающий PowerShell Homebrew

Готово! Давайте запустим его. Что его запускает? Отличный вопрос. Для запуска PowerShell всё что вам требуется, это исполнить команду pwsh , которая запустит PowerShell в вашем терминале. Вы должны обнаружит следующий вывод:

 ~ pwsh PowerShell 7.1.3 Copyright (c) Microsoft Corporation. All rights reserved. https://aka.ms/pscore6-docs Type 'help' to get help. PS /Users/steve> 

Теперь у нас имеется PowerShell, запущенный в прикладном приложении Terminal в macOS! Отличная работа. Это один из основных способов взаимодействия с PowerShell в macOS. Чуть позже мы рассмотрим иной основной способ, но для начала нам необходимо обратиться к тем из вас, кто в качестве операционной системы применяет Linux.

PowerShell в Linux (Ubuntu 18.04)

Это та часть, в которой мы рассказываем вам, что PowerShell настолько великолепен, что способен работать в невероятно длинном перечне дистрибутивов Linux. Это также та часть, в которой мы говорим вам, что если бы мы прошлись установкой каждого из этих дистрибутивов, наш издатель был бы удивлён почему эта книга превратилась в состоящую из миллиона страниц. Мы рассмотрим как устанавливать PowerShell в Ubuntu 18.04, поскольку на момент написания данных строк это была последняя LTS версия. Если же вы применяете машину, на которой работает нечто иное, не бойтесь! Всю документацию о том как установить PowerShell во всевозможных поддерживаемых дистрибутивах Linux можно найти статье документации PowerShell по этой теме.

Ладно, теперь к установке. Нам также следует отметить . данная книга предполагает, что вы знаете как открыть приложение Terminal в Ubuntu 18.04. Для этих шагов вы можете применять любой терминал, но мы будем придерживаться установленного по умолчанию.

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

Ubuntu 18.04 снабжается собственным диспетчером пакетов Canonical, носящим название snap . Он предоставляет нам установкой PowerShell в одну команду. Прежде всего, пройдём вперёд, открыв некий экземпляр Terminal и набрав такую команду:

 snap install powershell –-classic 

После того как вы сделаете это, нажмите Enter для её запуска. У вас может быть запрошен ваш пароль и, если это так, введите его. Это обусловлено тем, что для snap для установки PowerShell требуется запуск от имени snap . Получаемый вами вывод должен выглядеть как- то так:

 PowerShell 7.1.3 from Microsoft PowerShell✓ installed 

В свою команду мы добавили --classic , потому как PowerShell рассматривается как "классический пакет snap". Классические snap снимают ограничения на пакеты snap, позволяя PowerShell полностью взаимодействовать со своей операционной системой.

Готово! Давайте запустим его. Что нам требуется исполнять? Отличный вопрос. Для запуска PowerShell всё что нам требуется, это выполнить команду pwsh , которая и запустит PowerShell в вашем терминале. Вы должны обнаружить такой вывод:

 ~ pwsh PowerShell 7.1.3 Copyright (c) Microsoft Corporation. All rights reserved. https://aka.ms/pscore6-docs Type 'help' to get help. PS /Users/tyleonha> 

Теперь у нас имеется исполняемым в терминале Ubuntu 18.04 PowerShell! Прекрасная работа! Это один из основных способов взаимодействия с PowerShell в Ubuntu 18.04. Теперь, когда мы получили его исполняемым в своём терминале, давайте получим в рабочем состоянии другой интерфейс PowerShell.

Visual Studio Code и расширение PowerShell

Постойте! Не убегайте, пока. Мы знаем, что это звучит так, как будто мы просим вас получить то приложение, которым пользуются все ваши друзья- разработчики C#, но это не так! Дайте пояснить.

Microsoft предлагает два продукта с очень похожими названиями, но совершенно различными (верна поговорка: "В технологиях существуют две серьёзные проблемы: не действительный кэш, названия вещей и ошибки завышения/ занижения на единицу"). Первый продукт, о котором вы скорее всего слышали: Visual Studio. Это полнофункциональная интегрированная среда разработки (IDE, integrated development environment). Обычно он применяется разработчиками C# и F#. С другой стороны, Visual Studio Code - это совершенно иное приложение. Это обладающий малым весом текстовый редактор, который обладает неким сходством с прочими текстовыми редакторами, такими как Sublime Text или Notepad++, за исключением того, что он обладает некоторыми дополнительными функциональными возможностями для расширения практики.

Одной из таких дополнительных функциональных возможностей является расширяемость. Народ может создавать для Visual Studio Code расширения и помещать их в marketplace (рынок) Visual Studio Code для потребления прочими парнями. Сама команда PowerShell предлагает некое расширение для PowerShell на этом рынке, а с ним приходит и масса отличных функциональных возможностей, которые помогут вам в путешествии по изучению PowerShell. Visual Studio Code с расширением PowerShell это рекомендуемая практика редактирования PowerShell и, как и сам PowerShell, они являются открытым кодом и работают во множестве платформ. Вы можете найти их исходные коды по следующим адресам:

  • Visual Studio Code
  • расширение PowerShell

Это также отличная возможность для нас сообщить, что если у вас имеются некие проблемы с данными продуктами, откройте проблему на соответствующих страницах GitHub. Это наилучший способ оставить отзыв и сообщать о проблемах. Хорошо, давайте перейдём к шагам установки.

Ценность Visual Studio Code и его расширения PowerShell возрастёт в последующих главах, когда вы научитесь писать сценарии. Вы будете там. Мы обещаем.

Если вы уже знаете кое- что об PowerShell и знакомы с PowerShell ISE, вы можете удивиться почему мы его не упоминаем. PowerShell ISE не работает с PowerShell и пребывает лишь в режиме сопровождения, что означает, что он будет получать обновления, относящиеся только к его безопасности. Наша команда сосредоточила своё внимание на Visual Studio Code с расширением PowerShell.

Установка Visual Studio Code и расширения PowerShell

Раз вы добрались сюда, у вас в вашей операционной системе уже установлен PowerShell. Для установки Visual Studio Code вы можете пользоваться одними и теми же шагами. Для Windows, macOS или Linux проследуйте в https://code.visualstudio.com/Download, выгрузите и запустите программу установки (Рисунок 2.5).

  • Для добавления расширения PowerShell запустите VS Code и проследуйте в marketplace.
  • Найдите PowerShell и кликните Install.

Для тех, кото предпочитает командную строку, вы можете устанавливать VS Code и Расширение PowerShell через свой терминал:

  • macOS: Откройте Terminal и выполните brew cask install vscode .
  • Ubuntu 18.04: Terminal и запустите snap install code --classic .

Рисунок 2-5

Здесь показаны соответствующие логотип и кнопка установки для расширения PowerShell 7 в VS Code

Вы разобрались с этим! Если вы сделали это правильно, запуск команды code в вашем терминале должен открыть экземпляр Visual Studio Code. Если это не работает, закройте все свои терминальные окна, откройте новое и снова попробуйте запустить команду code . Когда это установлено, вам потребуется установить расширение PowerShell. Так как нам нравится набирать текст в мире PowerShell, давайте установим это расширение одной командой. Вы можете устанавливать расширения применяя команду code следующим образом:

 code --install-extension ms-vscode.powershell 

Что сопровождается следующим выводом:

 ~ code --install-extension ms-vscode.powershell Installing extensions. Installing extension 'ms-vscode.powershell' v2019.9.0.. Extension 'ms-vscode.powershell' v2019.9.0 was successfully installed. 

Давайте просмотрим список проверок:

 PowerShell installed ✔ Visual Studio Code installed ✔ PowerShell extension installed ✔ 

Мы готовы рассмотреть что всё это предлагает нам. Если вы этого ещё не сделали, проследуйте вперёд и откройте Visual Studio Code, запустив в своём терминале команду code .

Знакомство с Visual Studio Code

С данного момента практика будет одинаковой, вне зависимости от того какую ОС вы применяете. Здесь у нас имеется Visual Studio Code. Поначалу это может казаться пугающим, но слегка потренировавшись, вы сможете пользоваться его возможностями для написания потрясающих сценариев PowerShell. Открыв Visual Studio Code нам следует подготовить его к работе с PowerShell. Начните с нажатия на небольшую иконку трафарета PowerShell слева, рядом с прочими безумно выглядящими иконками. Он выделен на Рисунке 2.6.

Рисунок 2-6

Окно запуска Visual Studio Code

После клика по иконке PowerShell, всплывает пара моментов. Давайте посмотрим что мы наблюдаем (Рисунок 2.7):

  • Проводник команд (A) - Список команд, которые доступны вам для исполнения. Когда вы наводите на одну из них, это предоставляет вам различные действия. Вы можете скрыть их кликнув по иконке PowerShell снова.
  • Панель редактора сценария (B) - Мы бы не хотели пользоваться ею до самого конца своей книги, но это именно то место, в котором ваши сценарии будут появляться в различных закладках.
  • Интегрированная консоль (C) - Именно тут происходит вся магия. Это PowerShell. Вы можете здесь выполнять команды в точности также, как вы это делали в своём приложении терминала.

Вверху справа в вашей Интегрированной консоли вы наблюдаете несколько различных действий. Давайте начнём с правой стороны. Первой мы наблюдаем иконку "x". Она скрывает саму Интегрированную консоль и всю панель терминала. Если вы пожелаете вернуться обратно, нажмите Ctrl+` . После этого вы получите иконку знака вставки ( ^ ). Она скрывает панель сценария и раскрывает панель терминала. Далее у нас имеется иконка мусорного ведра. Она уничтожает терминалы . Повторяйте за нами: "Я ОБЕЩАЮ НИКОГДА- НИКОГДА НЕ УНИЧТОЖАТЬ СВОЮ ИНТЕГРИРОВАННУЮ КОНСОЛЬ POWERSHELL". Такая Интегрированная консоль это сердце самого расширения PowerShell и всех его функциональных возможностей, а если вы её уничтожите, тогда это расширение перестанет работать - итак, пожалуйста, не отправляйте в мусорную корзину свою Интегрированную консоль.

Рисунок 2-7

Visual Studio Code с врезкой PowerShell

Затем мы должны разделять кнопку терминала и кнопку знака плюс. Эти кнопки порождают дополнительные терминалы, которые можно наблюдать ниспадающими вслед за ними. Важно отметить, что Visual Studio Code по умолчанию цепляет для этих терминалов Bash, так как Bash является устанавливаемым по умолчанию. Вы запросто можете настраивать это в своих установках, но мы вернёмся к этому позднее. Тем временем, если вы откроете терминал Bash в Visual Studio Code, вы сможете набрать pwsh точно также, ка вы это выполняли в приложении терминала и получите PowerShell.

Как мы уже упоминали ранее, Интегрированная консоль PowerShell это сердце расширения PowerShell. Как вы полагаете, откуда взялись команды в Проводнике команд? Да, верно - из Интегрированной консоли. В данном расширении в избытке функциональные возможности для изучения, которые зависят от Интегрированной консоли, но просто знайте, что она существует лишь одна. Любой прочий порождаемый терминал, даже когда он работает под управлением PowerShell не является "интегрированным". Помните: ни в коем случае не удаляйте Интегрированную консоль.

Практика Visual Studio Code с PowerShell в значительной степени ориентирована на написание сценариев и модулей PowerShell, в то время как PowerShell в терминальном приложении больше подходит для исполнения нескольких команд по- быстрому или для длительных задач. Они оба служат своим целям и мы ещё не раз увидим их на протяжении всей книги.

Персонализация Visual Studio Code и расширения PowerShell

Как мы уже говорили ранее, расширяемость имеет большое значение для Visual Studio Code. Таким образом, очень легко настроить Visual Studio Code и расширение PowerShell по своему вкусу. Мы рассмотрим несколько моментов, которые вы можете предпринять - часть полезные, другие просто для удовольствия!

Прежде всего, я начинаю со страницы Настроек Visual Studio Code. У нас будет возможность настраивать почти всё что пожелаем. Пройдите в File > Preferences > Settings чтобы открыть страницу Настроек (Рисунок 2.8). Здесь в блоке поиска вы можете отыскать всё что пожелаете или просто прокрутите всё подряд. Имеется много чего можно настраивать! Если вам любопытно какие настройки предоставляет расширение PowerShell, всё что вам требуется, это выполнить поиск для powershell и вы обнаружите их все.

Рисунок 2-8

Страница настроек Visual Studio Code. Мы выделили там, где смотреть настройки в версии JSON.

Вы можете заметить, что на этом снимке мы выделили кнопку. Если вы нажмёте на неё, вы получаете представление JavaScript Object Notation (JSON) настроек. Если вы ещё не знакомы с JSON, не беспокойтесь. Вы можете пользоваться обычным окном настроек чтобы выполнять практически всё, что способно делать представление JSON.

Таблица 2.1 показывает список распространённых настроек, которые вы можете вставлять непосредственно в блок поиска и настраивать по своему желанию.

Tab Completion

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

Terminal.Integrated.Shell.Windows

Terminal.Integrated.Shell.OSX

Terminal.Integrated.Shell.Linux

Как вы помните ранее в этой главе, когда мы нажимали на знак "+" в своей терминальной части Visual Studio Code, она открывала Bash. Это происходит потому, что терминалом по умолчанию в macOS и Linux выступает Bash. Вы можете изменять это для PowerShell заменяя эту установку на pwsh .

Files.Default Language

Когда вы открываете в Visual Studio Code новый файл, предполагается что это простой текст. Вы можете изменять такое поведение заменой настроек Языка по умолчанию. Изменив её на powershell обеспечит что новые файлы будут файлами PowerShell и снабдят вас функциональными возможностями расширения PowerShell.

Ещё один момент, который следует изменить относительно Visual Studio Code это цветовая тема. Установленная по умолчанию тёмная хороша, но у вас имеется избыточное число вариантов если вы пожелаете окунуться глубже в темы, которые в точности подходят вам. Их просто менять - всё что нам требуется сделать - открыть Палитру команд. Для этого нажмите CMD+SHIFT+P в macOS или CNTRL+SHIFT+P для Windows/ Linux (как альтернатива, вы можете нажать F1 в любой из платформ).

Рисунок 2-9

Палитра команд Visual Studio Code. Выбор действия, которое вы хотите предпринять.

Такая Палитра команд (Рисунок 2.9) это одна из наиболее полезных функциональных возможностей Visual Studio Code, поскольку она позволяет вам выполнять поиск действий, которые вы можете предпринимать. То действие, которое мы хотим выполнить это "changing the color theme" (изменение цветовой темы), поэтому давайте просто отыщем theme в своей Палитре команд.

Вы должны наблюдать вариант с названием Preferences: Color Theme - кликните по нему. Он выдаст вам список тем для выбора; вы можете обнаружить, что имеющиеся темы Visual Studio Code обновляются автоматически, а потому вы можете видеть что вы получили прежде чем определитесь.

Рисунок 2-10

Выбор темы в Visual Studio Code

Большая часть из этого списка это темы по умолчанию, которые поставляются вместе с Visual Studio Code; тем не менее, вместе с расширением PowerShell поставляются и темы PowerShell ISE. Вы можете выполнить поиск дополнительных крутых тем на расширенном рынке (персонально мы предпочитаем тему Horizon, но это наш личный выбор!) через элемент nstall Additional Color Themes из данного списка.

На протяжении всей остающейся части этой книги мы предполагаем что когда вам требуется писать или пробовать некий сценарий, вы применяете Visual Studio Code с расширением PowerShell, а не иные редакторы сценариев. Двигайтесь вперёд и настройте те установки и свои цветовые темы, которые вы пожелаете выбрать. Если вы решите вместо этого применять PowerShell из терминала, можете быть спокойны -почти всё из этой книги всё ещё будет работать. Мы дадим вам знать, когда нечто предназначено только для консоли или только для редактора.

Это снова и снова класс набора

PowerShell это интерфейс командной строки и это означает что вам придётся набирать много текста. Набор текста оставляет место для ошибок- опечаток. К счастью, оба приложения PowerShell предоставляют способы минимизации опечаток.

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

Наше приложение консоли поддерживает заполнение табуляцией в четырёх областях:

  • Наберите Get-P и нажмите Tab несколько раз. Вы заметите список возможных заполнений. По мере того как вы продолжите набирать, этот перечень будет уменьшаться и когда PowerShell сможет догадаться что это должна быть конкретная команда, он дополнит её за вас.
  • Наберите Dir , затем пробел, потом / и далее нажмите Tab . PowerShell отобразит вам файлы и папки, которые вы можете посеять из этого каталога.
  • Наберите Get-Proc и нажмите Tab . Затем наберите пробел и тире ( - ). Начните нажимать Tab . чтобы увидеть возможные заполнения со стороны PowerShell для этого параметра. Вы также можете набрать часть названия параметра (например, -E ) и нажмите Tab дважды чтобы увидеть соответствующие параметры. Для очистки командной строки нажмите - Esc .
  • Наберите New-I и нажмите Tab . Наберите пробел, затем -I и нажмите Tab снова. Снова наберите пробел и нажмите Tab дважды. PowerShell покажет допустимые значения для этого параметра. Это срабатывает только для параметров, которые обладают предопределённым набором допустимых значений (такой набор носит название перечисления enumeration). Снова нажмите Esc для очистки своей командной строки; пока вы ещё не хотите запускать такую команду.

Visual Studio Code с расширением PowerShell предлагает нечто похожее на панель редактора и даже ещё лучше чем завершение табуляцией: IntelliSense. Данная функциональная возможность срабатывает во всех тех же самых четырёх ситуациях, которые показаны для завершения табуляцией, за исключением того, что вы получаете крутое небольшое всплывающее меню, подобно показанному на Рисунке 2.11. Пользуйтесь клавишами стрелок для прокрутки вверх и вниз к желаемому вами элементу, а для его выбора нажмите Tab или Esc , а затем продолжайте свой набор.

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

Рисунок 2-11

IntelliSense работает в Visual Studio Code подобно заполнению табуляцией для расширения PowerShell. Он также показывает вам сведения относительно того элемента, который вы заполняете, когда это возможно.

Что представляет собой версия?

При помощи PowerShell имеется достаточно простой способ проверки вашей версии. Наберите $PSVersionTable и нажмите Enter :

 PS /Users/steve> $PSVersionTable Name Value ---- ----- PSVersion 7.1.3 PSEdition Core GitCommitId 7.1.3 OS Linux 4.18.0-20-generic #21~18.04.1-Ubuntu. Platform Unix WSManStackVersion 3.0 SerializationVersion 1.1.0.1 PSCompatibleVersions PSRemotingProtocolVersion 2.3 

Вы немедленно увидите значение номера версии для каждого относящегося к PowerShell фрагмента технологии, включая сам PowerShell. Если это не сработает или если для PSVersion не будет указывать 7.0 или более позднюю версию, вы не пользуетесь той версией, которая требуется для этой книги. Для инструкций по получению наиболее современной версии PowerShell отсылаем вас к более ранним разделам этой главы (2.2, 2.3 и 2.4 в зависимости от вашей ОС).

Не ждите больше и начинайте применять PowerShell. Начните с проверки своей версии, чтобы убедиться что она не ниже 7.1. Если это не так, следуйте далее, пока не установите хотя бы версию 7.1.

Лабораторные занятия

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

Мы целиком гарантируем, что всё что вам требуется знать для выполнения каждого лабораторного задания либо в рассмотренной главе, либо обсуждалось в предыдущей главе (и рассмотренная ранее информация, это скорее всего, на что мы дадим вам подсказку). Мы не утверждаем, что искомый ответ у всех на виду; чаще всего глава обучает вас как открывать нечто самостоятельно, причём вам нужно самостоятельно преодолеть такой процесс открытия для нахождения ответа. Это может казаться разочаровывающим, но если вы заставите себя сделать это, в долгосрочной перспективе вы обязательно добьётесь с PowerShell большого успеха. Мы обещаем.

Имейте в виду, что вы можете обнаружить примеры ответов в конце каждой главы. Наши ответы могут вовсе не совпадать с вашими, причём это будет становиться всё более и более верным по мере того, как мы будем переходить к более сложному материалу. Часто вы будете обнаруживать, что PowerShell предлагает полдюжины или более способов для выполнения практически чего угодно. Мы покажем вам что мы применяем чаще всего, но если придумаете нечто иное, вы не ошибётесь. Любой выполняющий ваше задание способ верный.

Что касается этого задания, вы можете выполнить его в любой машине под управлением Windows 10, macOS или Linux, если в них установлен PowerShell 7.1 или выше.

Мы потихоньку начнём: мы только хотим чтобы у вас были и настроенными консоль, и Visual Studio Code с расширением PowerShell, отвечающие вашим потребностям. Пройдите эти пять шагов:

  1. Если вы ещё ничего не установили, сделайте это.
  2. Настройте необходимые шрифт и размер текста в своём приложении терминала (возможно вам придётся с этим покопаться!) и в Visual Studio Code (подсказка- подсказка . это настройки!).
  3. В Visual Studio Code максимально расширьте панель Консоли; по своему усмотрению удалите или оставьте Проводник команд.
  4. В обоих приложениях наберите одиночные кавычку ( ' ) и обратный слэш ` и убедитесь что их легко отличать. На клавиатуре US (по крайней мере) обратный слэш на той же самой клавише, что и тильда ( ~ , русская Ё), под клавишей Esc .
  5. Также наберите скобки ( ) , квадратные скобки [ ] , угловые скобки < >и фигурные скобки < >, чтобы убедиться что выбранные вами для отображения шрифт и размер выглядят достойно, а потому все символы немедленно различимы. Если имеется некая визуальная путаница, поменяйте шрифты или выберите больший размер текста.

Мы уже рассказывали вам как осуществлять большинство этих шагов, поэтому у вас нет ответов для проверки этого лабораторного занятия, а лишь возможность проверить что вы выполнили все эти пять шагов.

PowerShell, установите эту оболочку командной строки на Ubuntu 22.04

о PowerShell

В следующей статье мы рассмотрим, как мы можем установить PowerShell в Ubuntu 22.04. Это платформа управления конфигурацией и автоматизации задач. Он состоит из оболочки Командная строка кроссплатформенный и связанный с ним язык сценариев.

Как мы сказали, это является одновременно оболочкой командной строки и языком сценариев с более чем 130 утилитами командной строки, называемыми командлеты. Они следуют чрезвычайно согласованным соглашениям об именах и синтаксисе и могут быть расширены с помощью пользовательских командлетов.

PowerShell(первоначально назывался Windows PowerShell) представляет собой консольный интерфейс (CLI), с возможностью записи и объединения команд посредством инструкций. Этот консольный интерфейс предназначен для использования системными администраторами с целью автоматизации задач или их более контролируемого выполнения. PowerShell — это объектно-ориентированная оболочка..

PowerShell работает

Ранее Microsoft Windows PowerShell была доступна только для Windows, но в 2016 году разработчики сделали его открытым и кроссплатформенным. Вот почему сегодня использовать его в Ubuntu очень просто. Несмотря на то, что после того, как мы попробовали различные варианты установки, доступные в Ubuntu 22.04, сработал только тот, который мы увидим ниже.

Посмотреть все разделы

Установите Microsoft PowerShell на Ubuntu 22.04 LTS

PowerShell теперь официально поддерживается большинством дистрибутивов Gnu/Linux. Все последние пакеты PowerShell для Gnu/Linux доступны по адресу GitHub.

Без сомнения, самый простой способ установить PowerShell в Ubuntu — использовать менеджер пакетов. Снэп, и что сегодня, как я уже говорил, это единственный способ, которым я смог установить PowerShell на Ubuntu 22.04. Этот универсальный менеджер пакетов включен в системе по умолчанию, поэтому нам останется только открыть терминал (Ctrl+Alt+T) и написать в нем:

установить powershell как оснастку

sudo snap install powershell --classic

После установки мы можем запустить программу ищу ваш лаунчер в нашей системе.

средство запуска приложений

деинсталляция

к удалить пакет оснастки которую мы только что установили, в терминале (Ctrl+Alt+T) вам просто нужно использовать команду:

удалить оснастку powershell

sudo snap remove powershell

С PowerShell пользователи могут использовать простые команды (чтобы показать текущее время) и гораздо более сложные приложения. Также возможно использование комбинации нескольких команд ("конвейерная"). Для получения дополнительной информации об этой программе пользователи могут перейти на сайт проекта.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Убунлог » Ubuntu » PowerShell, установите эту оболочку командной строки на Ubuntu 22.04

Будьте первым, чтобы комментировать

Используй силу, Тукс! Применяем PowerShell в Linux

«Сан­кции», «импорто­заме­щение» — эти сло­веч­ки в пос­леднее вре­мя все чаще встре­чают­ся в прес­се и сетевых пуб­ликаци­ях. Под дав­лени­ем обсто­ятель­ств некото­рые ком­пании перехо­дят на Linux и сво­бод­ное ПО. Ког­да работа­ешь в Linux или исполь­зуешь две опе­раци­онные сис­темы сра­зу, очень хочет­ся сох­ранить удоб­ное окру­жение и при­выч­ное средс­тво авто­мати­зации, роль которо­го в Windows игра­ет PowerShell. Мож­но ли пол­ноцен­но исполь­зовать его в Linux? Конеч­но, и сей­час мы раз­берем­ся, как.

GUI и CLI

С точ­ки зре­ния обыч­ного поль­зовате­ля, ОС — это гра­фичес­кая обо­лоч­ка для манипу­ляций с фай­ловой сис­темой компь­юте­ра и запус­ка раз­личных при­ложе­ний. Внеш­не опе­раци­онные сис­темы отли­чают­ся друг от дру­га нез­начитель­но, так как гра­фичес­кий интерфейс вез­де сос­тоит из одних и тех же эле­мен­тов (окна, кноп­ки, рас­кры­вающиеся спис­ки и про­чее), а фай­ловые сис­темы пос­тро­ены на одном прин­ципе вло­жен­ных катало­гов и фай­лов.

По­это­му работа с GUI-при­ложе­ниями в Windows и Linux выг­лядит оди­нако­во и инту­итив­но понят­на, основные опе­рации выпол­няют­ся стан­дар­тны­ми спо­соба­ми в более‑менее при­выч­ном интерфей­се.

Прод­винутые поль­зовате­ли и про­фес­сиона­лы для авто­мати­зации работы поль­зуют­ся еще одним инс­тру­мен­том, при­сутс­тву­ющим в любой дес­ктоп­ной опе­раци­онной сис­теме. Это коман­дный интер­пре­татор (обо­лоч­ка) и набор стан­дар­тных ути­лит, исполня­ющих­ся в кон­соль­ном режиме. Коман­дный интер­пре­татор реша­ет сра­зу две задачи:

  • вы­пол­нение команд, которые вво­дят­ся вруч­ную с помощью интерфей­са коман­дной стро­ки (Command Line Interface, CLI);
  • под­дер­жка язы­ка прог­рамми­рова­ния для соз­дания скрип­тов, исполня­емых в опе­раци­онной сис­теме.

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

Де­ло осложня­ется тем, что в Windows и Linux исполь­зуют­ся раз­ные коман­дные обо­лоч­ки со сво­ими набора­ми слу­жеб­ных команд. Это свя­зано как с прин­ципи­аль­ными отли­чиями в архи­тек­туре ОС, так и с исто­ричес­кими при­чина­ми.

CLI в Linux

В Linux работу с коман­дной стро­кой под­держи­вает та или иная модифи­кация ори­гиналь­ной обо­лоч­ки sh опе­раци­онной сис­темы Unix, обыч­но это Bash (Bourne again shell) или Zsh (Z shell).

Командная строка в Linux

Фун­кци­ональ­ность этих коман­дных интер­пре­тато­ров и набор кон­соль­ных ути­лит базиру­ются на стан­дарте POSIX, соз­данном для обес­печения сов­мести­мос­ти раз­личных Unix-подоб­ных опе­раци­онных сис­тем. Поэто­му во всех модифи­каци­ях Linux (как и в опе­раци­онной сис­теме macOS) исполь­зуют­ся одни и те же коман­ды, которые мож­но соеди­нять друг с дру­гом в прог­рам­мные кон­вей­еры, ког­да текст из выход­ного потока одной ути­литы нап­равля­ется на вход дру­гой.

Мно­гие стан­дар­тные коман­ды Linux ори­енти­рова­ны на обра­бот­ку тек­ста ( grep , sed , awk , sort , cut , tail ), так как в Unix-подоб­ных опе­раци­онных сис­темах тек­сто­вые дан­ные при­нято исполь­зовать в качес­тве уни­вер­саль­ного пред­став­ления информа­ции, раз­личные сис­темные нас­трой­ки и кон­фигура­ции при­ложе­ний хра­нят­ся в обыч­ных тек­сто­вых фай­лах.

Еще один базовый прин­цип Unix, перешед­ший в Linux, выража­ется фра­зой «всё есть файл». Поэто­му одни и те же ути­литы мож­но исполь­зовать для работы как с обыч­ными тек­сто­выми фай­лами, так и с вир­туаль­ными фай­лами, пред­став­ляющи­ми собой каналы свя­зи прог­рамм друг с дру­гом, перифе­рий­ными устрой­ства­ми и устрой­ства­ми, эму­лиру­ющи­ми ядро опе­раци­онной сис­темы.

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

Пример конвейера

Ти­пич­ный при­мер: необ­ходимо очис­тить каталог / tmp от фай­лов, которые стар­ше семи дней. Объ­еди­няем в кон­вей­ер коман­ду find для поис­ка фай­лов и коман­ду rm для их уда­ления:

find / tmp -type f -name '*' -mtime + 7 -print0 | xargs -0 rm -f

В более слож­ных слу­чаях, ког­да парой кон­вей­еров не обой­тись, пишут сце­нарии на под­держи­ваемом обо­лоч­кой древ­нем коман­дно‑скрип­товом язы­ке, который никак нель­зя наз­вать удоб­ным и инту­итив­но понят­ным, или на одном из уни­вер­саль­ных интер­пре­тиру­емых язы­ков, самый популяр­ный из которых сей­час — Python.

CLI в Windows

Сов­ремен­ные вер­сии Windows базиру­ются на раз­работан­ной в начале 1990-х годов Windows NT, име­ющей, в отли­чие от Unix, API-ори­енти­рован­ную архи­тек­туру. Опе­раци­онные сис­темы это­го семей­ства сос­тоят из огромно­го чис­ла под­систем и ком­понен­тов, дос­туп к которым орга­низо­ван через спе­цифи­чес­кие API. Для упро­щения работы с такой слож­ной сис­темой управля­емые эле­мен­ты груп­пиру­ются в струк­туриро­ван­ные объ­екты.

В этом и сос­тоит прин­ципи­аль­ное отли­чие Windows от Unix-подоб­ных сис­тем, которые ори­енти­рова­ны на исполь­зование тек­ста для пред­став­ления все­го, что толь­ко мож­но. Инс­тру­мент для управле­ния Windows из коман­дной стро­ки дол­жен не толь­ко под­держи­вать работу с фай­ловой сис­темой и тек­сто­выми фай­лами, как в Unix-сис­темах, но и обес­печивать прос­той и еди­нооб­разный дос­туп к свой­ствам и методам мно­жес­тва внут­ренних объ­ектных моделей Windows (.NET Framework, WMI, WSH, ADSI, CDO и так далее).

Стан­дар­тный коман­дный интер­пре­татор cmd. exe , появив­ший­ся в Windows NT и бла­гопо­луч­но дожив­ший до пос­ледних вер­сий Windows, не имел такой воз­можнос­ти, его основной задачей было обес­печивать обратную сов­мести­мость с коман­дным интер­пре­тато­ром command. com пре­дыду­щей опе­раци­онной сис­темы MS-DOS, в которой не было никаких внут­ренних объ­ектных сис­тем. По воз­можнос­тям обо­лоч­ки cmd. exe и сос­таву сис­темных кон­соль­ных ути­лит Windows всег­да усту­пала Unix-подоб­ным сис­темам. Основные уси­лия раз­работ­чиков нап­равля­лись на улуч­шение гра­фичес­кой обо­лоч­ки, а не на коман­дную стро­ку.

Для решения этих проб­лем Microsoft в начале 2000-х раз­работа­ла новую обо­лоч­ку и сре­ду выпол­нения сце­нари­ев Windows PowerShell, которая впи­тала в себя удач­ные решения из дру­гих обо­лочек и скрип­товых язы­ков. PowerShell обес­печива­ет пря­мой дос­туп из коман­дной стро­ки к внут­ренним объ­ектам сис­темы и поз­воля­ет работать с раз­личны­ми источни­ками дан­ных (нап­ример, с сис­темным реес­тром или хра­нили­щем сер­тифика­тов) по прин­ципу фай­ловой сис­темы. Внут­ренний набор команд PowerShell мож­но допол­нять собс­твен­ными коман­дами, которые пол­ностью интегри­руют­ся в обо­лоч­ку.

От всех дру­гих обо­лочек коман­дной стро­ки PowerShell отли­чает глав­ная осо­бен­ность — ее ори­ента­ция на объ­екты. Коман­ды PowerShell, которые при­нято называть коман­дле­тами, вза­имо­дей­ству­ют друг с дру­гом не с помощью сим­воль­ных строк, а через объ­екты. Поэто­му работать в PowerShell ста­новит­ся про­ще, чем в тра­дици­онных обо­лоч­ках: не нуж­но допол­нитель­но ничего делать, что­бы выделить информа­цию из сим­воль­ного потока.

Последовательность командлетов

Нап­ример, нуж­но получить упо­рядо­чен­ный по количес­тву зат­рачен­ного про­цес­сорно­го вре­мени спи­сок про­цес­сов, иден­тифика­торы которых боль­ше 1000. Это дела­ется кон­вей­ером из трех команд, наз­начение которых оче­вид­но из их наз­ваний:

Get-Process | Where-Object Id -gt 1000 | Sort-Object cpu -Descending

Для под­дер­жки объ­ектов раз­работ­чики PowerShell вос­поль­зовались объ­ектной моделью .NET Framework. Таким обра­зом, язык PowerShell отно­сит­ся к .NET-язы­кам прог­рамми­рова­ния (как C#), и при этом он совер­шенно не похож на дру­гие. Это коман­дно‑скрип­товый язык, поз­воля­ющий сов­мещать в сце­нари­ях импе­ратив­ный и дек­ларатив­ный сти­ли прог­рамми­рова­ния.

Объединение миров Windows и Linux

Итак, в Windows и Linux живут совер­шенно раз­ные коман­дные обо­лоч­ки, одна­ко ста­рани­ями Microsoft ста­ло воз­можным работать с при­выч­ной для себя обо­лоч­кой в любой сис­теме:

  • Bash в Windows. С помощью под­систе­мы WSL (Windows Subsystem for Linux) мож­но уста­новить из Microsoft Store один из дис­три­бути­вов Linux и поль­зовать­ся его коман­дной обо­лоч­кой для работы с фай­ловой сис­темой Windows или запус­ка Windows-ути­лит. Так­же в этом слу­чае мож­но будет запус­кать ути­литы Linux в коман­дной стро­ке Windows.
  • PowerShell в Linux. В 2017 году Microsoft откры­ла исходный код PowerShell, теперь это Open Source про­ект (вот ре­пози­торий на GitHub). Обо­лоч­ка, исполь­зующая .NET Core, ста­ла кросс‑плат­формен­ной, с ней мож­но работать в раз­личных дис­три­бути­вах Linux (Debian, Ubuntu, CentOS, Red Hat, openSUSE, Fedora) и в macOS.

Вна­чале кросс‑плат­формен­ная вер­сия обо­лоч­ки называ­лась PowerShell Core 6, что­бы явно ука­зать ее зависи­мость от .NET Core. Начиная с седь­мой вер­сии сло­во Core из наз­вания убра­ли, теперь обо­лоч­ка носит имя прос­то PowerShell. Вер­сия обо­лоч­ки, базиру­ющаяся на пол­ной плат­форме Windows .NET Framework, называ­ется Windows PowerShell.

Установка и запуск

Ус­танов­ка PowerShell зависит от типа опе­раци­онной сис­темы и ее вер­сии, соот­ветс­тву­ющие инс­трук­ции име­ются на сай­те Microsoft. Нап­ример, для уста­нов­ки PowerShell в опе­раци­онной сис­теме Linux Ubuntu 20.04 нуж­но выпол­нить сле­дующие коман­ды:

sudo apt- get update
sudo apt- get install -y wget apt- transport- https software- properties- common
wget -q https:/ / packages. microsoft. com/ config/ ubuntu/ 20. 04/ packages- microsoft- prod. deb
sudo dpkg -i packages- microsoft- prod. deb
sudo apt- get update
sudo add- apt- repository universe
sudo apt- get install -y powershell

Что­бы запус­тить уста­нов­ленную обо­лоч­ку PowerShell, выпол­ним в тер­минале коман­ду pwsh . Пос­ле вывода информа­ции о вер­сии PowerShell мы получим обыч­ное приг­лашение коман­дной стро­ки с путем к текуще­му катало­гу в качес­тве пре­фик­са.

PowerShell в Linux

PowerShell как командная оболочка

Для эффектив­ной и удоб­ной работы в коман­дной стро­ке важ­ны два момен­та.

  1. Нуж­но знать наз­вания команд и их клю­чей. Запом­нить их будет про­ще, если син­таксис команд инту­итив­но понятен и одно­роден. Если мы не пом­ним клю­чи у коман­ды, то дол­жна быть воз­можность быс­тро най­ти справ­ку по этой коман­де и при­меры ее исполь­зования.
  2. Са­ми коман­ды и их клю­чи дол­жны быть крат­кими и удоб­ными для быс­тро­го набора на кла­виату­ре. Обо­лоч­ка дол­жна под­держи­вать механиз­мы авто­допол­нения, поис­ка и пов­тора выпол­нявших­ся ранее команд.

Ес­ли со вто­рым пун­ктом у стан­дар­тных обо­лочек Linux все хорошо, то пох­валить­ся понят­ностью имен и клю­чей команд они не могут: наз­вания мно­гих ути­лит пред­став­ляют собой аббре­виату­ры, при­думан­ные еще в 1960-е годы, а одни и те же клю­чи в раз­ных коман­дах могут иметь раз­ный смысл. В PowerShell такой проб­лемы нет.

Структура команд и псевдонимы

В PowerShell име­на всех внут­ренних команд соот­ветс­тву­ют шаб­лону «дей­ствие‑объ­ект», нап­ример Get-Process (получить информа­цию о про­цес­се), Get-Content (получить содер­жимое фай­ла), Clear-Host (очис­тить экран). Для оди­нако­вых парамет­ров команд исполь­зуют­ся стан­дар­тные име­на, струк­тура парамет­ров во всех коман­дах иден­тична, все коман­ды обра­баты­вают­ся одним син­такси­чес­ким ана­лиза­тором. Это дела­ет семан­тику команд оче­вид­ной и зна­читель­но упро­щает запоми­нание и исполь­зование команд PowerShell.

С дру­гой сто­роны, иног­да PowerShell руга­ют имен­но за этот мно­гос­ловный и необыч­ный для дру­гих обо­лочек син­таксис. Нап­ример, нам нуж­но соз­дать в текущем катало­ге пус­той файл 1. txt . В Bash это дела­ется коман­дой touch из пяти букв:

~ touch 1. txt

При соз­дании фай­ла в PowerShell с помощью коман­ды New-Item с парамет­рами пот­ребу­ется ввес­ти боль­ше двад­цати сим­волов.

Создание файла 1.txt c помощью команды New-Item

Выг­лядит ужас­но, прав­да? Но того же резуль­тата мож­но добить­ся, наб­рав коман­ду ni все­го из двух сим­волов.

Создание файла 2.txt c помощью команды ni

Ко­ман­да ni — это стан­дар­тный псев­доним для New-Item (сок­ращение по пер­вым бук­вам слов коман­ды), зна­чение File для парамет­ра -Type исполь­зует­ся по умол­чанию, имя парамет­ра -Path мож­но опус­тить.

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

Получение полного списка псевдонимов c помощью команды Get-Alias

От­метим, что в Windows PowerShell за некото­рыми коман­дле­тами зак­репле­ны псев­донимы, соот­ветс­тву­ющие стан­дар­тным коман­дам Unix-подоб­ных сис­тем: ls , rm , cp , mv , cat , ps , man , mount . В PowerShell 6/7 дан­ные псев­донимы не опре­деле­ны, их ввод при­ведет к выпол­нению «род­ных» команд Linux.

Доступность команд

В .NET Core/.NET 5 реали­зова­на не вся фун­кци­ональ­ность плат­формы .NET Framework, поэто­му в PowerShell 6/7 по умол­чанию заг­ружа­ется мень­ше модулей и будет дос­тупно мень­ше команд, чем в Windows PowerShell. Нап­ример, под Linux недос­тупны коман­ды *-Service, *-Acl, *-Event, Set-ExecutionPolicy .

Часть из отсутс­тву­ющих модулей нап­рямую свя­заны с осо­бен­ностя­ми опе­раци­онной сис­темы Windows и не могут быть перене­сены на дру­гие плат­формы (так, в PowerShell для Linux отсутс­тву­ют про­вай­деры и вир­туаль­ные дис­ки для сис­темно­го реес­тра и хра­нили­ща сер­тифика­тов), некото­рые модули могут быть добав­лены в сле­дующих вер­сиях PowerShell.

При работе с PowerShell в Linux необ­ходимо учи­тывать осо­бен­ности опе­раци­онной сис­темы.

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

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

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