Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 11695|Отговор: 1

Урок за започване на PowerShell - версия v0.3

[Копирай линк]
Публикувано в 19.04.2017 г. 16:48:30 ч. | | |


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


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



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

Windows и Linux са различни:
В PowerShell скрипта на Win,
Поддържайте CR, LF, CRLF вход. Поддържа многонишкова и многопроцесна паралелност.
Лесно е да се вгради [Text2 звук], "Докладвай капитан, дискът е пълен".
Вграждането на графичен интерфейс е лесно. (Когато изскачащият прозорец ви помоли да въведете потребителско име, парола, единичен select, multiple select и т.н.) Това са завистите на Linux скриптовете.

PowerShell се различава от Python:
Лесно е да се използва китайски в PowerShell. Име на китайската писменост, име на променлива, коментар. Китайски единични кавички, китайски двойни кавички.
Автоматично разпознава кодиране GBK, UTF8, Unicode. Pipeline support обекти, на които Python скриптовете завиждат.



Прост пример за синтаксис 1: Магията на единичните и двойните кавички в powershell.
Единични кавички могат да се цитират с двойни кавички. И обратното.
Единични и двойни кавички могат да се @引用 с @''.
BAT не проработи.


Мисионерски разказвач:
Вложих много мисъл в дизайна на урока. Не прочетохте ли, че частта с историята в това, което написах, беше много [просто и грубо]? Историята се носи с един удар.
Но тъй като го казах, не е глупост, просто искам студентите да направят ясно, че от win7-win2008 [обективизацията] на скриптовете стана популярна. Води до следващата глава на обектно-ориентираното обяснение.
Всеки въвеждащ урок в PS трябва да споменава разликата между ориентиран към персонажи и обектно-ориентиран. Просто е уместно да се вмъкне тази тема в историята на командния ред.

---------- Глава 2 Чудесната -------------- на обектно-ориентираното
Какво е обект, защо е обектно-ориентиран и защо Microsoft подсилва колелото?

Обектно-ориентиран пример 1:
Въпрос: Ям 2.2 ябълки на ден, колко ябълки изям за 17 дни?
A:
Налични са 2.2 x 17. Възможно е също да се използва i++, поддържан от всеки скриптов език.
за ($i = 1; $i -LT 18; $i++)
{
        $Apple = 2.2 + $Apple
        пише-хост $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').дни #值152

за ($i=(дата на получаване '2020-01-20'); $i -lt (дата на получаване '2020-06-20'); $i=$i.adddays(1))
{
        $Apple = 2.2 + $Apple
        пише-хост $i,$Apple
}

Заключение: С обекта дата броенето на дни, часове и т.н. е лесно. [for,,i++] е често срещано, но никога не съм мислил, че числото I може да бъде тип дата.

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



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

----- [Числов тип]-----
system.int32, system.int64, system.decimal, system.double, System.Numerics.BigInteger безкрайно цяло число.
Често използван е 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 Има начин. Методът е програмата, кодът. Няма нужда да го пренаписваш сам. Bat определено не е добър, няма начин, има и лично писане, ненадеждно, не смеете да го използвате.
Методите могат да бъдат самонаписани ps функции, самонаписани методи в ps класове.
Методът, който пишеш сам, може временно да бъде [сливан] с трета страна.
Методът, който пишеш сам, може временно да бъде [сливан] с .net класа.

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

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


=== Лудо използване на мозъчно изгарящи редовни персонажи за филтриране на примери, прилепна версия на стандартния ping gateway ===
@echo off&setlocal enabledelayexpand.
Еко търси стандартния шлюз...

за /f "usebackq delims=" %%i в ('ipconfig /all') do (
echo %%i|find /i "gateway">nul|| echo %%i|find "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 gateway = (get-netroute -DestinationPrefix 0.0.0.0/0). NextHop
& ping.exe $ Default Gateway

# тест-връзка $ стандартен шлюз
=======================






В: Дори и обектно-ориентираното да е толкова добро, откъде идват тези обекти?
О: От библиотеката .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. Съдържа общи интерфейси за управление на системата, като скриптови файлове.
Linux
◦Ubuntu 14.04 \ 16.04
◦CentOS/RHEL 7 и по-нови
◦отворен SUSE 42 и нагоре
◦Arch Linux (archl inux няма номер на версията)
◦LINUX docker контейнер
◦Linux AppImage контейнер (преносим единичен двоичен файл) 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 User Group, DHCP, DNS, принтер, споделяне на файлове, IIS, диск, мрежова карта,



exchange2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx
Активен директориум 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-command 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 = реж. A:\pscode\temp183\aaa.txt
$file. Пълно име #返回全路径属性
$file. BaseName #返回文件名属性
$file. Разширение #返回扩展名属性
$file. LastWriteTime #返回最后写入时间属性



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


Използване на 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 -file "script.ps1" -argument 1 AAAA -parameter 2 1234
start-process -path xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'


В: Искам да стартирам скрипта с друг локален потребител, но PowerShell няма runa. Подобни команди в exe?
A:
В PowerShell има различни сесии.
IP + порт + потребителско име + парола = сесия, трябва само да сменя потребителското име, паролата и ти можеш да смениш разрешенията. Защото разрешенията са обвързани с потребителя.
По същия начин трябва да създам само n сесии за използване, без да сменям потребителите.
Най-важната new-pssession има параметъра -Credential, въведете потребителската парола, която не е същата като runas. Exe същото ли е? Какво друго е SmbSession?
Затова не мисля, че е необходимо да се използват руни в PowerShell. exe。
Просто трябва да използваш тези команди със сесия и Credential, нали?

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

Вижте командите с символа [сесия] в командата:
get-command *сесия*


В: Как да изпратя имейл чрез PowerShell?
A:
Изпращане-ИмейлСъобщение -Тема 'Тема'
-От "твоя hotmail акаунт @hotmail.com" -До "твоя QQ имейл @qq.com"
-SmtpServer "smtp.live.com" -порт 587 -useSsl -credential "вашият hotmail акаунт @hotmail.com" '
-Прикачени файлове $Attachments -BodyAsHTML -основно $HTML съдържанието на имейла

Бележка:
1 употребаxxx@QQ.com+ Твоята QQ парола + горната команда Изпращане на имейл не работи. Защото за сигурността на паролите за QQ, Tencent изисква независими пароли за имейл.  
2 Изпращането от QQ пощенска кутия по подразбиране не е възможно. Той е изключен и трябва да включиш SMTP в настройките.
3 PowerShell 3.0 и по-високи поддържат само параметри на порта. За win7 първо трябва да инсталираш най-новата версия на PS




В: Мониторирайте Windows CPU, диск, мрежа, вход и т.н.
A:
Монитор за производителност или
Get-Counter извлича данни за брояча на производителността както от локални, така и от отдалечени компютри.

В: Как мога да видя кои контраартикули са налични?
A:
Всичко е записано в ръководството.
Проверете кои са основните категории употреби:
Get-Counter -ListSet * | Sort-Object CounterSetName | Format-Table CounterSetName


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




В: Как да гледам логовете?
A:
Viewer на събития, или
get-eventlog



В: Как да изпълнявам струни?
A:
$cmd 1 = 'xxxx'
Invoke-Expression $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 не използва локомотив, дори и да е герой, PS скриптът също ще скача и ще докладва грешка!
vscode също е добър



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

PowerShell ISE + ISE плъгин [ISESteroids]

Инсталация:
Install-Module -Name ISESteroids

ISE бягания:
Старт-Стероиди





Въпрос: Какви инструменти използвате, за да направите цвета на кода красив?
A:
1 Използвайте горните инструменти, за да форматирате кода.
2 Използвайте PowerShellise + Missionary DIY цветово съвпадение от издание 2016.
3 Вземи снимката. Създава се най-приятният и красиво оцветен PowerShell код в света.

Всички горепосочени IDE са на китайски.




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




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



В: Какви са недостатъците на локомотива (powergui)?
A:
Не мога да зададем цвета на фона.




В: Какви са недостатъците на vscode?
A:
$ и името на променливата не са с един и същи цвят.
Дебъгинг функциите са бавни и понякога блокирани.




Въпрос: Какви са недостатъците на ISE?
A:
Не можете да изберете дали да запазите или конвертирате кодирането.
Отстъп към [интервал], [таб] и двете. В друг софтуер за редактиране на текст се показва отстъп.




---------- Глава 8 Истинско бойно упражнение --------------
Групата 6504748 и сама написа тази част.

5. Пример 1: Включване и изключване на услугата
6. Пример 2: Контрол на защитната стена (Отваряне, Затваряне, Правило)
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: Докато можеш да инсталираш Linux версията на PowerShell, ти трябват само ps1 скриптове, без sh скриптове.
Тълкуване:
1 Накратко, bash има само синтаксис, без команди и библиотеки.
2 bash има само 1% синтактични функции, PowerShell не може да го реализира. Това е нормално, няма две листа в света, които да са абсолютно еднакви.
Това означава, че ти трябва само скрипт за PS1, без глупости.
3 bash е твърде стара, функцията е същата, Powershell може да се имплементира и също така може да спести време, например 10 000 празни за Powershell, 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 и по-нови
◦отворен SUSE 42 и нагоре
◦Arch Linux (archl inux няма номер на версията)
◦LINUX docker контейнер
◦Linux AppImage контейнер (преносим единичен двоичен файл) https://github.com/probonopd/AppImageKit





В: Защо се казва, че командният ред на win е по-силен от Linux?
A:
Командите в 1 win са се развили в обектно-ориентиран 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 е по-удобен от неудобен. Shenma csv, excel, xml, json
SQL таблица, nosql таблица. html и т.н.




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



В: Защо все по-малко хора използват SED в Linux?
A:
Аргумент 1: AWK може да замени SED, но SED не може да замени AWK.
SED, тоест просто намери заместването. AWK има за внедряване на сложна обработка.

Аргумент 2: AWK използва стандартния регуляр, а регулярът на sed е същият като този на sed, но частите са различни.
Ученето на SED означава, че два набора несъвместими редовни стандарти в мозъка се борят помежду си.



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




Въпрос: Могат ли pipelines и AWK да се използват в PowerShell?
A:
Можеш да извикаш awk в PowerShell, точно както в Bash. Старите бойни изкуства са напълно турински.



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

Get-Content /xxx/yyy.txt | foreach-object {$_.split()[2]} #awk '{print $3}'


В: Как да реализирам функцията [awk -f a.awk файл] с помощта на 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? Как да се свържа с Linux SSH сървър от Win с 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 и др.) има драйвери или модули. П.С. и. .netprogram чрез връзката с драйвера изпраща команди и приема данни.
Ползите от използването на модули или драйвери за изпращане и получаване на [данни] са:
Данните ще бъдат конвертирани в .net обект, който от своя страна ще бъде преобразуван в PS обект. В противен случай всичко е конци, а [обектно-ориентираните бойни изкуства] на сектата PS са безполезни.


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




В: Има ли команда на Runas в 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 сървър. Трябва да включите услугата на сървъра. Доверявайте се на сървъра на клиента.


В: Има ли [grep] в PowerShell?
A:
Командата select-string се използва в powershell.
От гледна точка на кодирането, select-string=smart, grep=stupid + имат сериозен недостатък :mrgreen:
Когато има BOM заглавие, select-string автоматично разпознава типа кодиране на файла.
Когато няма BOM заглавие, няма нужда да се променя shell средата като linux+grep и няма нужда да се запазват файлове според определен код. Трябва само да зададеш параметъра -encoding според кодирането на файла.
А grep няма тази функция, тоест има твърд дефект [не може да се посочи тип кодиране на файл].
Разбира се, grep не е безполезен, grep има някои параметри, има допълнителни уникални функции, select-string няма, тук grep е по-силен от select-string.



В: Има ли [оценка] в PowerShell?
A:
Използвайте Invoke-Expression за изпълнение на низове в powershell.



Въпрос: Има ли опашка -f в PowerShell? Възможно е новогенерираните редове на файл да се изведат в реално време.
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:
Всяка има своите силни страни и може да се допълва взаимно. Но те не са допълващи се. Повече по темата по-долу.


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

2 Python няма команден ред.
2.1 Python не може да бъде стандартният терминал за SSH, но PowerShell за Linux може. Вижте главата: "Две Linux машини с SSHD? Как да свържа и изпращам команди с PowerShell? 》
2.2 Използването на shell команди (awk, grep и др.) в python е много тромаво. Трябва да добавя много py синтаксис и код. PowerShell за Linux изпълнява awk командите точно като bash.

3 Python няма тръби. Много е трудно да се предават стойности между n [командни програми]. Трябва да добавя много py синтаксис и код. Linux версията на PowerShell има конвейери, а изпълнението на awk команди е същото като при bash.

4 Python има версия 2, версия 3 не е съвместима с Cancer! Въпрос. PowerShell за Linux няма такъв проблем.
4.1 Тези въпроси съдържат проблеми с кодирането.

Заключение:
Shell команди като GREP не са добри за поддръжка на програмиране, не са толкова добри, колкото проблемите с кодирането на 4.1 по-горе в PowerShell у дома. Плюс горните 2,3 точки.
Това кара хората на Linux да се чувстват неудобно, но много малко хора използват външни команди в py. [PY Command Library] и [Shell Command] са мъртви и на практика не могат да се допълват взаимно. Linux версията на PS е различна.




Въпрос: Защо се казва, че PowerShell е по-добър от Shell?
A:
1 PowerShell е обектно-ориентиран и свойствата връщат директно достъпни данни. Това е много по-рядко срещано, отколкото в езиците за скриптове на символи (bat, shell), които изискват изводи по низове.
Роден с по-малко [съдържание, което трябва да се избяга].
2 Подмяна на търсене на низ, има методи в PowerShell, които не изискват бягство, в класа .NET. Например:
[string]$a = 'abc\\def'
$b = $a.replace('\\','кога')
#返回: [ABC определено]
За да определите дали IP е легитимен, можете да използвате метода TryParse() в класа IPAddress.
Накратко, моят съвет е да използваш колкото се може повече .net методи, да използваш възможно най-малко regex или просто да използваш обикновени стандарти.
3 PowerShell използва ['] като символ за бягство. ['] се използва по-рядко от [\] и много по-рядко се използва като символ за бягство.
3.1 При писане на скриптове за бази данни има повече конфликти на ['].
Например, ['table'] ще конфликтира с ['t], например ['biao'] ще се сблъска с ['b], а по-късно го реших с ['table'].
Търсене и замяна на низове с 4 ps, има обикновен енджин, съвместим с Linux и използва [\] като escape.
Въпреки това има специална функция за избягване на низове [[Regex]::Escape()], която първо се избягва, след което се намира и заменя, и кодът е много четим.
$Original низ преди escape = '\+\&*|]'
$escaped низ = [regex]::escape($original низ преди излизане)
-------------
Примери за писменост
[string]$a = 'abc\\def'
$Original низ преди escape = '\'
$Escaped Низ = [Regex]::Escape($Original Низ преди Escape) #[\]--->[\\]
$b = [Regex]::replace($a,$Escaped String, 'Кога')
$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