---------- Capitolo 1 Storia degli script per Windows --------------
1 La prima generazione di pipistrelli script. È iniziato con win95, win98--------- e si è concluso intorno al 2008. Funzionalità: comandi orientati ai caratteri, con riga di comando e pipeline. 2 Script di seconda generazione VBS. Funzionalità: Solo funzioni, valori di passaggio, chiamate. 3 Powershell script di terza generazione. A partire dal 2012, il comando si è completamente evoluto verso orientamento agli oggetti. Ad esempio, tasklist e get-process sono caratteristiche della ruota ripetute: orientate agli oggetti. Ereditando i vantaggi delle due generazioni precedenti di scrittura.
D: Perché imparare PowerShell? Un: Il missionario rispose che avrebbe studiato per un anno e cinque anni per BAT. Sintassi semplice e funzioni di libreria efficaci! L'unico al mondo che supporta oggetti con comandi su entrambi i lati della pipeline. cioè comando orientato agli oggetti 1 | Comando orientato agli oggetti 2
Windows e Linux sono diversi: Nello script PowerShell su Win, Supporta CR, LF, CRLF entra. Supportano la concorrenza multithreading e multi-processo. È facile incorporare [suono Text2], "Rapporto Capitano, disco pieno". Incorporare un'interfaccia grafica è semplice. (Quando, l'interfaccia pop-up ti chiede di inserire un nome utente, una password, una singola selezione, più selezione, ecc.) Queste sono le gelosie degli script Linux.
PowerShell è diverso da Python: È facile usare il cinese in PowerShell. Nome dello script cinese, nome della variabile, commento. Virgolette singole cinesi, virgolette doppie cinesi. Riconosce automaticamente la codifica GBK, UTF8, Unicode. Oggetti di supporto pipeline, di cui gli script Python invidiano.
Esempio di sintassi semplice 1: La magia delle virgolette singole e doppie di PowerShell. Le virgolette singole possono essere citate con doppie virgolette. E viceversa. Le virgolette singole e doppie possono essere @引用 con @''. BAT non ha funzionato.
Narratore missionario: Ho riflettuto molto sul design del tutorial. Non hai letto che la parte storica di quello che ho scritto era molto [semplice e grezza]? La storia si porta con un solo colpo. Ma visto che l'ho detto, non è una sciocchezza, voglio solo che gli studenti chiariscano che da win7-win2008, la [oggettivazione] degli script è diventata popolare. Porta al capitolo successivo della spiegazione orientata agli oggetti. Qualsiasi tutorial introduttivo su PS dovrebbe menzionare la differenza tra orientato al carattere e orientato agli oggetti. È semplicemente appropriato inserire questo argomento nella cronologia della riga di comando.
---------- Capitolo 2 Il meraviglioso -------------- dell'orientamento agli oggetti Cos'è un oggetto, perché è orientato agli oggetti e perché Microsoft rinforza la ruota?
Esempio orientato agli oggetti 1: Domanda: mangio 2,2 mele al giorno, quante mele mangio in 17 giorni? Un: È disponibile un 2.2 x 17. È anche possibile utilizzare i++ supportato da qualsiasi linguaggio di scripting. per ($i = 1; $i -18; $i++)
{ $Apple = 2,2 + $Apple write-host $i.$Apple
}
-------------------------------------------- Appena la domanda cambia, non ti dirò il numero di giorni, ti dirò solo, Mangio 2,2 mele al giorno, quante mele mangio dal 20 gennaio al 20 giugno 2017? $days = ((get-date '20-06-2017') - (get-date '20-01-2017')).giorni #值151
Mangio 2,2 mele al giorno, quante mele mangio dal 20 gennaio al 20 giugno 2020? $days = ((get-date '20-06-2020') - (get-date '2020-01-20')).giorni #值152
per ($i=(get-date '20-01-2020'); $i -lt (get-data 2020-06-20); $i=$i.adddays(1))
{ $Apple = 2,2 + $Apple write-host $i.$Apple
}
Conclusione: Con l'oggetto data, contare giorni, ore, ecc., è semplice. [for,,i++] è comune, ma non avrei mai pensato che il numero i potesse essere di tipo data.
------------------------------------------
Quali sono i vantaggi dell'orientamento agli oggetti? Prima dell'orientamento agli oggetti, abbiamo solo stringhe e interi. 1 C'è un oggetto. ----- [Tipo di personaggio]----- Il glifo ha system.string, che è il più basilare. Memoria System.Text.StringBuilder, stringhe di grandi dimensioni che cambiano frequentemente
----- [Tipo numerico]----- system.int32, system.int64, system.decimal, system.double, System.Numerics.BigInteger intero infinito. Comunemente usato è int32, decimale.
Se 1/3*3 sia uguale a 1 o 0,9999 dipende dal tipo di dato. ----- [Schiera]----- array system.array System.Arraylist cambia frequentemente, come riscrivere, aggiungere o cancellare sempre, devi usare questo. La velocità è relativamente alta. System.Collections.Generic.HashSet array di deduplicazione. Lo stesso vale per l'oggetto set di Python.
-----【Forma】----- 1 output di comando. Per esempio, dir, get-process. 2. Quando scriviamo script, usiamo oggetti e attributi per costruire.
----- [Altri] ----- tabelle hash, file, ecc.
Il 2 ha attributi. Gli attributi sono argomenti e sono più piccoli delle stringhe. Prima che non ci siano attributi, dobbiamo filtrare e filtrare stringhe con [brain-burning regular], chiamata [stringa deduzione]. Se hai attributi, non ti servono. 3 C'è un modo. Il metodo è il programma, il codice. Non c'è bisogno di riscriverla da soli. Bat sicuramente non è una buona idea, non c'è modo, c'è anche una scrittura personale, inaffidabile, non osa usarla. I metodi possono essere funzioni ps auto-scritte, metodi auto-scritti nelle classi ps. Il metodo che scrivi tu stesso può essere temporaneamente [fuso] in una classe di terze parti. Il metodo che scrivi tu stesso può essere temporaneamente [fuso] nella classe .net.
Quali sono gli svantaggi dell'orientamento agli oggetti? Il predicatore sta insegnando PowerShell a chi usa winxp. La persona ha detto che PowerShell non è buono, che l'oggetto richiede troppo memoria, e ha ragione. In cmd restituisco 100 nomi file (stringhe) con dir. In PowerShell uso dir per restituire 100 oggetti file, e PowerShell occupa molta memoria. Ma ora è diverso: 1. Contenuti non necessari non dovrebbero esistere in variabili. Oppure distruggerlo subito dopo l'uso per ridurre l'uso di memoria. 2. La perdita di memoria è sufficiente. Poiché le prestazioni della CPU non possono più aumentare, stiamo freneticamente aumentando la memoria nel tentativo di scambiare spazio per tempo. 3. Vogliamo funzionalità più potenti, e l'orientamento agli oggetti è oggi la cosa più basilare. Quale non è orientato agli oggetti, py, php, java, .net, c++?
Sommario: 1 Gli oggetti sono più grandi e richiedono più memoria rispetto alle stringhe. 2. Esistono più metodi per l'orientamento agli oggetti e funzioni più forti. 3 attributi sono minori della granularità della stringa, che è estremamente comoda da usare. Evitavo l'uso folle di fili normali che bruciavano il cervello per filtrare]!
=== Uso folle di abituali che bruciano il cervello per filtrare gli esempi, versione bat del gateway predefinito ping === @echo off&set, locale enableableexpansioneddelayed Echo sta cercando il gateway predefinito...
per /f "usebackq delims=" %%i in ('ipconfig /all') do ( Echo %%i|Find /i "gateway">Nul|| echo %%i|find "default gateway" >nul se "!errorlevel!" =="0" ( per /f "tokens=2 delims=:" %%a in ("%%i") fare per /f "delims= " %%m in ("%%a") do impostare ipgate=%%m
)
)
Il gateway predefinito di Echo è: !ipgate! =========== ping al gateway.ps1 predefinito============ $default gateway = (get-netroute -DestinationPrefix 0.0.0.0/0). NextHop & ping.exe $ Gateway predefinito
# connessione di test $ gateway predefinito =======================
D: Anche se l'orientamento agli oggetti è così valido, da dove provengono questi oggetti? R: Dalla libreria .net.
---------- Capitolo 3 Introduzione a .NET --------------
D: Quanti branch di versione ha .NET Core? Un: Attualmente esistono tre versioni. .NET 2.0 L'ultima versione di .NET 3.51 .NET 4.0 L'ultima versione di .NET 4.70 .NET Core 1.x L'ultima versione di .NET 1.2 per sistemi Apple, Linux e sistemi embedded. .NET Core 2.x L'ultima versione di .NET 2.0 per sistemi Apple, Linux e sistemi embedded.
D: Quanti rami funzionali ha .net? Un: Sezione desktop in .NET. WinForm. Per sviluppare finestre desktop. Libreria sonora asp.net in .NET e .NET Core. Libreria di funzioni del server web. Usavano aprire un server web B/S. F# in .NET e .NET Core. Contiene librerie matematiche, librerie di funzioni trigonometriche, ecc. PowerShell in .NET e .NET Core. Contiene interfacce comuni di gestione del sistema come file di script. Linux ◦Ubuntu 14.04 \ 16.04 ◦CentOS/RHEL 7 e oltre ◦open SUSE 42 e superiori ◦Arch Linux (archl inux non ha un numero di versione) ◦LINUX container docker ◦Linux AppImage container (applicazione portatile binaria singola) https://github.com/probonopd/AppImageKit
MAC OS X ◦OS X 10.11
D: Come si collega un programma .NET (programma C#) a un server MySQL? Un: Vai sul sito ufficiale di mysql per scaricare il connettore per il linguaggio .NET. mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll Aggiungi la classe MySql.Data a .net e aggiungi l'interfaccia del database.
Conclusione: Prima la macchina WinXP installa .net 3.51, Windows 7 e Windows 2008, prima installa .net 4.62 o superiore.
.NET esiste da molti anni e ci sono pochi software che supportano .NET oltre a Java. Tutti i rami .net, le interfacce (database, WeChat, ecc.). ) Quelle DLL, quelle librerie, PowerShell possono essere chiamate. È esattamente lo stesso dell'exe scritto in C#.
D: Oltre all'interfaccia di ramo .NET, quali sono le librerie (moduli) di PowerShell? Un: Per favore, guarda il prossimo capitolo
---------- Capitolo 4 Librerie integrate, librerie esterne e librerie di terze parti comunemente utilizzate in PowerShell --------------
Aiuto missionario: Questo capitolo non può essere discusso, ma è solo un elenco di biblioteche e manuali. Aggiungi questo capitolo ai preferiti. Dopo aver esaminato queste librerie, capirai cosa può fare PowerShell.
Indirizzo manuale di Win2012: (modulo AD più comunemente utilizzato)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx Gestione dei gruppi utenti AD, DHCP, DNS, stampante, condivisione file, IIS, disco, scheda di rete,
exchange2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx Active Directory 12 Anti-Spam e Anti-Malware 59 Accesso client 100 Agente di Estensione 4 Indirizzi email e Rubriche 37 Federazione e configurazione ibrida Alta disponibilità Flusso di posta Cassetta postale Database delle cassette postali Server di cassette postali Spostarsi e migrare Organizzazione Permessi Politiche e conformità Sicurezza Salute, monitoraggio e prestazioni del server Condividi e collabora Messaggio Unificato Utenti e gruppi
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 e macchine virtuali di livello enterprise.
Clienti: Servizi, processi, log, registri, directory di file, gestione remota. Compiti a tempo.
Internet: FTP, mail, plug-in client SSH per connessione server Linux.
Testo: XML, HTML, CVS, JSON, EXCEL, ecc.
Voce di testo 2
Interfaccia grafica.
Microsoft Scripting Center
https://gallery.technet.microsoft.com/scrip{过滤}tcenter/
Fonte software PowerShell sito ufficiale --- libreria ufficiale PowerShell.
https://www.powershellgallery.com
Le altre librerie Niu x sono tutte su github. Inoltre, i missionari pubblicano regolarmente il [Niu x Magic Weapon] di [Hidden Foot Pavilion], che è una utile libreria di terze parti di PowerShell.
---------- Capitolo 5 I principianti devono imparare come aiutare nell'uso dei comandi--------------
D: Come faccio a conoscere la versione PowerShell? Un: $PSVersionTable
D: Non conosco il modulo, come trovarlo? Un: get-module -ListAvailable
D: Come posso trovare i comandi se ne conosco solo una parte? Un: get-command *servizio*
D: Conosco il comando, ma non so quali parametri ci siano nel comando, come elencarli? Un: get-help write-host -Parametro * show-command write-host
D: Conosco il parametro, ma non so quale comando abbia questo parametro, come posso trovare il comando? Un: Codifica get-command -ParameterName
D: Come posso ricevere aiuto con un comando dalla riga di comando? Un: Getta-aiuto per ottenere appuntamento
-Esempi di comandi -manuale online online
D: Non conosco il metodo attribute del comando (non conosco l'oggetto), come trovarlo? Un: "ABC" | get-member get-date | get-member
D: Dov'è il manuale cinese .NET? Un: msdn。 Le proprietà e i metodi più basilari delle stringhe sono nel manuale.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx
---------- Capitolo 6 Introduzione ai comandi comuni --------------
Il primo comando da imparare è dir D: Perché usare powershell dir [cioè Get-ChildItem] invece di cmd dir? Un: Orientato agli oggetti, metodo forte e molte qualità. $file = dir a:\pscode\temp183\aaa.txt $file. Nome completo #返回全路径属性 $file. BaseName #返回文件名属性 $file. Estensione #返回扩展名属性 $file. LastWriteTime #返回最后写入时间属性
La prima sintassi da imparare è la sintassi degli array. $a = @(comando xxx) D: A volte bisogna usare [comandi esterni basati su caratteri] per dividere i valori di ritorno in array per unità di comportamento. Un: $a = @(ipconfig) $a[8] #第9行
Utilizzo get-childitem: Parametri aggiunti in PowerShell 3.0 e versioni successive
get-childitem d:\xxx -file #过滤, solo file di output -Filtraggio delle directory, solo directory di output -Filtraggio nascosto, solo l'output nascosto
D: Apri un file, segmenta per comportamento, metti in un array? Un: $a = Get-Content a:\pscode\temp183\aaa.txt -ReadCount 0
D: Aprire un file, come una stringa grande, e memorizzare l'intera variabile? Un: $a = Get-Content a:\pscode\temp183\aaa.txt -raw
$a,$b,$c = 1,2,3
D: Come faccio a eseguire i comandi in background? Un: Nell'antichità esisteva un "comando" cmd /c. Ora esistono powershell /c "comando", o powershell -c "comando", PowerShell -file "script.ps1" -argomento 1 aaaa -parametro 2 1234 start-process -path xxx.exe -ArgumentList '-parametro1 aaaa -parametro2 1234'
D: Voglio eseguire lo script con un altro utente locale, ma PowerShell non ha runas. Comando simile a un exe? Un: Ci sono varie sessioni in PowerShell. IP + porta + nome utente + password = una sessione, devo solo cambiare il nome utente, cambiare la password, e puoi cambiare i permessi. Perché i permessi sono legati all'utente. Allo stesso modo, devo solo creare n sessioni da usare, senza cambiare utente. Il più importante new-pssession ha il parametro -Credential, inserisci la password utente, che non è la stessa di runas. Exe è lo stesso? Cos'altro è SmbSession? Quindi non penso sia necessario usare le rune in PowerShell. exe。 Devi solo usare quei comandi con session e Credential, giusto?
Controlla i comandi con il nome [Credential] nel nome del parametro: get-command - Credential ParameterName
Visualizza i comandi con il carattere [session] nel comando: get-command *session*
D: Come posso inviare un'email usando PowerShell? Un: Invia-MessaggioMail -Oggetto 'Oggetto' -Da "il tuo account hotmail @hotmail.com" -A "la tua email QQ @qq.com" ' -SmtpServer "smtp.live.com" -porta 587 -useSsl -credenziale "il tuo account hotmail @hotmail.com" ' -Allegati $Attachments -BodyAsHTML -corpo $HTML il contenuto dell'email
Nota: 1 utilizzoxxx@QQ.com+ La tua password QQ + il comando sopra Inviare un'email non funziona. Per la sicurezza delle password di QQ, Tencent richiede password email indipendenti. 2 L'invio dalla cassetta QQ non è possibile di default. È disattivato e devi attivare SMTP nelle impostazioni. 3 PowerShell 3.0 e superiori supportano solo i parametri delle porte. Per Win7, devi prima installare l'ultima versione di PS
D: Monitora la CPU, il disco, la rete, l'IO, ecc. Un: Monitor delle prestazioni o Get-Counter recupera i dati dei contatori di prestazioni sia da computer locali che remoti.
D: Come posso vedere quali oggetti di banco sono disponibili? Un: È tutto nel manuale. Controlla quali sono le principali categorie di utilizzo: Get-Counter -ListSet * | Ordin-Object CounterSetName | Format-Table CounterSetName
Ad esempio, ora so che la categoria disco è (PhysicalDisk), e poi controllo le sottocategorie nel disco, usando: (Get-Counter -ListSet PhysicalDisk). Sentieri
D: Come posso visualizzare i registri? Un: Visualizzatore di eventi, oppure get-eventlog
D: Come faccio a eseguire le stringhe? Un: $cmd 1 = 'xxxx' Invocazione-Espressione $cmd 1
Beh, abbiamo imparato molto sui singoli comandi, diamo un'occhiata all'esecuzione degli script Powershell.
---------- Capitolo 7 Scripting, Debug e Esecuzione -------------- PS1 Uno script è una combinazione e sovrapposizione di istruzioni di comando. Il copione è colla, vai in giro cercando altri da chiamare, cerca le ruote per assemblare l'auto. Invece di fare ruote, per essere usate dagli altri.
Cainiao chiese: Come scrivere una sceneggiatura? Il vecchio uccello rispose: 1 I dettagli del problema devono essere chiariti. Per esempio: fai delle mooncake. 2 Le idee per risolvere i problemi sono anch'esse sostanzialmente completate. Farina e acqua, metti il ripieno, cuoci a vapore. 3 Quali comandi e variabili usare. Aggiungi cinque chicchi, mettili in uno stampo e spremi. 4 Scrivi approssimativamente prima, scrivi approssimativamente. 5 Debug superato. 6 Scrivi nei dettagli. Considera la situazione dell'errore, più il codice di errore, il messaggio di errore. Rimuovi il codice soggetto a errori che non è facilmente compatibile. Riscrivi codice che non funziona bene. Fino a questo punto, una buona sceneggiatura potrebbe non essere buona, ma dovrebbe essere molto utile. 7 Finemente lavorato. Refattorizzazione, scrivere frammenti di codice riutilizzati in funzioni. Riscrivi i nomi delle variabili in modo che le persone possano capirli a colpo d'occhio. Formatta bene il codice e fai l'indentazione.
D: Quale IDE viene usato per scrivere la PS1? Un: La più consigliata è usare Visual Studio Code, più il plug-in PowerShell. Funzionalità: prompt di codice, autocompletamento, formattazione del codice, rientro per scegliere spazio o tabula, impostazioni di codifica file. Esiste un plugin chiamato FTP-sync, che può scrivere script PS1 nel VSCode di Windows e sincronizzarli automaticamente con la directory Linux quando vengono salvati.
D: Quali strumenti vengono usati per debugare la PS1? Un: La vita powergui più raccomandata non utilizza una locomotiva, anche se è un eroe, anche lo script PS salterà e segnala un errore! VSCODE va bene anche
D: Quali strumenti usate per la formattazione del codice? Un: Tutto ciò che dovrebbe essere incavato è indentato, e i segni uguali sono allineati.
PowerShell ISE + Plugin ISE [ISESteroids]
Installazione: Install-Module -Name ISESteroids
ISE corre: Start-Steroids
D: Quali strumenti usate per rendere il codice colorante più bello? Un: 1 Usa gli strumenti sopra indicati per formattare il codice. 2 Usa PowerShellise + Missionary DIY Colori abbinamento edizione 2016. 3 Prendi la foto. Viene prodotto il codice PowerShell più piacevole e splendidamente colorato al mondo.
Tutti gli IDE sopra elencati sono in cinese.
D: Come si chiama una sceneggiatura? xxx.ps1 Un: Si consiglia di iniziare con 1---2 lettere e usare il nome cinese del file per il resto. cioè [bf fa il backup di tutte le files_ vecchie e cancella .ps1 di 10 giorni fa] In questo modo, digita prima [bf], poi premi tab per completare il nome dello script.
D: Come posso abilitare il permesso di esecuzione dello script PowerShell? Un: echo Il seguente codice può essere eseguito in cmd con i privilegi amministratore oppure in PowerShell con i privilegi amministratore. echo se usi un remoto remoto PowerShell. Sia la macchina locale che quella remota devono essere eseguite con privilegi amministratore. "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -comando "Set-ExecutionPolicy -ExecutionPolicy Unrestricted" "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -comando "Set-ExecutionPolicy -ExecutionPolicy Unrestricted" & "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -comando "Set-ExecutionPolicy -ExecutionPolicy Unrestricted" & "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -comando "Set-ExecutionPolicy -ExecutionPolicy Unrestricted" pausa
D: Quali sono gli svantaggi della locomotiva (powergui)? Un: Impossibile impostare il colore dello sfondo.
D: Quali sono gli svantaggi di VSCODE? Un: $ e nome della variabile non hanno lo stesso colore. Le funzioni di debug sono lente e a volte bloccate.
D: Quali sono gli svantaggi dell'ISE? Un: Non puoi scegliere di salvare o convertire la codifica. Rientrare a [spazio], [tabula] entrambi. In altri software di editing del testo, viene visualizzata l'indentazione.
---------- Capitolo 8 Esercitazione di Combattimento Reale -------------- Il gruppo 6504748 e scrisse questa parte da solo.
5. Esempio 1: Accendi e disattiva il servizio 6. Esempio 2: Firewall di controllo (Apri, Chiudi, Regola) 7. Esempio 3: Impostare una policy (ad esempio la policy delle password)
---------- Capitolo 9 Questi corsi opzionali aggiuntivi ti interessa? -------------- Script PowerShell, argomenti da riga di comando, passano valori e esempi di variabili di blink
http://www.cnblogs.com/piapia/p/5910255.html
Lascia che Powershell esegue solo uno script alla volta (esempio di esclusione reciproca del processo)
http://www.cnblogs.com/piapia/p/5647205.html
interfaccia personaggio powershell, interfaccia powershell più WPF, gioco 2048
http://www.cnblogs.com/piapia/p/5531945.html
Due crawler in PowerShell
http://www.cnblogs.com/piapia/p/5367556.html
Script PowerShell: Generatore di password casuali
http://www.cnblogs.com/piapia/p/5184114.html
Esempio di un algoritmo ricorsivo PowerShell
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html
Calcolatrice vocale PowerShell
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html
1 Elencare tutti i file cifrati EFS. 2Decrittografia di tutti i file cifrati EFS
http://www.cnblogs.com/piapia/p/4702514.html È uno strumento scritto per amministratori di sistema e amministratori di rete. Dopo che un dipendente lascia il lavoro, il suo disco assume che ci siano 10.000 file (directory), di cui 3 directory criptate da EFS. In Esplora, questi tre file sono verdi. Ma se clicchi su (10.000 cataloghi) uno per uno, che sia verde o meno, sarai esausto. In questo momento, l'amministratore di rete utilizza l'account WIN del dipendente, effettua l'accesso al PC del dipendente e utilizza questo script per elencare tutti i file criptati EFS.
---------- Capitolo 10 Per favore fai una domanda-------------- Signore e signori, se c'è qualcosa da segnalare, lasciate la corte senza nulla.
----------Capitolo 11 Capitolo Linux--------------
Missionary: Finché puoi installare la versione Linux di PowerShell, ti servono solo script PS1, niente script SH. Interpretazione: 1 In breve, bash ha solo sintassi, nessun comando e libreria. 2 Bash ha solo l'1% di funzioni sintattiche, PowerShell non può implementarlo. Questo è normale, nessuna foglie è esattamente uguale al mondo. Questo significa che ti serve solo lo script PS1, niente sh. 3 bash è troppo vecchio, la stessa funzione, Powershell può essere implementato e può anche risparmiare tempo, ad esempio 10.000 fors vuoti, Powershell deve risparmiare il 90% del tempo. 4 Impara a usare /usr/bin/powershell invece di /usr/bin/bash. Altri comandi Linux, pipeline, vecchi kung fu, ecc., vengono usati esattamente come in bash. 5 Usare gradualmente comandi e librerie PowerShell orientati agli oggetti, semplici e potenti, invece di comandi Linux che faticano il cervello, o entrambi. ---Questo è il principio generale, la linea generale.
D: Quali versioni di Linux possono installare PowerShell? Un: ◦Ubuntu 14.04 / 16.04 ◦CentOS/RHEL 7 e oltre ◦open SUSE 42 e superiori ◦Arch Linux (archl inux non ha un numero di versione) ◦LINUX container docker ◦Linux AppImage container (applicazione portatile binaria singola) https://github.com/probonopd/AppImageKit
D: Perché si dice che la riga di comando di Windows sia più potente di Linux? Un: I comandi in 1 win si sono evoluti in PowerShell orientato agli oggetti. Linux non funziona ancora. Da win7 a win2012r2, l'evoluzione finisce.
2 Ho sentito dire che Unix ha molti comandi Linux ed è molto potente. Ma ora ti dico che i comandi PowerShell sono almeno dieci volte più alti di quelli Linux. Comunque, non ho imparato per tutta la vita.
3 Linux dipende più dal grafico, con troppo pochi comandi. E il comando win è molto più di Linux. 3.1 In qualsiasi Linux, i comandi nel server di posta sono sempre più completi rispetto a Exchange? Più comodo che uno scambio? 3.2 Il binding del server DNS di Linux non è comodo come il comando DNS di win. Bind ha un [comando] per aggiungere un record ipv4 A a un nome di dominio? Non dipende ancora dalla grafica web? Alcuni dicono di usare nsupdate. Non si tratta di scrivere un messaggio e poi farlo seguire. Qual è la differenza tra sostituire il [file di zona DNS] con sed e poi ricaricare la [zona DNS]?
4 Nella nuova versione di win, o in powershell, è tutto [comando + parametro]. E la maggior parte di Linux è ancora [sed text]. 4.1 Prendi come esempio l'indirizzo IP assegnato alla scheda di rete. Connessione NMCLI aggiungi tipo Ethernet Con-name NEW_STATIC ifname ENO1234567 IP4 192.168.1.111 GW4 192.168.1.1, Non è più comodo che usare SED per fare scraping del file ifcfg-eth0?
5 Qualsiasi linguaggio elabora dati, così come lo fa gli scripting. Con l'aiuto degli oggetti, PowerShell è più comodo che awk. Shenma csv, excel, xml, json Tabella SQL, tabella NoSQL. html, ecc.
D: Come implementa PowerShell [sed -i "s/cosa cercare/sostituire con /g"]? Un: @(Get-Content filename) -sostituisci 'aaa', 'bbb' | Nome file Set-Content $aaa Cioè, apri il file, lo sostituisci, lo salvi.
D: Perché sempre meno persone usano SED in Linux? Un: Argomento 1: AWK può sostituire SED, ma SED non può sostituire AWK. sed, cioè, semplicemente trovare la sostituzione. AWK ha per e simili per implementare processi complessi.
Argomento 2: AWK usa il regolare standard, e il regolare di sed è lo stesso di sed, ma le parti sono diverse. Imparare il SED significa che due serie di standard regolari incompatibili nel cervello si stanno scontrando.
D: Quindi è giusto imparare AWK? Un: Imparare PowerShell è più facile che imparare AWK. PowerShell usa [split e poi split], [if e se], where-object, string.substing(), string[-3], ecc. Scomponi il problema della stringa livello per strato. Più semplice del normale Awk.
D: Pipeline e AWK possono essere utilizzati in PowerShell? Un: Puoi chiamare awk in PowerShell, esattamente come in Bash. Le vecchie arti marziali sono completamente Torino.
D: Come implementare la funzione [awk '{print $3}'] in PowerShell? Un: ($line -split "\s+|\t+") [0] #第一行 ($line -split "\s+|\t+") [2] #第三行
Get-Content /xxx/yyy.txt | foreach-object {$_.split()[2]} #awk '{print $3}'
D: Come implementare la funzione [awk -f a.awk file] usando PowerShell? Un: In sostanza, questa è una funzione di filtraggio che utilizza un pipe. In PowerShell, questo si chiama filtro o filtro. PowerShell supporta la combinazione di comando + pipe + filtro. Come in Comando 1 | Filtro 1 | Comando 2 | Filtro 2 | Filtro 3 filtro filtro1
{ Funzionalità simile a AWK
}
D: Esiste [xargs] in PowerShell? Un: La variabile pipe utilizzata nella pipeline si chiama [$psitem], e il suo alias è [$_]. PowerShell utilizza foreach-object e $_ per implementare la funzione degli xarg.
D: C'è un numero [<] [<<] in PowerShell? Un: No. Forse il simbolo [<] da destra a sinistra è un pensiero anti-umano. Molti comandi in PowerShell sono stati cambiati da sinistra a destra. Se get-random < (1..100) non è legale in PowerShell, quella legale dovrebbe essere get-random -inputobject (1..100), oppure 1. 100 |get-random Meno dell'1% dei comandi strani [deve] basarsi sul simbolo [<], che può essere ottenuto chiamando cmd in PowerShell o bash (PowerShell per Linux) in PowerShell. Ad esempio, $a = bash -x "comando 1 < comando 2" #linux Ad esempio, $a = cmd -c "comando 1 < comando 2" #cmd
D: C'è un comando aspettarsi in PowerShell? Come connettersi a un server SSH Linux da Win con PowerShell? Un: 1. Sì. Per alcune esigenze di risposta delle porte strane e parziali, esistono moduli di terze parti. 2 No. PowerShell non usa il comando aspettare, ma utilizza una sessione.
Usa Powershell + libreria client SSH + IP + porta + nome utente + password per combinare una connessione e inviare comandi a questa connessione. Il codice è il seguente: $connection 1 = New-SSHSession -ComputerName 1.1.1.1 -Porta 22 -Credential aaaa #将提示输入密码 $to return = Invoke-SSHCommand -Command {cat /etc/issue} -SSHSession $Connection 1
Questa funzionalità standard come (MongoDB, mysql, ssh, ftp, http, telnet, ecc.) ha driver o moduli. PS e. .netprogram, tramite la connessione del driver, invia comandi e accetta dati. I vantaggi dell'uso di moduli o driver per inviare e ricevere [dati] sono: I dati verranno convertiti in un oggetto .net, che a sua volta sarà convertito in un oggetto PS. Altrimenti, sono solo corde, e le [arti marziali orientate agli oggetti] della setta PS sono tutte inutili.
Prendendo MongoDB come esempio, quali sono i vantaggi di usare moduli o driver per inviare comandi? Chi parla? Ritengo che i benefici siano: 1 Multithreading. Il thread in background gira e non occupa il thread corrente. 2. Possiamo [disconnetterci a metà] dalla sessione in qualsiasi momento, eseguire altro codice PS, funzioni e [tornare alla sessione in qualsiasi momento]. Gli script sono più flessibili da scrivere e facili da debug. 3session porta più utenti e utenti diversi possono avere permessi server differenti.
D: Esiste un comando su e runas in PowerShell? Come eseguire il comando di un altro utente con PowerShell? Un: No. In PowerShell, eseguire comandi nativi Linux e pipeline è semplice. Per esempio: sshaaa@127.0.0.1"Eseguito con privilegi AAA utente, comando xxx" sshpass -p user_password sshaaa@192.168.1.1
D: Due macchine Linux con SSHD? Come connettersi e inviare comandi con PowerShell? Un: Oltre al metodo sopra, puoi anche usare il metodo per creare una nuova sessione Linux. (Collegato da Linux a un altro SSHD) Nota: Questo metodo richiede di modificare il file /etc/ssh/sshd_config. Aggiungi la seguente riga Powershell del sottosistema powershell -sshs -NoLogo -NoProfile Dopodiché, riavvia il server SSHD. Il manuale dettagliato è qui:
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting
Comando: $connect 2 = New-PSSession -Host Name 127.0.0.1 -UserName user006 #手动输入密码或用-KeyFilePath opzione invoke-command -session $connect 2 -scrip{filter}tBlock {new-item ~/ccc.txt}
Sommario: Client Win collegato al server Linux. Attualmente, sono necessari moduli di terze parti, ovviamente questo è un modulo nella libreria ufficiale, basta usare il modulo di installazione PoshSSH. Client Linux, collegato al server Linux. Devi modificare il file /etc/ssh/sshd_config. Client Linux, collegato al server Wind. Devi attivare il servizio sul server. Fidati del server sul client. Client Win collegato al server Win Server. Devi attivare il servizio sul server. Fidati del server sul client.
D: C'è [grep] in PowerShell? Un: Il comando select-string viene utilizzato in PowerShell. Solo dal punto di vista della programmazione, select-string=smart, grep=stupido + hanno un difetto difficile :mrgreen: Quando c'è un'intestazione NOM, la select-string riconosce automaticamente il tipo di codifica del file. Quando non c'è un header BOM, non è necessario cambiare l'ambiente shell come linux+grep, né salvare file secondo un certo codice. Devi solo specificare il parametro di codifica -in base alla codifica del file. E grep non ha questa funzione, cioè c'è un difetto grave di [impossibile specificare il tipo di codifica del file]. Ovviamente, grep non è inutile, grep ha alcuni parametri, ha funzioni uniche aggiuntive, la stringa select no, ed è qui che grep è più forte della stringa select.
D: C'è una [valutazione] in PowerShell? Un: Usa Invoke-Expression per eseguire stringhe in PowerShell.
D: Esiste una coda -f in PowerShell? È possibile visualizzare in tempo reale le nuove righe generate di un file. Un: Get-Content D:\a.txt -Coda 10 -ConteggioLettureT0 -Aspetta
D: Voglio usare una tastiera piccola e voglio anche un terminale a 256 colori, quindi come dovrebbe essere configurato xshell? Un: Terminale --- Tipo di Terminale --- [stucc-256colore] o [export TERM=stucco-256colore] Terminale --- tastiera --- default o Linux.
Eterm-256color può Gnome-256Color non funziona Konsole-256Color non funziona Sputto-256colore PowerShell Missionary Quota Originale 2017-02-15 RXVT-256COLOR non funziona Screen-256color non funziona ST-256COLOR VTE-256COLOR non funziona Xterm-256Color non funziona Lo stesso principio vale per SecureCRT
D: Chi è più potente, shell o python? Un: Ognuno ha i propri punti di forza e può completarsi a vicenda. Ma non sono complementari. Ne parlerò più avanti.
D: Perché la versione Linux di PowerShell è più adatta al personale operativo e di manutenzione per scrivere script? (Rispetto alla versione Linux di Python) Un: 1 Python ha funzioni orientate agli oggetti e la versione Linux di PowerShell è disponibile.
2 Python non ha una riga di comando. 2.1 Python non può essere il terminale predefinito per SSH, ma PowerShell per Linux sì. Vedi il capitolo: "Due macchine Linux con SSHD? Come connettersi e inviare comandi con PowerShell? 》 2.2 Usare comandi shell (awk, grep, ecc.) in python è molto macchinoso. Devo aggiungere molta sintassi e codice PY. PowerShell per Linux esegue i comandi awk proprio come bash.
3 Python non ha tubature. È molto problematico passare valori tra n [programmi da riga di comando]. Devo aggiungere molta sintassi e codice PY. La versione Linux di PowerShell ha pipeline, e eseguire comandi awk è lo stesso di bash.
4 Python ha la versione 2, la versione 3 non è compatibile con il cancro! Domanda. PowerShell per Linux non ha questo problema. 4.1 Queste domande contengono problemi di programmazione.
Conclusione: I comandi shell come GREP non sono adatti al supporto della programmazione, non sono efficaci come i problemi di programmazione della versione 4.1 sopra in PowerShell a casa. Più i 2,3 punti sopra elencati. Questo mette a disagio gli utenti Linux, ma pochissimi usano comandi esterni in py. [libreria di comandi py] e [comando shell] sono morti e praticamente non possono completarsi a vicenda. La versione Linux di PS è diversa.
D: Perché si dice che Powershell sia migliore di Shell? Un: 1 PowerShell è orientata agli oggetti e le proprietà restituiscono dati direttamente disponibili. Questo è molto meno comune rispetto ai linguaggi di scripting dei caratteri (bat, shell) che richiedono deduzioni di stringhe. Nato con meno [contenuto da cui sfuggire]. 2 Sostituzione per la ricerca stringa, ci sono metodi in PowerShell che non richiedono l'escape, nella classe .NET. Per esempio: [stringa]$a = 'abc\\def' $b = $a.replace('\\','when') #返回: [ABC come difesa] Per determinare se un IP è legittimo, puoi utilizzare il metodo TryParse() nella classe IPAddress. In breve, il mio suggerimento è di usare quanti più metodi .net possibile, usare il minor numero di regex possibile o semplicemente usare semplici regolari. 3 PowerShell usa ['] come simbolo di fuga. ['] è meno comunemente usato di [\] ed è molto meno usato come simbolo di fuga. 3.1 Quando si scrivono script di database, ci sono più conflitti di [']. Ad esempio, ['tabella'] entra in conflitto con ['t], come ['biao'] entra in conflitto con ['b], e successivamente l'ho risolto con ['tabella']. ricerca e sostituzione stringhe di 4 ps, ha un motore normale, è compatibile con Linux e utilizza anche [\] come escape (fuga). Tuttavia, esiste una funzione speciale di fuga di stringhe [[Regex]::Escape()], che viene prima sfuggita, poi trovata e sostituita, e il codice è altamente leggibile. $Original stringa prima della fuga = '\+\&*|]' $escaped stringa = [regex]::escape($original stringa prima di scappare) ------------- Esempi di scrittura [stringa]$a = 'abc\\def' $Original stringa prima della fuga = '\' $Escaped Stringa = [Regex]::Fuga($Original Stringa prima della Fuga) #[\]--->[\\] $b = [Regex]::replace($a,$Escaped String, 'When') $b #返回 [ABC Dangdang DEF] ------------- 5 bash e awk, ognuno ha il suo percorso, ognuno ha la sua fuga. Combinati, è facile per A influenzare B, e A ingoia B. È anche facile avere problemi quando si incontrano ['], ["], [\], e [*]. È come indossare due strati di pantaloni lunghi, tiri uno strato e anche l'altro si muove, devi preoccuparti della loro compatibilità. Questo è un cancro ed è difficile da risolvere. Ma il pizzicamento, questo problema può anche essere evitato in una certa misura. Questo richiede che la persona che ha scritto la shell corregga il problema puzzolente. [Inserisci il codice awk nel file .awk separatamente, non nella riga di comando] PowerShell non ha questo problema, mettilo in linea di comando, inserilo nello script, non ha alcun effetto.
|