PowerShell চিট শিট
অনুসন্ধানযোগ্য, প্রিন্টযোগ্য PowerShell রেফারেন্স — cmdlets, পাইপলাইন, ভেরিয়েবল, ফাইল, লুপ, ফাংশন, অবজেক্ট এবং প্রশাসন। বিনামূল্যে।
সাহায্য ও আবিষ্কার
12Get-Help Get-Process
cmdlet-এর জন্য সাহায্য দেখান
Get-Help Get-Process -Examples
cmdlet-এর ব্যবহার উদাহরণ দেখান
Get-Help Get-Process -Full
parameter সহ সম্পূর্ণ সাহায্য দেখান
Get-Help about_Functions
conceptual about_ টপিক পড়ুন
Update-Help
সর্বশেষ help ফাইল ডাউনলোড করুন
Get-Command -Noun Process
noun-এ কাজ করা cmdlet তালিকা করুন
Get-Command -Verb Get
নির্দিষ্ট verb ব্যবহারকারী cmdlet তালিকা
Get-Command *service*
wildcard নামে কমান্ড সার্চ করুন
Get-Process | Get-Member
object-এর property ও method তালিকা করুন
Get-Alias ls
alias কোন কমান্ডে resolve হয় দেখান
Get-Alias -Definition Get-ChildItem
cmdlet-এর সব alias তালিকা করুন
$PSVersionTable
PowerShell সংস্করণ ও edition দেখান
ভেরিয়েবল ও টাইপ
13$x = 5
variable-এ মান assign করুন
[int]$n = '42'
strongly typed variable ঘোষণা করুন
$null
null / খালি মান
$true; $false
Boolean literal
$arr = @(1, 2, 3)
array তৈরি করুন
$arr += 4
array-তে element যোগ করুন
$arr[0]; $arr[-1]
প্রথম ও শেষ array element index করুন
$hash = @{ Name = 'Ann'; Age = 30 }
hashtable তৈরি করুন
$hash['Name']; $hash.Name
key দিয়ে hashtable মান পড়ুন
$env:PATH
environment variable পড়ুন
$env:MY_VAR = 'value'
সেশনের জন্য environment variable সেট করুন
Get-Variable
সংজ্ঞায়িত সব variable তালিকা করুন
[math]::Round(3.14159, 2)
static .NET method কল করুন
Pipeline ও ফিল্টারিং
12Get-Process | Where-Object { $_.CPU -gt 10 }
শর্ত দিয়ে object ফিল্টার করুন
Get-Process | ? CPU -gt 10
? alias ও সরল সিনট্যাক্সে ফিল্টার করুন
Get-Process | ForEach-Object { $_.Name }
প্রতি object-এ script block চালান
Get-Process | % { $_.Kill() }
% alias দিয়ে iterate করুন
Get-Process | Select-Object Name, Id
শুধু নির্দিষ্ট property রাখুন
Get-Process | Select-Object -First 5
প্রথম N object নিন
Get-Process | Sort-Object CPU -Descending
property দিয়ে object সাজান
Get-Process | Group-Object Company
property দিয়ে object group করুন
Get-Process | Measure-Object CPU -Sum
সাংখ্যিক মান aggregate করুন (sum, average)
Get-ChildItem | Select-Object -Unique
distinct object return করুন
1..5 | ForEach-Object { $_ * 2 }
transform-এ range pipe করুন
Get-Process | Out-GridView
ইন্টারঅ্যাক্টিভ grid-এ ফলাফল পাঠান
ফাইল ও path
13Get-ChildItem -Path C:\Logs
ডিরেক্টরির আইটেম তালিকা (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
recursively matching ফাইল তালিকা করুন
Get-Content .\file.txt
ফাইল লাইন-বাই-লাইন পড়া
Get-Content .\file.txt -Tail 20
ফাইলের শেষ N লাইন পড়ুন
Set-Content .\file.txt -Value 'Hi'
ফাইলে টেক্সট লিখুন (overwrite)
Add-Content .\file.txt -Value 'Hi'
ফাইলে টেক্সট যোগ করুন
Copy-Item a.txt b.txt
ফাইল বা ডিরেক্টরি কপি করুন
Move-Item a.txt .\dir\
আইটেম move বা rename করুন
Remove-Item a.txt -Force
ফাইল বা ডিরেক্টরি মুছুন
New-Item -ItemType Directory -Path .\dir
নতুন ফাইল বা ডিরেক্টরি তৈরি করুন
Test-Path .\file.txt
path আছে কিনা পরীক্ষা করুন
Get-Location
বর্তমান ডিরেক্টরি দেখান (alias pwd)
Set-Location C:\Temp
বর্তমান ডিরেক্টরি পরিবর্তন করুন (alias cd)
String ও টেক্সট
12'Hello World' -match 'World'
regex-এর বিপরীতে স্ট্রিং পরীক্ষা করুন
'Hello' -replace 'l', 'L'
regex দিয়ে টেক্সট প্রতিস্থাপন করুন
'a,b,c' -split ','
regex দিয়ে স্ট্রিং array-তে split করুন
'a-b-c'.Split('-')
.NET String method দিয়ে split করুন
'a', 'b' -join ', '
array element স্ট্রিং-এ join করুন
Select-String -Path *.log -Pattern 'error'
ফাইল জুড়ে grep-style সার্চ
'{0} of {1}' -f 3, 10
placeholder সহ স্ট্রিং ফরম্যাট করুন
' hi '.Trim()
শুরু ও শেষের whitespace বাদ দিন
'Hello'.ToUpper()
স্ট্রিং uppercase-এ রূপান্তর করুন
'Hello'.Substring(0, 3)
index ও length দিয়ে substring বের করুন
'Hello'.Contains('ell')
স্ট্রিং-এ টেক্সট আছে কিনা পরীক্ষা করুন
'Hello'.Length
অক্ষর সংখ্যা নিন
Loop ও conditional
12if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
if / elseif / else দিয়ে শাখা
switch ($x) { 1 { 'one' } default { 'other' } }
case-এর বিপরীতে মান match করুন
foreach ($i in $arr) { $i }
collection-এর উপর iterate করুন
for ($i = 0; $i -lt 5; $i++) { $i }
index সহ counted loop
while ($x -lt 10) { $x++ }
শর্ত সত্য থাকা পর্যন্ত loop
do { $x++ } while ($x -lt 10)
অন্তত একবার loop, তারপর পরীক্ষা
$x -eq 5; $x -ne 5
সমান ও অসমান তুলনা
$x -gt 5; $x -lt 5
বড় ও ছোট তুলনা
$x -ge 5; $x -le 5
বড়/ছোট-বা-সমান তুলনা
'abc' -like 'a*'
Wildcard match তুলনা
@(1, 2, 3) -contains 2
array সদস্যতা পরীক্ষা করুন
break; continue
বর্তমান loop iteration বের বা skip করুন
Function ও script
12function Get-Sum { param($a, $b) $a + $b }
parameter সহ function সংজ্ঞায়িত করুন
Get-Sum -a 2 -b 3
নামযুক্ত argument দিয়ে function কল করুন
function Test { param([int]$n = 1) }
ডিফল্ট মান সহ typed parameter
param([Parameter(Mandatory)]$Name)
parameter সরবরাহ আবশ্যক করুন
return $value
function থেকে মান return করুন
function F { [CmdletBinding()] param() }
advanced function তৈরি করুন (common param)
Write-Verbose 'msg' -Verbose
verbose message stream তৈরি করুন
Write-Output $result
pipeline-এ object পাঠান
Write-Error 'failed'
error stream-এ লিখুন
.\script.ps1 -Arg value
argument সহ script ফাইল চালান
. .\functions.ps1
সেশনে script dot-source করুন
try { } catch { $_ } finally { }
terminating error পরিচালনা করুন
Object ও property
12Get-Process | Select-Object -ExpandProperty Name
object নয়, raw property মান return করুন
(Get-Process).Name
প্রতি object-এ property অ্যাক্সেস করুন
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
calculated property যোগ করুন
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
কাস্টম object তৈরি করুন
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
object-এ property যুক্ত করুন
$obj.PSObject.Properties.Name
object-এর property নাম তালিকা করুন
$obj | Format-Table -AutoSize
object aligned table হিসেবে দেখান
$obj | Format-List *
সব property list হিসেবে দেখান
$obj | ConvertTo-Json -Depth 5
object JSON-এ serialize করুন
Get-Content data.json | ConvertFrom-Json
JSON object-এ parse করুন
$obj | Export-Csv out.csv -NoTypeInformation
object CSV ফাইলে export করুন
Import-Csv data.csv
CSV ফাইল object-এ পড়ুন
Process ও service
12Get-Process
চলমান process তালিকা (alias ps)
Get-Process -Name chrome
নাম দিয়ে process নিন
Stop-Process -Name notepad -Force
process terminate করুন
Start-Process notepad.exe
নতুন process চালু করুন
Get-Service
Windows service তালিকা করুন
Get-Service -Name wuauserv
নাম দিয়ে service নিন
Start-Service -Name wuauserv
বন্ধ service চালু করুন
Stop-Service -Name wuauserv
চলমান service বন্ধ করুন
Restart-Service -Name wuauserv
service restart করুন
Set-Service -Name wuauserv -StartupType Manual
service start মোড পরিবর্তন করুন
Get-EventLog -LogName System -Newest 20
সাম্প্রতিক classic event-log এন্ট্রি পড়ুন
Get-WinEvent -LogName Application -MaxEvents 20
modern event log query করুন
Remoting ও job
12Enter-PSSession -ComputerName Srv01
ইন্টারঅ্যাক্টিভ remote সেশন শুরু করুন
Exit-PSSession
ইন্টারঅ্যাক্টিভ remote সেশন থেকে বের হন
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
remote host-এ কমান্ড চালান
$s = New-PSSession -ComputerName Srv01
persistent remote সেশন তৈরি করুন
Invoke-Command -Session $s -ScriptBlock { hostname }
বিদ্যমান remote সেশন পুনঃব্যবহার করুন
Remove-PSSession $s
remote সেশন বন্ধ করে সরান
Start-Job -ScriptBlock { Get-Process }
background job হিসেবে কমান্ড চালান
Get-Job
background job ও তাদের state তালিকা
Receive-Job -Id 1 -Keep
job-এর আউটপুট নিন
Wait-Job -Id 1
job শেষ না হওয়া পর্যন্ত block করুন
Stop-Job -Id 1; Remove-Job -Id 1
background job বন্ধ করে সরান
Get-Process | Start-ThreadJob { $input }
lightweight in-process thread job চালান
Module ও package
12Get-Module
বর্তমানে লোড করা module তালিকা
Get-Module -ListAvailable
সব ইনস্টল করা module তালিকা
Import-Module Pester
সেশনে module লোড করুন
Remove-Module Pester
সেশন থেকে module unload করুন
Find-Module -Name PSReadLine
gallery-তে module সার্চ করুন
Install-Module PSReadLine -Scope CurrentUser
gallery থেকে module ইনস্টল করুন
Update-Module PSReadLine
ইনস্টল করা module আপডেট করুন
Uninstall-Module PSReadLine
ইনস্টল করা module সরান
Get-ExecutionPolicy
বর্তমান script execution policy দেখান
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
signed ও local script চালানো অনুমোদন করুন
Get-PSRepository
কনফিগার করা package repository তালিকা
$PROFILE
বর্তমান user profile script-এর path
“:q”-এর সাথে কোনো এন্ট্রি মেলে না।
সাহায্য দরকার?
এই টুলে কোনো সমস্যা পেয়েছেন? আমাদের দলকে জানান।