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

Вид: 11695|Ответ: 1

Руководство по PowerShell — версия версии 0.3

[Скопировать ссылку]
Опубликовано 19.04.2017 16:48:30 | | |


---------- Глава 1 История скриптов Windows --------------


1 Первое поколение скриптовых летучих мышей. Всё началось с win95, win98--------- а закончилось примерно в 2008 году. Особенности: Команды, ориентированные на символы, с командной строкой и конвейером.
2 Скрипт второго поколения VBS. Особенности: только функции, передачи значений, вызовы.
3 Скрипт Powershell третьего поколения. Начиная с 2012 года, командование полностью эволюционировало до объектно-ориентированного. Например, tasklist и get-process — это повторяющиеся признаки колеса: объектно-ориентированные. Унаследовав преимущества предыдущих двух поколений сценариев.



Вопрос: Зачем учиться PowerShell?
A:
Миссионер ответил, что будет учиться один год и пять лет для BAT. Простой синтаксис и сильные библиотечные функции!
Единственный в мире, который поддерживает объекты с командами с обеих сторон конвейера. то есть объектно-ориентированная команда 1 | Объектно-ориентированная команда 2

Windows и Linux — это разные вещи:
В скрипте PowerShell на Win,
Поддержите вход CR, LF, CRLF. Поддержка многопоточности и многопроцессной параллелизации.
Легко встроить [звук Text2], «Докладывай, капитан, диск заполнен».
Встраивать графический интерфейс просто. (Когда всплывающее окно просит ввести имя пользователя, пароль, одиночный выбор, множественный выбор и т.д.) Это зависть к скриптам Linux.

PowerShell отличается от Python:
В PowerShell легко использовать китайский. Название китайского письма, название переменной, комментарий. Китайские одиночные кавычки, китайские двойные кавычки.
Автоматически распознаёт кодирование GBK, UTF8, Unicode. Объекты поддержки конвейеров, которым завидуют скрипты Python.



Простой пример синтаксиса 1: магия одно- и двойных кавычок в powershell.
Одиночные кавычки можно цитировать с двойными кавычками. И наоборот.
Одиночные и двойные кавычки можно @引用 @''.
БАТ не помог.


Миссионерский рассказчик:
Я много думал над дизайном учебника. Разве вы не читали, что часть о истории в том, что я написал, была очень [простой и грубой]? История несётся одним ударом.
Но раз уж я это сказал, это не чепуха, я просто хочу, чтобы студенты ясно дали понять, что с 2008 года [объективизация] сценариев стала популярной. Ведёт к следующей главе объектно-ориентированного объяснения.
В любом вводном учебном материале по PS следует упоминать разницу между ориентированным на персонажей и объектно-ориентированным. Это просто уместно добавить в историю командной строки.

---------- Глава 2 Удивительные -------------- объектно-ориентированного
Что такое объект, почему он ориентирован на объект и почему Microsoft усиливает колесо?

Объектно-ориентированный пример 1:
Вопрос: Я ем 2,2 яблока в день, сколько яблок я съем за 17 дней?
A:
Доступны размеры 2,2 x 17. Также возможно использовать i++, поддерживаемый любым скриптовым языком.
для ($i = 1; $i -LT 18; $i++)
{
        $Apple = 2,2 + $Apple
        write-host $i,$Apple
}

--------------------------------------------
Как только вопрос изменится, я не скажу количество дней, только скажу,
Я ем 2,2 яблока в день, сколько яблок я съем с 20 января по 20 июня 2017 года?
$days = ((get-date '2017-06-20') - (get-date '2017-01-20').дней #值151


Я ем 2,2 яблока в день, сколько яблок я съем с 20 января по 20 июня 2020 года?
$days = ((get-date '2020-06-20') - (get-date '2020-01-20').days #值152

для ($i=(дата получения '2020-01-20'); $i -Lt (дата получения '2020-06-20'); $i=$i.adddays(1))
{
        $Apple = 2,2 + $Apple
        write-host $i,$Apple
}

Вывод: с объектом даты считать дни, часы и так далее просто. [for,,i++] распространено, но я никогда не думал, что число I может быть типом даты.

------------------------------------------



Каковы преимущества объектно-ориентированности?
До объектно-ориентированного у нас были только строки и целые числа.
1 Есть объект.
----- [Тип персонажа]-----
Глиф имеет system.string, который является самым базовым.
Память System.Text.StringBuilder, часто меняющаяся, большие строки

----- [Числовой тип]-----
system.int32, system.int64, system.decimal, system.double, System.Numerics.BigInteger infinite incenumer.
Обычно используется int32, десятичный.

Будет ли 1/3*3 равна 1 или 0,9999 зависит от типа данных.
----- [Массив]-----
массив system.array
Массив system.arraylist часто меняется, например, всегда переписывает, добавляет или удаляет — вам нужно использовать это. Скорость относительно высокая.
System.Collections.Generric.HashSet дедупликационные массивы. То же самое, что и объект set в python.

-----【Form】-----
1 командный выход. Например, dir, get-process.
2. При написании скриптов мы используем объекты и атрибуты для построения.

----- [Другие] -----
хэш-таблицы, файлы и так далее.



2 имеет атрибуты. Атрибуты — это аргументы, и они меньше строк. Прежде чем не появятся атрибуты, нужно фильтровать строки с помощью [мозгожечного регулярного], называемого [строкой дедукции]. Если у вас есть атрибуты, они вам не нужны.
3 Есть способ. Метод — это программа, код. Не нужно переписывать самому. Летучая мышь определённо не хороша, это невозможно, там также есть личное письмо, ненадёжное, не смей его использовать.
Методы могут быть самонаписанными функциями ps, самонаписанными методами в классах ps.
Метод, который вы пишете сами, можно временно [объединить] с сторонним классом.
Метод, который вы пишете сами, можно временно [объединить] с классом .net.

В чём есть недостатки объектно-ориентированного подхода?
Проповедник учит PowerShell тех, кто использует WinxP. Человек сказал, что PowerShell — это плохо, объект слишком запоминает, и он прав.
В cmd я возвращаю 100 имён файлов (строк) с dir. В PowerShell я использую dir для возврата 100 файловых объектов, и PowerShell занимает много памяти.
Но сейчас всё иначе:
1. Ненужный контент не должен существовать в переменных. Или уничтожить его сразу после использования, чтобы уменьшить использование памяти.
2. Потеря памяти — это достаточно. Поскольку производительность процессора больше не может расти, мы лихорадочно увеличиваем память, пытаясь обменять пространство на время.
3. Мы хотим более мощные функции, и объектно-ориентированность сейчас самая базовая. Что не является объектно-ориентированным, py, php, java, .net, c++?

Сводка:
1 Объекты больше и требуют больше памяти, чем строки.
2. Существует больше методов для объектно-ориентированных и более сильных функций.
Три атрибута меньше гранулярности строк, что чрезвычайно удобно в использовании. Избегал [безумного использования мозгожжущих обычных струн для фильтрации]


=== Безумное использование мозго-сжигающих регулярных пользователей для фильтрации примеров, версия стандартного ping ===
@echo off&set, локально enableeddelayexpand.
Эхо ищет стандартный шлюз...

для /f "usebackq delims=" %%i в ('ipconfig /all') do (
echo %%i|найти /i «шлюз»>nul|| echo %%i|найти «default gateway» >nul
если «!errorlevel!» =="0" (
для /f "tokens=2 delims=:" %%a in ("%%i") do for /f "delims=" %%m in ("%%a") do set ipgate=%%m
)
)

Стандартный шлюз Echo: !ipgate!
=========== пинг по умолчанию gateway.ps1============
$default шлюз = (get-netroute -DestinationPrefix 0.0.0.0/0). NextHop
& ping.exe $ Шлюз по умолчанию

# тест-соединение $ шлюз по умолчанию
=======================






В: Даже если объектно-ориентированное так хорошее, откуда берутся эти объекты?
Ответ: Из библиотеки .net.


---------- Глава 3 Введение в .NET --------------


В: Сколько ветвей версий у .NET Core?
A:
В настоящее время существует три версии.
.NET 2.0 Последняя версия .NET 3.51
.NET 4.0 Последняя версия .NET 4.70
.NET Core 1.x Последняя версия .NET 1.2 для систем Apple, Linux и встроенных систем.
.NET Core 2.x Последняя версия .NET 2.0 для систем Apple, Linux и встроенных систем.



Вопрос: Сколько функциональных ветвей у .net?
A:
Десктопная ветка в .NET. WinForm. Для разработки окон рабочего стола.
Звуковая библиотека
asp.net в .NET и .NET Core. Библиотека функций веб-сервера. Раньше открывал B/S веб-сервер.
F# в .NET и .NET Core. Содержит математические библиотеки, библиотеки тригонометрических функций и т.д.
PowerShell в .NET и .NET Core. Содержит общие интерфейсы управления системой, такие как скрипт-файлы.
Линукс
◦Ubuntu 14.04 \ 16.04
◦CentOS/RHEL 7 и выше
◦открыть SSE 42 и выше
◦Arch Linux (у archl inux нет номера версии)
◦LINUX docker-контейнер
◦Linux AppImage container (портативное приложение с единственным бинарным числом) https://github.com/probonopd/AppImageKit



MAC OS X
◦OS X 10.11


Вопрос: Как .NET-программа (программа на C#) подключается к серверу MySQL?
A:
Перейдите на официальный сайт mysql, чтобы скачать коннектор для языка .NET.
mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll
Добавьте класс MySql.Data в .net и добавьте интерфейс базы данных.



Заключение:
WinXP сначала установите .net 3.51, win7 и win2008, сначала установите .net 4.62 или выше.

.NET существует уже много лет, и мало программ, поддерживающих .NET, чем Java. Все ветки и интерфейсы .net (базы данных, WeChat и др.). )
Эти dll, библиотеки, powershell можно вызвать. Он точно такой же, как exe, написанный на C#.


В: Помимо интерфейса ветви .NET, какие собственные библиотеки (модули) существуют у PowerShell?
A:
Пожалуйста, смотрите следующую главу

---------- Глава 4 Широко используемые встроенные библиотеки, внешние библиотеки и сторонние библиотеки в PowerShell --------------

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



Ручной адрес WIN2012: (Наиболее часто используемый AD модуль)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx
Управление группами пользователей AD, DHCP, DNS, принтер, обмен файлами, IIS, диск, сетевая карта,



Exchange2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx
Active Directory 12         
Антиспам и анти-вредоносное ПО 59  
Клиентский доступ 100
Агент расширения 4
Адреса электронной почты и адресные книги 37
Федерация и гибридная конфигурация  
Высокая доступность  
Почтовый поток  
Почтовый ящик  
База данных почтовых ящиков  
Почтовый сервер  
Переезд и миграция  
Организация  
Разрешения  
Политика и соблюдение требований  
Безопасность  
Состояние сервера, мониторинг и производительность  
Делитесь и сотрудничайте  
Единое сообщение  
Пользователи и группы  



sqlserver2016
https://msdn.microsoft.com/zh-cn/library/hh245198.aspx



lync2015
https://technet.microsoft.com/zh-CN/library/gg398867.aspx




SharePoint2016
https://technet.microsoft.com/zh-cn/library/ff678226(v=office.16).aspx



Amazon Virtual Machines, AWS, Microsoft Virtual Machines, Azure, Hyper-V, VMware vSphere и виртуальные машины корпоративного уровня.


Клиенты:
Сервисы, процессы, журналы, реестры, файловые каталоги, удалённое управление. Задачи с ограничением времени.



Интернет:
FTP, почта, SSH-клиентский плагин для подключения к серверу Linux.


СМС:
XML, HTML, CVS, JSON, EXCEL и т.д.


Голос текста 2


Графический интерфейс.


Microsoft Scripting Center
https://gallery.technet.microsoft.com/scrip{过滤}tcenter/


Официальный сайт программного обеспечения PowerShell --- официальная библиотека PowerShell.
https://www.powershellgallery.com


Остальные библиотеки Niu x все находятся на github. Кроме того, миссионеры регулярно публикуют [Niu x Magic Weapon] [Hidden Foot Pavilion], который является полезной сторонней библиотекой PowerShell.


---------- Глава 5 Новички должны научиться облегчать использование команд--------------


В: Как узнать версию для PowerShell?
A:
$PSVersionTable



Вопрос: Я не знаю модуль, как его найти?
A:
get-module -ListAvailable


Вопрос: Как найти команды, если я знаю только их часть?
A:
get-command *service*



Вопрос: Я знаю команду, но не знаю, какие параметры в команде и как их перечислить?
A:
get-help write-host -Parameter *
show-команда write-host


Вопрос: Я знаю параметр, но не знаю, какая команда имеет этот параметр, как найти эту команду?
A:
кодирование get-command -ParameterName



Вопрос: Как получить помощь с командой из командной строки?
A:
Получение помощи-дата

-Примеры команд, примеры
-онлайн-руководство




Вопрос: Я не знаю метод атрибута команды (не знаю объект), как его найти?
A:
«ABC» | GET-член
Get-date | GET-член



Вопрос: Где находится китайское руководство по .NET?
A:
msdn。 Самые базовые свойства и методы строк приведены в руководстве.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx



---------- Глава 6 Введение в общие команды --------------

Первая команда для изучения — dir
Вопрос: Почему использовать PowerShell dir [то есть Get-ChildItem] вместо cmd dir?
A:
Объектно-ориентированный, сильный метод и множество характеристик.
$file = dir a:\pscode\temp183\aaa.txt
$file. Полное имя #返回全路径属性
$file. BaseName #返回文件名属性
$file. Расширение #返回扩展名属性
$file. LastWriteTime #返回最后写入时间属性



Первый синтаксис, который нужно изучать, — это синтаксис массивов. $a = @(xxx команда)
Вопрос: Иногда приходится использовать [внешние команды на основе символов], чтобы разделить возвращаемые значения на массивы по единицам поведения.
A:
$a = @(ipconfig)
$a[8] #第9行


Использование get-childitem (Get-Childitems):
Добавленные параметры в PowerShell 3.0 и выше

get-childitem d:\xxx -файл #过滤, только выходные файлы
-Фильтрация каталогов, каталоги только вывода
-Скрытая фильтрация, только выход скрыт


Вопрос: Открыть файл, сегментировать по поведению, поместить в массивы?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -ReadCount 0



Вопрос: Открыть файл в виде большой строки и сохранить всю переменную?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -raw


$a,$b,$c = 1,2,3


В: Как запускать команды в фоне?
A:
В древности существовала команда cmd /c.
Теперь есть powershell /c «команда», или powershell -c «команда»,
PowerShell -файл "script.ps1" -argument 1 aaaa -parameter 2 1234
start-process -path xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'


Вопрос: Я хочу запустить скрипт с другим локальным пользователем, но в PowerShell нет runas. Похожие команды в exe?
A:
В PowerShell есть несколько сессий.
IP + порт + имя пользователя + пароль = сессия, мне нужно только изменить имя пользователя, сменить пароль, и вы можете изменить права. Потому что права привязаны к пользователю.
Аналогично, мне нужно создать только n сессий для использования, не меняя пользователей.
Самая важная new-pssession имеет параметр -Credential, введите пароль пользователя, который не совпадает с runas. Exe — это то же самое? Что ещё такое SmbSession?
Так что, думаю, не обязательно использовать руны в PowerShell. exe。
Вам просто нужно использовать эти команды с session и Credential, верно?

Проверьте команды с именем [Credential] в имени параметра:
get-command -ParameterName Credential

Просмотр команд с символом [session] в команде:
get-command *session*


Вопрос: Как отправить письмо с помощью PowerShell?
A:
Отправить сообщение -Тема 'Тема'
-От "вашего аккаунта горячей почты @hotmail.com" -К "вашему QQ email @qq.com"
-SmtpServer "smtp.live.com" -port 587 -useSsl -credential "ваш аккаунт hotmail @hotmail.com" '
-Вложения $Attachments -BodyAsHTML -тело $HTML содержимое письма

Заметка:
1 применениеxxx@QQ.com+ Ваш пароль QQ + приведённая выше команда Отправка письма не работает. Потому что для безопасности паролей QQ Tencent требует независимых паролей от электронной почты.  
2 Отправка из почтового ящика QQ по умолчанию невозможна. Он отключён, и нужно включить SMTP в настройках.
3 PowerShell 3.0 и выше поддерживают только параметры портов. Для Windows 7 сначала нужно установить последнюю версию PS




Вопрос: Монитор Win, процессор, диск, сеть, выход и т.д.
A:
Монитор производительности или
Get-Counter получает данные счётчика производительности как с локальных, так и с удалённых компьютеров.

Вопрос: Как узнать, какие контрпредметы доступны?
A:
Всё это указано в инструкции.
Узнайте, какие основные категории применения существуют:
Get-Counter -ListSet * | Sort-Object CounterSetName | Format-Table CounterSetName


Например, теперь я знаю, что категория дисков — (PhysicalDisk), а затем проверяю подкатегории на диске, использую:
(Get-Counter -ListSet PhysicalDisk). Пути




Вопрос: Как мне просматривать логи?
A:
Event Viewer, или
get-eventlog



Вопрос: Как выполнить строки?
A:
$cmd 1 = 'xxxx'
Инвок-экспрессия $cmd 1


Мы многое узнали об отдельных командах, давайте посмотрим на выполнение скриптов Powershell.


---------- Глава 7 Скриптинг, отладка и запуск PS1 --------------
Скрипт — это комбинация и наложение командных операторов. Сценарий — это клей: ходи и ищи других, чтобы позвонить, искать колёса для сборки машины. Вместо того чтобы делать колёса для других.



Цайняо спросил: Как написать сценарий?
Старая птица ответила:
1 Детали проблемы должны быть прояснены. Например: приготовьте лунные пирожные.
2 Идеи для решения проблем тоже практически завершены. Мука и вода, положите начинку, пропарите.
3 Какие команды и переменные использовать. Добавьте пять зерен, положите их в форму и выжмите.
4 Сначала пишите приблизительно, пишите грубо.
5 Отладка прошла.
6 Пишите подробно. Рассмотрим ситуацию с ошибкой, а также код ошибки, сообщение об ошибке. Удалите код, склонный к ошибкам, который не так просто совместим. Перепишите код, который плохо работает.
До этого момента хороший сценарий может выглядеть не очень хорошо, но он должен быть очень полезен.
7 Изящно выполнено. Рефакторинг, запись повторно использованных фрагментов кода в функции. Перепишите имена переменных, чтобы люди могли сразу их понять. Хорошо отформатируйте код и сделайте отступы.


Вопрос: Какая IDE используется для написания PS1?
A:
Самый рекомендуемый вариант — использовать Visual Studio Code и плагин PowerShell.
Функции: подсказки кода, автозаполнение, форматирование кода, отступы для выбора пробела или вкладки, настройки кодирования файлов.
Существует плагин FTP-sync, который может писать скрипты PS1 в Windows VSCode и автоматически синхронизировать их с каталогом Linux при сохранении.



Вопрос: Какие инструменты используются для отладки PS1?
A:
Самый рекомендуемый PowerGui Life не использует локомотив, даже если это герой, скрипт PS тоже скачет и сообщает об ошибке!
VSCODE тоже нормальный



Вопрос: Какие инструменты вы используете для форматирования кода?
A:
Всё, что должно быть вмятино, имеет вмятину, а знаки равенства выровнены.

Плагин PowerShell ISE + ISE [ISESteroids]

Установка:
Install-Module -Name ISESteroids

Забеги ISE:
Старт-стероиды





Вопрос: Какие инструменты вы используете, чтобы сделать цвет кода красивым?
A:
1 Используйте вышеуказанные инструменты для форматирования кода.
2 Используйте PowerShellise + Missionary DIY Color Matching 2016 Edition.
3 Возьми фото. Создаётся самый приятный и красиво раскрашенный код PowerShell в мире.

Все вышеупомянутые IDE написаны на китайском языке.




Вопрос: Как назвать сценарий? xxx.ps1
A:
Рекомендуется начинать с 1---2 букв, а остальное использовать китайское имя файла. То есть [парень делает резервную копию всех старых files_ и удаляет .ps1 10-дневной давности]
Таким образом, сначала введите [bf], а затем нажмите Tab, чтобы завершить имя скрипта.




Вопрос: Как включить разрешение на выполнение скриптов в PowerShell?
A:
echo Следующий код может быть выполнен в cmd с правами администратора или в PowerShell с правами администратора.
Echo, если использую PowerShell Remoting Remote. И локальная, и удалённая машина должны запускаться с правами администратора.
"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -команда "Set-ExecutionPolicy -ExecutionPolicy без ограничений"
"C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -команда "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -команда "Set-ExecutionPolicy -ExecutionPolicy без ограничений"
& "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -команда "Set-ExecutionPolicy -ExecutionPolicy без ограничений"
Пауза



Вопрос: Каковы недостатки локомотива (powergui)?
A:
Не удаётся задать цвет фона.




В: Каковы недостатки vscode?
A:
$ и имя переменной отличаются по цвету.
Функции отладки идут медленно и иногда заблокированы в тупик.




В: Каковы недостатки ISE?
A:
Вы не можете выбрать сохранение или конвертацию кодирования.
Отступ в [пробел], [вкладка] оба. В других программах для редактирования текста отступы отображаются.




---------- Глава 8 Настоящая боевая тренировка --------------
Группа 6504748 и написала эту часть самостоятельно.

5. Пример 1: Включать и выключать сервис
6. Пример 2: Control Firewall (Открыть, Закрыть, Управлять)
7. Пример 3: Установите политику (например, политика паролей)



---------- Глава 9 Эти дополнительные элективные курсы вас интересуют? --------------
Скрипт PowerShell, примеры передающих значения в командной строке и переменные связывания
http://www.cnblogs.com/piapia/p/5910255.html




Пусть powershell запускает только один скрипт одновременно (пример взаимного исключения процесса)
http://www.cnblogs.com/piapia/p/5647205.html



Интерфейс персонажа PowerShell, интерфейс PowerShell плюс WPF, игра 2048
http://www.cnblogs.com/piapia/p/5531945.html


Два краулера в PowerShell
http://www.cnblogs.com/piapia/p/5367556.html



Скрипт PowerShell: генератор случайных паролей
http://www.cnblogs.com/piapia/p/5184114.html



Пример рекурсивного алгоритма PowerShell
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html



Калькулятор голоса PowerShell
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html



1 Перечислить все файлы, зашифрованные EFS. 2Расшифровать все файлы, зашифрованные EFS,
http://www.cnblogs.com/piapia/p/4702514.html
Это инструмент, разработанный для системных администраторов и сетевых администраторов.
После ухода сотрудника его диск предполагает, что существует 10 000 файлов (каталогов), из которых 3 файловых каталога зашифрованы EFS. В Explorer эти три файла зелёные.
Но если вы кликнете по (10 000 каталогов) по одному, независимо от того, зелёный он или нет, вы будете вымотаны.
В этот момент сетевой администратор использует аккаунт WIN, входит на его компьютер и с помощью этого скрипта перечисляет все зашифрованные EFS файлы.


---------- Глава 10 Пожалуйста, задайте вопрос--------------
Дамы и господа, если есть что сообщить, уходите из зала без ничего.



----------Глава 11 Глава о Linux--------------

Missionary: Пока вы можете установить версию PowerShell для Linux, нужны только скрипты для PS1, никаких скриптов для SH.
Интерпретация:
1 Короче говоря, в bash есть только синтаксис, нет команд и библиотек.
2 bash имеет только 1% синтаксических функций, PowerShell не может их реализовать. Это нормально, нет двух одинаковых листьев в мире.
Это значит, что вам нужен только скрипт для PS1, без проблем.
3 bash — это слишком старо, та же функция, Powershell можно реализовать, и он также может сэкономить время, например, 10 000 пустых за, Powershell нужно сохранять 90% времени.
4 Научитесь использовать /usr/bin/powershell вместо /usr/bin/bash. Другие команды Linux, конвейеры, старое кунг-фу и т.д. используются точно так же, как и в bash.
5 Постепенно используйте объектно-ориентированные, простые и мощные команды и библиотеки PowerShell вместо утомительных команд Linux, или и то, и другое. ---Это общий принцип, общий план.


Вопрос: Какие версии Linux могут устанавливать PowerShell?
A:
◦Ubuntu 14.04 / 16.04
◦CentOS/RHEL 7 и выше
◦открыть SSE 42 и выше
◦Arch Linux (у archl inux нет номера версии)
◦LINUX docker-контейнер
◦Linux AppImage container (портативное приложение с единственным бинарным числом) https://github.com/probonopd/AppImageKit





Вопрос: Почему говорят, что командная строка win сильнее Linux?
A:
Команды в одной победе эволюционировали в объектно-ориентированный PowerShell. Linux пока не работает. От win7 до win2012r2 эволюция заканчивается.

2 Раньше я слышал, что в Unix много команд Linux и он очень мощный. Но теперь я говорю вам, что команды PowerShell как минимум в десять раз больше, чем команды Linux. В любом случае, я всё равно не учился всю свою жизнь.

3 Linux больше зависит от графа, с слишком малым количеством команд. И команда win гораздо больше, чем Linux.
3.1 В любом Linux команды на почтовом сервере становятся более полными, чем в Exchange? Удобнее, чем обмен?
3.2 DNS-серверная связь Linux не так удобна, как DNS-команда win. Есть ли у Bind [команда] для добавления записи ipv4 A к доменному имени? Вы ещё не зависите от веб-графики?
Некоторые советуют использовать nsupdate. Это не про создание текста и потом его запуск. В чём разница между заменой [DNS zone file] на sed и перезагрузкой [DNS-зоны]?

4 В новой версии win или в powershell всё сводится к [command + parameter]. И большая часть Linux всё ещё остаётся [sed text].
4.1 Возьмём, к примеру, IP-адрес, назначенный сетевой карте.
NMCLI-соединение: добавить тип Ethernet-CON-name NEW_STATIC IFNAME ENO1234567 IP4 192.168.1.111 GW4 192.168.1.1,
Разве это не удобнее, чем использовать sed для скрейпинга файла ifcfg-eth0?

5 Любой язык обрабатывает данные, как и скрипты. С помощью объектов PowerShell удобнее, чем AWK. Shenma csv, excel, xml, json
SQL таблица, таблица nosql. html и так далее.




Вопрос: Как PowerShell реализует [sed -i "s/what to look/replace with /g" filename]?
A:
@(Имя файла Get-Content) -заменить 'aaa', 'bbb' | Имя файла Set-Content $aaa
То есть открыть файл, заменить его, сохранить файл.



Вопрос: Почему всё меньше людей используют SED в Linux?
A:
Аргумент 1: AWK может заменить SED, но SED не может заменить AWK.
SED, то есть просто найти замену. В AWK есть для реализации сложной обработки.

Аргумент 2: AWK использует стандартный регуляр, и регулярный в sed совпадает с регулярным, но части разные.
Изучение СЭД означает, что два набора несовместимых регулярных стандартов в мозге борются друг с другом.



В: Значит, правильно учить AWK?
A:
Изучать PowerShell проще, чем AWK.
PowerShell использует [split and then split], [if and if], where-object, string.substing(), string[-3] и т.д.
Разберите задачу струн слой за слоем. Проще, чем обычное неловко.




Вопрос: Можно ли использовать конвейеры и AWK в PowerShell?
A:
В PowerShell можно вызвать awk, точно так же, как в Bash. Старые боевые искусства полностью туринские.



Вопрос: Как реализовать функцию [awk '{print $3}'] в PowerShell?
A:
($line -split "\s+|\t+") [0] #第一行
($line -split "\s+|\t+") [2] #第三行       

Получить контент /xxx/yyy.txt | foreach-object {$_.split()[2]} #awk '{print $3}'


Вопрос: Как реализовать функцию [awk -f a.awk file] с помощью PowerShell?
A:
По сути, это функция фильтрации, использующая трубу. В PowerShell это называется фильтром или фильтром.
PowerShell поддерживает комбинацию команды + труба + фильтр. Как в Command 1 | Фильтр 1 | Command 2 | Фильтр 2 | Фильтр 3
фильтрующий фильтр1
{
Функциональность, похожая на AWK
}





Вопрос: Есть ли [xargs] в PowerShell?
A:
Переменная трубы, используемая в конвейере, называется [$psitem], а её псевдоним — [$_].
PowerShell использует foreach-object и $_ для реализации функции xargs.





Вопрос: Есть ли в PowerShell номер [<] [<<]?
A:
Нет.
Возможно, символ [<] справа налево — это античеловеческое мышление. Многие команды в PowerShell были изменены слева направо.
Если get-random < (1..100) не разрешен в PowerShell, то легальный должен быть get-random -inputobject (1..100), или 1. 100 |get-random
Менее 1% странных команд [должны] зависеть от символа [<], который можно реализовать, вызвав cmd в PowerShell или bash (PowerShell для Linux) в PowerShell.
Например, $a = bash -x «команда 1 < команда 2» #linux
Например, $a = cmd -c «команда 1 < команда 2» #cmd




Вопрос: Есть ли команда expect в PowerShell? Как подключиться к SSH-серверу Linux через Windows с помощью PowerShell?
A:
1. Да. Для некоторых странных и частичных требований к отклику дверей существуют сторонние модули.
2 Нет. PowerShell не использует команду expect, а использует сессию.

Используйте Powershell + SSH-клиентскую библиотеку + IP + порт + имя пользователя + пароль, чтобы объединиться в соединение и отправить команды на это соединение. Код таков:
$connection 1 = New-SSHSession -ComputerName 1.1.1.1 -Port 22 -Credential aaaa #将提示输入密码
$to return = Invoke-SSHCommand -Command {cat /etc/issue} -SSHSession $Connection 1

Эта стандартная функциональность, такая как (MongoDB, mysql, ssh, ftp, http, telnet и др.), содержит драйверы или модули. P.S. и. .netprogram через соединение драйвера отправляет команды и принимает данные.
Преимущества использования модулей или драйверов для отправки и получения [данных] заключаются в следующем:
Данные будут преобразованы в объект .net, который, в свою очередь, будет преобразован в объект PS. В остальном всё — нити, а [объектно-ориентированные боевые искусства] секты PS бесполезны.


Возьмём MongoDB в качестве примера, каковы преимущества использования модулей или драйверов для отправки команд? Кто говорит?
Я считаю, что преимущества таковы:
1 Многопоточность. Фоновый поток работает и не занимает текущий поток.
2. Мы можем [отключиться наполовину] от сессии в любой момент, выполнить другие PS-код, функции и [вернуться к сессии в любое время]. Скрипты более гибки в написании и легко отладываются.
3session объединяет нескольких пользователей, и разные пользователи могут иметь разные права сервера.




В: Есть ли команда su и runa в PowerShell? Как выполнить команду другого пользователя с помощью PowerShell?
A:
Нет.
В PowerShell запускать нативные команды и конвейеры Linux очень просто. Например:
Тссaaa@127.0.0.1"Выполнено с пользовательским AAA-правом, команда xxx"  
sshpass -p user_password sshaaa@192.168.1.1



Вопрос: Два Linux-компьютера с SSHD? Как подключать и отправлять команды с помощью PowerShell?
A:
В дополнение к вышеуказанному методу вы также можете использовать метод создания новой сессии Linux. (Подключён с Linux к другому SSHD)
Примечание: этот метод требует редактирования файла /etc/ssh/sshd_config. Добавьте следующую строку
Подсистема powershell powershell -sshs -NoLogo -NoProfile
После этого перезагрузите SSHD-сервер.
Подробная инструкция доступна здесь:
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting

Команда:
$connect 2 = New-PSSession -HostName 127.0.0.1 -UserName user006 #手动输入密码或用-KeyFilePath опции
invoke-command -session $connect 2 -scrip{filter}tBlock {new-item ~/ccc.txt}


Сводка:
Клиент Win, подключён к серверу Linux. В настоящее время требуются сторонние модули, конечно, этот модуль в официальной библиотеке, просто используйте установочный модуль PoshSSH.
Клиент Linux, подключён к серверу Linux. Нужно отредактировать файл /etc/ssh/sshd_config.
Клиент Linux, подключён к серверу Win. Вам нужно включить сервис на сервере. Доверяйте серверу на клиенте.
Клиент Win, подключён к серверу Win. Вам нужно включить сервис на сервере. Доверяйте серверу на клиенте.


В: Есть ли в PowerShell [grep]?
A:
В powershell используется команда select-string.
С точки зрения кодирования, select-string=smart, grep=stupid + имеет серьёзный недостаток :mrgreen:
Когда есть заголовок BOM, select-string автоматически распознаёт тип кодирования файла.
Когда нет заголовка BOM, нет необходимости менять окружение shell, как linux+grep, и сохранять файлы по определённому коду. Вам нужно только указать параметр -encoding согласно кодировке файла.
И у grep этой функции нет, то есть есть есть явный недостаток [невозможно указать тип кодирования файла].
Конечно, grep не бесполезен, у grep есть некоторые параметры, дополнительные уникальные функции, select-string — нет, здесь grep сильнее select-string.



Вопрос: Есть ли в PowerShell [eval]?
A:
Используйте Invoke-Expression для выполнения строк в powershell.



Вопрос: Есть ли в PowerShell хвост -f? Возможно выводить новые строки файла в реальном времени.
A:
Get-Content D:\a.txt -Tail 10 -ReadCount 0 -Подождите



В: Я хочу использовать небольшую клавиатуру и также 256-цветный терминал, так как же настроить xshell?
A:
Терминал --- Тип терминала --- [putty-256color] или [export TERM=putty-256color]
Терминал --- клавиатура --- по умолчанию или Linux.

Eterm-256color может
gnome-256color не работает
Konsole-256color не работает
Putty-256color
PowerShell Missionary Оригинальный обмен 2017-02-15
RXVT-256COLOR не работает
screen-256color не работает
ST-256COLOR
VTE-256COLOR не работает
xterm-256color не работает
Тот же принцип применим и к SecureCRT




Вопрос: Кто сильнее — оболочка или питон?
A:
У каждого есть свои сильные стороны, и они могут дополнять друг друга. Но они не дополняют друг друга. Подробнее об этом ниже.


Вопрос: Почему версия PowerShell для Linux больше подходит для написания скриптов операторами и обслуживающим персоналом? (По сравнению с версией Python для Linux)
A:
1 Python имеет объектно-ориентированные функции, и доступна версия PowerShell для Linux.

2 Python не имеет командной строки.
Python 2.1 не может быть терминалом по умолчанию для SSH, но PowerShell для Linux может. См. главу: «Две Linux-машины с SSHD? Как подключать и отправлять команды с помощью PowerShell? 》
2.2 Использование команд shell (awk, grep и т.д.) в python очень громоздко. Нужно добавить много синтаксиса и кода для PY. PowerShell для Linux запускает команды awk так же, как и bash.

В 3 Python нет труб. Очень сложно передавать значения между n [командной строкой]. Нужно добавить много синтаксиса и кода для PY. В версии PowerShell для Linux есть конвейеры, и запуск команд awk — это то же самое, что и bash.

4 Python имеет версию 2, версия 3 несовместима с Cancer! Вопрос. У PowerShell для Linux такой проблемы нет.
4.1 Эти вопросы содержат задачи по программированию.

Заключение:
Оболочные команды, такие как GREP, плохо подходят для поддержки программирования, не так эффективны, как задачи с кодированием 4.1 выше в PowerShell на домашнем уровне. Плюс эти 2,3 пункта.
Это заставляет пользователей Linux чувствовать себя некомфортно, но очень немногие используют внешние команды в py. [PY Command Library] и [Shell Command] мертвы и фактически не могут дополнять друг друга. Версия PS для Linux отличается.




Вопрос: Почему говорят, что PowerShell лучше Shell?
A:
1 PowerShell является объектно-ориентированным, и свойства возвращают напрямую доступные данные. Это гораздо реже, чем в языках скриптов персонажей (bat, shell), где требуется дедукция строк.
Рождаюсь с меньшим [контентом, от которого нужно уйти].
2 Подстановка поиска по строкам: в PowerShell есть методы, которые не требуют выхода, в классе .NET. Например:
[строка]$a = 'abc\\def'
$b = $a.replace('\','когда')
#返回: [ABC как def]
Чтобы определить, является ли IP легитимным, можно использовать метод TryParse() в классе IPAddress.
Короче говоря, мой совет — использовать как можно больше методов .net, использовать как можно меньше регулярных выражений или просто использовать простые обычные.
3 PowerShell использует ['] в качестве символа побега. ['] используется реже, чем [\], и гораздо реже используется как символ escape.
3.1 При написании скриптов базы данных возникает больше конфликтов ['].
Например, ['table'] будет конфликтовать с ['t], например ['biao'] с ['b], и позже я решил это с помощью ['table'].
Поиск и замена строк на 4 ps, имеет обычный движок, совместим с Linux и также использует [\] как escape.
Однако существует специальная функция escape строк [[Regex]::Escape()], которая сначала спрашивается, затем находится и заменяется, и код очень читаем.
$Original строка до escape = '\+\&*|]'
$escaped строка = [regex]::escape($original строка перед выходом)
-------------
Примеры сценариев
[строка]$a = 'abc\\def'
$Original строка до escape = '\'
$Escaped Строка = [Regex]::Escape($Original строка перед Escape) #[\]--->[\\]
$b = [Regex]::replace($a,$Escaped Строка, 'когда')
$b #返回 [ABC Dangdang DEF]
-------------
5 bash и awk, у каждого свой for, у каждого свой побег. В совокупности А легко воздействует на В, а А проглатывает В.
Также легко возникнуть проблемы при встрече с ['], ["], [\] и [*].
Это как носить два слоя длинных брюк: один слой натягивается, а другой тоже двигается, нужно заботиться о их совместимости.
Это рак и трудно решить.
Но при защитном случае эту проблему можно в определённой степени избежать. Для этого нужно, чтобы человек, написавший оболочку, исправил неприятную проблему.
[Поместите код awk в .awk файл отдельно, а не в командной строке]
У PowerShell такой проблемы нет: поставьте её в командную строку, вставьте в скрипт — это не действует.








Предыдущий:.net/C# использует атрибуты для реализации простого AOP
Следующий:.net/c# Speedy IP Open Port Scanner v2.0 Ultimate версия
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com