PowerShell হলো একটি শক্তিশালী কমান্ড লাইন শেল এবং স্ক্রিপ্টিং ভাষা যা সিস্টেম অ্যাডমিনিস্ট্রেশন এবং অটোমেশন কাজের জন্য ব্যবহৃত হয়। PowerShell-এর বেসিক কমান্ডগুলি ব্যবহার করে আপনি সহজেই বিভিন্ন সিস্টেম কাজ সম্পাদন করতে পারেন। এই সেকশনে, আমরা PowerShell-এর কিছু প্রাথমিক কমান্ড এবং তাদের ব্যবহারের পদ্ধতি আলোচনা করব।
PowerShell এর মৌলিক কমান্ড
PowerShell কমান্ডগুলিকে Cmdlets (pronounced as "command-lets") বলা হয়। Cmdlet একটি ছোট PowerShell কমান্ড যা সাধারণত একটি নির্দিষ্ট কাজ সম্পাদন করে। Cmdlet-এর সাধারণ গঠন থাকে Verb-Noun ফর্মে, যেমন Get-Process, Set-Date ইত্যাদি।
1. Get-Command
Get-Command কমান্ডটি ব্যবহার করে আপনি PowerShell-এ উপলব্ধ সমস্ত কমান্ড এবং Cmdlet এর তালিকা দেখতে পারেন।
উদাহরণ:
Get-Command
এটি সমস্ত Cmdlet, Functions, Aliases এবং Scripts এর তালিকা দেখাবে।
2. Get-Help
Get-Help কমান্ডটি আপনাকে যে কোনো Cmdlet, Function, বা Script এর সাহায্য পেতে সহায়তা করে। এটি সাধারণত কমান্ডের বর্ণনা, ব্যবহার এবং প্যারামিটারগুলোর বিবরণ প্রদান করে।
উদাহরণ:
Get-Help Get-Process
এটি Get-Process কমান্ডের জন্য বিস্তারিত সাহায্য তথ্য দেখাবে।
3. Get-Process
Get-Process কমান্ডটি সিস্টেমে চলমান প্রক্রিয়া (processes) এর তথ্য প্রদর্শন করে।
উদাহরণ:
Get-Process
এটি বর্তমানে চলমান সকল প্রক্রিয়ার নাম এবং তাদের সম্পর্কিত অন্যান্য তথ্য (যেমন CPU ব্যবহার, মেমরি ব্যবহার ইত্যাদি) দেখাবে।
4. Start-Process
Start-Process কমান্ডটি ব্যবহার করে আপনি একটি নতুন প্রোগ্রাম বা অ্যাপ্লিকেশন চালু করতে পারেন।
উদাহরণ:
Start-Process notepad
এটি Notepad অ্যাপ্লিকেশন খুলবে।
5. Set-Location (cd)
Set-Location কমান্ডটি ব্যবহার করে আপনি ডিরেক্টরি বা ফোল্ডার পরিবর্তন করতে পারেন। এটি cd (change directory) কমান্ডের সমতুল্য।
উদাহরণ:
Set-Location C:\Users
এটি আপনাকে C:\Users ডিরেক্টরিতে নিয়ে যাবে। আপনি cd কিভাবে ব্যবহার করেন তেমনভাবে Set-Location কাজ করবে।
6. Get-ChildItem (dir)
Get-ChildItem কমান্ডটি ব্যবহার করে আপনি একটি নির্দিষ্ট ডিরেক্টরি বা ফোল্ডারের সমস্ত ফাইল এবং সাবফোল্ডারের তালিকা দেখতে পারেন। এটি dir কমান্ডের সমতুল্য।
উদাহরণ:
Get-ChildItem
এটি বর্তমান ডিরেক্টরির সমস্ত ফাইল এবং ফোল্ডার দেখাবে।
7. New-Item
New-Item কমান্ডটি ব্যবহার করে নতুন ফাইল বা ফোল্ডার তৈরি করতে পারেন।
উদাহরণ:
New-Item -Path "C:\Users\Documents\example.txt" -ItemType File
এটি C:\Users\Documents\example.txt নামে একটি নতুন ফাইল তৈরি করবে।
8. Remove-Item (rm)
Remove-Item কমান্ডটি ব্যবহার করে আপনি ফাইল বা ফোল্ডার মুছে ফেলতে পারেন। এটি rm কমান্ডের সমতুল্য।
উদাহরণ:
Remove-Item "C:\Users\Documents\example.txt"
এটি example.txt ফাইলটি মুছে ফেলবে।
9. Copy-Item
Copy-Item কমান্ডটি ব্যবহার করে আপনি একটি ফাইল বা ফোল্ডার কপি করতে পারেন।
উদাহরণ:
Copy-Item "C:\Users\Documents\example.txt" -Destination "C:\Users\Documents\Backup\"
এটি example.txt ফাইলটি Backup ফোল্ডারে কপি করবে।
10. Move-Item
Move-Item কমান্ডটি ব্যবহার করে আপনি একটি ফাইল বা ফোল্ডার স্থানান্তর করতে পারেন।
উদাহরণ:
Move-Item "C:\Users\Documents\example.txt" -Destination "C:\Users\Documents\Backup\"
এটি example.txt ফাইলটি Backup ফোল্ডারে স্থানান্তর করবে।
11. Get-Content (cat)
Get-Content কমান্ডটি ব্যবহার করে আপনি একটি ফাইলের বিষয়বস্তু দেখতে পারেন। এটি cat কমান্ডের সমতুল্য।
উদাহরণ:
Get-Content "C:\Users\Documents\example.txt"
এটি example.txt ফাইলের সমস্ত বিষয়বস্তু টার্মিনালে দেখাবে।
12. Set-Content (echo)
Set-Content কমান্ডটি ব্যবহার করে আপনি একটি ফাইলে ডেটা লিখতে পারেন। এটি echo কমান্ডের সমতুল্য।
উদাহরণ:
Set-Content "C:\Users\Documents\example.txt" "This is a sample text."
এটি example.txt ফাইলে "This is a sample text." লেখা যুক্ত করবে।
PowerShell-এর সাথে অন্যান্য সাধারণ কাজ
1. Variables (ভেরিয়েবল ব্যবহার)
PowerShell-এ ভেরিয়েবল তৈরি করতে $ চিহ্ন ব্যবহার করা হয়।
উদাহরণ:
$greeting = "Hello, PowerShell!"
Write-Output $greeting
এটি $greeting ভেরিয়েবলটিতে স্টোর করা তথ্য আউটপুট করবে।
2. Pipes (পাইপ ব্যবহার)
PowerShell-এ কমান্ডের আউটপুট অন্য একটি কমান্ডে পাঠানোর জন্য Pipe (|) ব্যবহার করা হয়।
উদাহরণ:
Get-Process | Where-Object { $_.CPU -gt 100 }
এটি সমস্ত প্রক্রিয়া দেখাবে যেখানে CPU ব্যবহার 100 এর বেশি।
3. If-Else Statements
PowerShell-এ If-Else শর্তাধীন স্টেটমেন্ট ব্যবহার করা যায়।
উদাহরণ:
if ($greeting -eq "Hello, PowerShell!") {
Write-Output "Greeting is correct!"
} else {
Write-Output "Greeting is incorrect!"
}
এটি শর্তের ভিত্তিতে একটি আউটপুট দেখাবে।
4. Loops (লুপ ব্যবহার)
PowerShell-এ For, While, এবং ForEach লুপ ব্যবহার করা যায়।
উদাহরণ:
For ($i = 0; $i -lt 5; $i++) {
Write-Output $i
}
এটি 0 থেকে 4 পর্যন্ত সংখ্যা আউটপুট করবে।
সারাংশ
PowerShell-এর বেসিক কমান্ড এবং অপারেশনগুলি ব্যবহার করে আপনি সিস্টেম অ্যাডমিনিস্ট্রেশন, ফাইল পরিচালনা, স্ক্রিপ্টিং, এবং অটোমেশন কাজ সহজে করতে পারেন। Get-Command, Set-Location, Get-Process, Start-Process, Remove-Item, Get-Help ইত্যাদি কমান্ডগুলি হলো PowerShell এর মূল কাজের জন্য অত্যন্ত গুরুত্বপূর্ণ। PowerShell শেখার মাধ্যমে আপনি আরও উন্নত স্ক্রিপ্টিং এবং সিস্টেম ম্যানেজমেন্ট কাজগুলো সহজে করতে পারবেন।
PowerShell-এ cmdlets হলো ছোট এবং কার্যকর কমান্ডগুলি যা নির্দিষ্ট কাজ সম্পাদন করতে ব্যবহৃত হয়। PowerShell এর তিনটি অন্যতম গুরুত্বপূর্ণ cmdlet হলো Get-Command, Get-Help, এবং Get-Member। এই cmdlets গুলি ব্যবহার করে আপনি সহজেই PowerShell কমান্ড, সহায়তা, এবং অবজেক্টের বৈশিষ্ট্য পরীক্ষা করতে পারেন।
Get-Command Cmdlet
Get-Command cmdlet-এর সাহায্যে আপনি PowerShell-এ উপলব্ধ সমস্ত কমান্ড এবং ফাংশন তালিকাভুক্ত করতে পারেন। এটি ব্যবহৃত কমান্ডের ধরণ (cmdlets, functions, aliases, etc.) জানতে সহায়তা করে।
Get-Command এর ব্যবহার:
PowerShell-এর সমস্ত কমান্ড দেখতে:
Get-Commandকোনো নির্দিষ্ট cmdlet বা কমান্ডের নাম জানতে: উদাহরণস্বরূপ,
Get-Processcmdlet দেখতে:Get-Command Get-Processকোনো নির্দিষ্ট ধরনের কমান্ড খুঁজতে: আপনি যদি শুধুমাত্র cmdlet খুঁজতে চান, তাহলে নিচের কমান্ড ব্যবহার করতে পারেন:
Get-Command -CommandType Cmdletকোনো নির্দিষ্ট মডিউলের কমান্ড দেখতে: যদি আপনি কোনো নির্দিষ্ট মডিউলের কমান্ড দেখতে চান, যেমন
Microsoft.PowerShell.Managementমডিউল:Get-Command -Module Microsoft.PowerShell.Management
Get-Command এর সুবিধা:
- PowerShell-এ যে সকল cmdlet, function, alias বা অন্য কমান্ড রয়েছে, সেগুলি খুঁজে বের করতে সাহায্য করে।
- আপনি মডিউল বা কমান্ডের ধরন অনুসারে ফিল্টার করতে পারেন।
Get-Help Cmdlet
Get-Help cmdlet PowerShell কমান্ড বা স্ক্রিপ্টের ব্যাপারে বিস্তারিত সহায়তা প্রদান করে। এটি কমান্ডের ব্যবহার, প্যারামিটার এবং অন্যান্য গুরুত্বপূর্ণ তথ্য দেখায়। এটি PowerShell ব্যবহারকারীদের জন্য একটি অপরিহার্য টুল।
Get-Help এর ব্যবহার:
কোনো নির্দিষ্ট cmdlet-এর সহায়তা দেখতে: উদাহরণস্বরূপ,
Get-Processcmdlet-এর সহায়তা দেখতে:Get-Help Get-Processসহায়তা পেজের বিস্তারিত সংস্করণ দেখতে: কখনও কখনও আপনি বিস্তারিত সহায়তা চান, তাহলে
-Detailedপ্যারামিটার ব্যবহার করতে পারেন:Get-Help Get-Process -Detailedসহায়তা পেজের উদাহরণ দেখতে: কোনো cmdlet-এর উদাহরণ দেখতে:
Get-Help Get-Process -Examplesআপনার PowerShell সংস্করণের জন্য সহায়তা আপডেট করতে: কখনও কখনও PowerShell এর ডকুমেন্টেশন আপডেট করা থাকে, তখন
Update-Helpকমান্ড ব্যবহার করতে পারেন:Update-Help
Get-Help এর সুবিধা:
- প্রতিটি PowerShell কমান্ডের ব্যাপারে বিস্তারিত সহায়তা প্রদান করে।
- আপনি যে কমান্ড ব্যবহার করতে চান, তার উদাহরণ, প্যারামিটার, এবং ফলাফল সম্পর্কে জানাতে সহায়তা করে।
Get-Member Cmdlet
Get-Member cmdlet PowerShell অবজেক্টের সদস্য বা প্রপার্টি সম্পর্কে বিস্তারিত তথ্য প্রদানের জন্য ব্যবহৃত হয়। এটি কমান্ড বা অবজেক্টের সাথে সম্পর্কিত প্রপার্টি, মেথড, এবং অন্যান্য সদস্য দেখায়। এটি PowerShell এ অবজেক্ট-oriented প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ টুল।
Get-Member এর ব্যবহার:
কোনো অবজেক্টের সদস্য দেখতে: উদাহরণস্বরূপ,
Get-Processকমান্ডের আউটপুট থেকে সদস্য দেখতে:Get-Process | Get-Memberএই কমান্ডটি
Get-Processএর আউটপুটের সমস্ত সদস্য (যেমন প্রপার্টি, মেথড) দেখাবে।কোনো নির্দিষ্ট সদস্যের ধরন দেখতে: আপনি
Get-Memberকমান্ডের সাথে-MemberTypeপ্যারামিটার ব্যবহার করে শুধুমাত্র নির্দিষ্ট ধরনের সদস্য (যেমন প্রপার্টি, মেথড) দেখতে পারেন:Get-Process | Get-Member -MemberType Propertyঅবজেক্টের প্রপার্টি এবং মেথড দেখতে: যদি আপনি একটি নির্দিষ্ট অবজেক্টের প্রপার্টি এবং মেথড দেখতে চান, উদাহরণস্বরূপ, ফাইল সিস্টেমের অবজেক্ট:
Get-Item "C:\Windows" | Get-Member
Get-Member এর সুবিধা:
- এটি PowerShell অবজেক্টের সম্পর্কে বিস্তারিত তথ্য প্রদান করে, যেমন তাদের প্রপার্টি, মেথড এবং ইভেন্ট।
- PowerShell স্ক্রিপ্টে ব্যবহৃত অবজেক্ট এবং তাদের আচরণ বুঝতে সহায়তা করে।
সারাংশ
- Get-Command cmdlet ব্যবহার করে আপনি PowerShell-এ উপলব্ধ সমস্ত কমান্ড, cmdlet, এবং ফাংশন খুঁজে বের করতে পারেন।
- Get-Help cmdlet ব্যবহার করে আপনি PowerShell কমান্ডের সহায়তা এবং বিস্তারিত তথ্য পেতে পারেন।
- Get-Member cmdlet দিয়ে আপনি PowerShell অবজেক্টের সদস্য (প্রপার্টি, মেথড) সম্পর্কে তথ্য জানতে পারেন।
এই cmdlets গুলি PowerShell ব্যবহারকারীদের জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলির মাধ্যমে আপনি কমান্ড, স্ক্রিপ্ট, এবং অবজেক্ট সম্পর্কে দ্রুত তথ্য পেতে পারেন এবং দক্ষতার সাথে কাজ করতে পারেন।
PowerShell এ কাজ করার সময় আপনি যদি একই কমান্ড বা কার্যকলাপ বারবার ব্যবহার করেন, তবে Command Aliases ব্যবহার করা অনেকটা সুবিধাজনক হতে পারে। এছাড়া, PowerShell কমান্ডের সঠিক কাঠামো এবং সিনট্যাক্স বুঝতে পারাও অত্যন্ত গুরুত্বপূর্ণ। নিচে Command Aliases এবং Command Syntax সম্পর্কে বিস্তারিত আলোচনা করা হলো।
Command Aliases
PowerShell এ Command Aliases হচ্ছে সংক্ষিপ্ত বা বিকল্প নাম, যা ব্যবহারকারীদের বড় কমান্ডগুলোর জন্য ছোট বা সহজ নাম ব্যবহার করতে সাহায্য করে। এটি কমান্ড টাইপ করার সময় সময় বাঁচাতে এবং কোডকে আরো সংক্ষিপ্ত ও পরিষ্কার করতে সহায়ক। PowerShell তে অনেক কমান্ডের জন্য পূর্বনির্ধারিত এলিয়াস (alias) থাকে, তবে আপনি নিজেরও এলিয়াস তৈরি করতে পারেন।
PowerShell-এর কিছু পরিচিত এলিয়াস:
ls- এটিGet-ChildItemকমান্ডের এলিয়াস, যা ডিরেক্টরি এবং ফাইল দেখানোর জন্য ব্যবহৃত হয়।cd- এটিSet-Locationকমান্ডের এলিয়াস, যা বর্তমান ডিরেক্টরি পরিবর্তন করতে ব্যবহৃত হয়।cat- এটিGet-Contentকমান্ডের এলিয়াস, যা ফাইলের বিষয়বস্তু প্রদর্শন করতে ব্যবহৃত হয়।rm- এটিRemove-Itemকমান্ডের এলিয়াস, যা ফাইল বা ফোল্ডার মুছে ফেলতে ব্যবহৃত হয়।cls- এটিClear-Hostকমান্ডের এলিয়াস, যা টার্মিনাল স্ক্রীন পরিষ্কার করতে ব্যবহৃত হয়।
এলিয়াস দেখতে:
PowerShell এ Get-Alias কমান্ড দিয়ে সকল এলিয়াস দেখতে পারেন:
Get-Alias
এলিয়াস পরিবর্তন বা নতুন এলিয়াস তৈরি করা:
আপনি যদি একটি নতুন এলিয়াস তৈরি করতে চান, তাহলে New-Alias কমান্ড ব্যবহার করতে পারেন। উদাহরণস্বরূপ:
New-Alias -Name dir -Value Get-ChildItem
এটি dir কে Get-ChildItem কমান্ডের এলিয়াস হিসেবে সেট করবে।
এলিয়াস মুছে ফেলতে:
একটি এলিয়াস মুছে ফেলতে Remove-Alias কমান্ড ব্যবহার করা হয়:
Remove-Alias -Name dir
Command Syntax
PowerShell কমান্ডের Syntax (কাঠামো) নির্দিষ্ট নিয়ম অনুযায়ী থাকে, যা কমান্ডের কার্যকরী হওয়ার জন্য মেনে চলতে হয়। PowerShell-এর কমান্ডগুলো সাধারণত verb-noun আকারে হয়, যেখানে verb হলো কোন কাজ (যেমন: Get, Set, Remove, New), এবং noun হলো সেই কাজের বিষয়বস্তু (যেমন: Item, Process, Service)।
PowerShell Command Syntax-এর সাধারণ কাঠামো:
Verb-Noun [-ParameterName ParameterValue]
এখানে:
- Verb: একটি কাজ বা কর্ম।
- Noun: যেটি কাজটি প্রভাবিত করছে, যেমন একটি ফাইল, ডিরেক্টরি, প্রক্রিয়া ইত্যাদি।
- Parameter: ঐ নির্দিষ্ট কাজের সাথে যুক্ত অতিরিক্ত তথ্য বা বিকল্প।
উদাহরণস্বরূপ:
Get-Process:- Verb:
Get(তথ্য পেতে) - Noun:
Process(প্রক্রিয়া) - সিস্টেমে চলমান সকল প্রক্রিয়া দেখানোর জন্য এই কমান্ডটি ব্যবহৃত হয়।
- Verb:
Set-Location -Path C:\Users:- Verb:
Set(সেট করা) - Noun:
Location(অবস্থান) -Pathহল একটি প্যারামিটার যা নতুন লোকেশন নির্দেশ করে।
- Verb:
PowerShell কমান্ডে প্যারামিটার ব্যবহার:
PowerShell কমান্ডের সাথে বিভিন্ন প্যারামিটার যোগ করা যায়, যা তার কার্যকারিতা নির্ধারণ করে। প্যারামিটারগুলি সাধারণত - (ড্যাশ) দিয়ে শুরু হয়। উদাহরণস্বরূপ:
Get-ChildItem -Path C:\Users
এখানে, -Path হল একটি প্যারামিটার যা নির্দেশ করে কোন লোকেশনে ফাইল বা ডিরেক্টরি দেখতে হবে।
প্যারামিটার সম্পর্কে আরও বিস্তারিত:
- Mandatory Parameters: কিছু প্যারামিটার অবশ্যই প্রদান করতে হয়, অন্যথায় কমান্ডটি কাজ করবে না।
- Optional Parameters: কিছু প্যারামিটার দেওয়া না-ও যেতে পারে, এগুলি ঐচ্ছিক থাকে।
কমান্ডের মধ্যে প্যারামিটার আদেশ:
PowerShell-এ, প্যারামিটার সাধারণত কোন নির্দিষ্ট আদেশে ব্যবহার করা হয় না। প্যারামিটার গুলোর মধ্যে যথাযথ ধারা অনুসরণ না করলেও কমান্ডটি কাজ করতে পারে। উদাহরণস্বরূপ, আপনি -Path প্যারামিটারটি প্রথমেও ব্যবহার করতে পারেন, অথবা দ্বিতীয়েও:
Get-ChildItem -Path C:\Users
Get-ChildItem C:\Users -Path
প্যারামিটার টাইপ:
PowerShell প্যারামিটারগুলি বিভিন্ন ধরনের হতে পারে:
- Switch Parameters: এগুলি সাধারণত কেবল উপস্থিতি বা অনুপস্থিতির ভিত্তিতে কাজ করে, যেমন:
-Recurse। - Named Parameters: এগুলি স্পষ্টভাবে নাম দ্বারা চিহ্নিত থাকে, যেমন:
-Path,-Force। - Positional Parameters: এগুলি নির্দিষ্ট অর্ডারে সরবরাহ করা যায়।
Conclusion
PowerShell এ Command Aliases এবং Command Syntax দুটি গুরুত্বপূর্ণ বিষয়, যা আপনাকে স্ক্রিপ্ট লেখার সময় আরও দ্রুত এবং কার্যকরী করতে সাহায্য করে। এলিয়াস ব্যবহার করে কমান্ডগুলো সংক্ষিপ্ত করা যায়, এবং সঠিক কমান্ড সিনট্যাক্স মেনে চললে আপনি সঠিকভাবে কমান্ড এক্সিকিউট করতে পারবেন। PowerShell কমান্ডের সঠিক কাঠামো এবং প্যারামিটার ব্যবহারে দক্ষতা অর্জন করলে স্ক্রিপ্টিং আরো সহজ এবং কার্যকরী হবে।
PowerShell-এর একটি অন্যতম শক্তিশালী বৈশিষ্ট্য হল Command Pipeline (কমান্ড পাইপলাইন), যা কমান্ডগুলোর মধ্যে ডেটা পাঠানোর একটি পদ্ধতি। এটি PowerShell-কে একটি শক্তিশালী স্ক্রিপ্টিং ভাষা এবং অটোমেশন টুল হিসেবে গড়ে তুলেছে। পাইপলাইনের মাধ্যমে এক কমান্ডের আউটপুট অন্য কমান্ডের ইনপুটে পাঠানো হয়, যার ফলে স্ক্রিপ্টগুলি খুবই কার্যকরী ও পরিষ্কার হয়ে ওঠে।
এই প্রক্রিয়ায় Object Passing বা অবজেক্ট পাসিংও গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ PowerShell টেক্সটের পরিবর্তে অবজেক্ট (objects) ব্যবহার করে কমান্ডগুলোর মধ্যে ডেটা আদান-প্রদান করে। নিচে PowerShell-এর Command Pipeline এবং Object Passing সম্পর্কে বিস্তারিত আলোচনা করা হল।
Command Pipeline (কমান্ড পাইপলাইন)
PowerShell-এর কমান্ড পাইপলাইন একটি শক্তিশালী বৈশিষ্ট্য যা বিভিন্ন কমান্ড একত্রিত করে একটি সিরিজ হিসেবে চালাতে সাহায্য করে। পাইপলাইন ব্যবহার করলে আপনি এক কমান্ডের আউটপুট অন্য কমান্ডের ইনপুট হিসেবে ব্যবহার করতে পারেন। এই কমান্ডগুলো একে অপরের সাথে সংযুক্ত থাকে, এবং ডেটা এক কমান্ড থেকে আরেক কমান্ডে পাঠানো হয়।
পাইপলাইন কীভাবে কাজ করে:
PowerShell-এর পাইপলাইন একটি | চিহ্নের মাধ্যমে কমান্ডগুলোকে সংযুক্ত করে। একটি কমান্ড তার আউটপুট পাইপলাইন হিসেবে পাঠায় এবং পরবর্তী কমান্ড এটি ইনপুট হিসেবে গ্রহণ করে। উদাহরণস্বরূপ:
Get-Process | Where-Object { $_.CPU -gt 100 }
এখানে, Get-Process কমান্ড সিস্টেমের সকল প্রসেসের তথ্য প্রদান করবে এবং তা Where-Object কমান্ডে পাঠানো হবে। Where-Object কমান্ড শুধুমাত্র সেই প্রসেসগুলিই ফিল্টার করবে, যার CPU ব্যবহারের পরিমাণ 100 এর বেশি।
পাইপলাইন ব্যবহার করার সুবিধা:
- কমপ্যাক্ট এবং পরিষ্কার কোড: পাইপলাইন ব্যবহার করলে কমান্ডগুলিকে সহজে একত্রিত করা যায় এবং কোড আরও কমপ্যাক্ট ও পরিষ্কার হয়।
- কার্যকরী স্ক্রিপ্ট: একাধিক কমান্ড সংযুক্ত করে দ্রুত এবং কার্যকরী স্ক্রিপ্ট তৈরি করা যায়।
Object Passing (অবজেক্ট পাসিং)
PowerShell-এ পাইপলাইনের মাধ্যমে সাধারণত অবজেক্ট (objects) পাস করা হয়, টেক্সট নয়। অর্থাৎ, PowerShell স্ক্রিপ্টে যখন একটি কমান্ড অন্য কমান্ডের মধ্যে ডেটা পাস করে, তখন এটি কেবলমাত্র টেক্সট স্ট্রিং নয়, বরং একটি অবজেক্ট পাঠায়।
অবজেক্ট এবং প্রপার্টি:
PowerShell-এ প্রতিটি আউটপুট আসলে একটি অবজেক্ট। যেমন, Get-Process কমান্ডটি একটি প্রক্রিয়ার অবজেক্ট রিটার্ন করে, যেখানে একে CPU, Name, Id, ইত্যাদি প্রপার্টি দিয়ে বর্ণনা করা হয়। তাই পাইপলাইনে অবজেক্ট পাস করার সময়, আমরা কেবল টেক্সটের পরিবর্তে সম্পূর্ণ অবজেক্টটি পাস করি, যাতে পরবর্তী কমান্ডে সেসব প্রপার্টি ব্যবহার করা যায়।
Get-Process | Select-Object Name, CPU
এখানে, Get-Process প্রত্যেক প্রসেসের অবজেক্ট প্রেরণ করছে, এবং Select-Object কমান্ডে আমরা সেই অবজেক্টের Name এবং CPU প্রপার্টি নির্বাচন করছি।
অবজেক্ট পাসিং এর সুবিধা:
- অ্যাডভান্সড ম্যানিপুলেশন: অবজেক্ট পাসিংয়ে আপনি পুরো অবজেক্ট নিয়ে কাজ করতে পারেন, যেমন ডেটার প্রপার্টি অ্যাক্সেস, পরিবর্তন, ফিল্টারিং ইত্যাদি।
- পারফরমেন্স: টেক্সটের পরিবর্তে অবজেক্ট পাস করার ফলে, পুরো ডেটাকে বাচাই করা সম্ভব হয়, যা আরো কার্যকরী এবং দ্রুত।
- স্ট্রাকচারড ডেটা: টেক্সটের বদলে অবজেক্ট ব্যবহারের মাধ্যমে আপনি ডেটার স্ট্রাকচার এবং সম্পর্ক বজায় রাখেন।
Pipeline ব্যবহার করে বিভিন্ন উদাহরণ
উদাহরণ 1: Get-Process কমান্ডের আউটপুটকে ফিল্টার করা
Get-Process | Where-Object { $_.CPU -gt 100 }
এখানে Get-Process সমস্ত প্রসেসের তথ্য রিটার্ন করছে, এবং Where-Object কমান্ড শুধুমাত্র তাদের প্রসেসগুলিকে ফিরিয়ে দিচ্ছে যাদের CPU ব্যবহারের পরিমাণ 100 এর বেশি।
উদাহরণ 2: Get-Service থেকে নির্দিষ্ট পরিষেবাগুলি নির্বাচন করা
Get-Service | Where-Object { $_.Status -eq 'Running' } | Select-Object Name
এই উদাহরণে, Get-Service সমস্ত পরিষেবার তথ্য রিটার্ন করছে। এরপর Where-Object শুধু চলমান পরিষেবাগুলিকে ফিল্টার করছে এবং Select-Object শুধুমাত্র সেই পরিষেবাগুলির নাম দেখাচ্ছে।
উদাহরণ 3: ফাইলের আকার চেক করা
Get-ChildItem C:\Users | Where-Object { $_.Length -gt 100KB }
এখানে, Get-ChildItem ডিরেক্টরির মধ্যে থাকা ফাইলগুলোকে রিটার্ন করছে, এবং Where-Object শুধুমাত্র সেই ফাইলগুলোকে ফিল্টার করছে যেগুলোর আকার 100KB এর বেশি।
উদাহরণ 4: অবজেক্টের প্রপার্টি নির্বাচন করা
Get-Process | Select-Object Name, Id, CPU
এখানে, Get-Process কমান্ড সমস্ত প্রসেসের অবজেক্ট ফিরিয়ে দিচ্ছে, এবং Select-Object শুধুমাত্র Name, Id, এবং CPU প্রপার্টি প্রদর্শন করছে।
Conclusion
PowerShell-এর Command Pipeline এবং Object Passing একটি অত্যন্ত শক্তিশালী বৈশিষ্ট্য, যা স্ক্রিপ্ট লেখার এবং ডেটা প্রক্রিয়া করার ক্ষেত্রে অনেক সুবিধা দেয়। পাইপলাইনের মাধ্যমে একাধিক কমান্ডকে একত্রিত করে কার্যকরী স্ক্রিপ্ট তৈরি করা যায় এবং অবজেক্ট পাসিংয়ের মাধ্যমে ডেটাকে আরও কার্যকরভাবে এবং স্ট্রাকচারডভাবে পরিচালনা করা সম্ভব হয়।
PowerShell-এ কমান্ডের আউটপুট প্রেজেন্টেশন (presentation) অত্যন্ত গুরুত্বপূর্ণ। যখন আপনি কোনো কমান্ড রান করেন, তখন আউটপুট সাধারণত টেক্সট ফরম্যাটে আসে। তবে, আপনি চাইলে আউটপুটকে আরও সুন্দরভাবে এবং সহজে পড়ার মতো উপস্থাপন করতে পারেন। এর জন্য PowerShell কিছু বিশেষ কমান্ড প্রদান করে, যেমন Format-Table এবং Format-List। এই কমান্ডগুলো ব্যবহার করে আপনি আউটপুটকে টেবিল বা লিস্ট ফরম্যাটে দেখতে পারেন, যা ব্যবহারে আরও সহজ এবং কার্যকর।
Format-Table
Format-Table কমান্ড ব্যবহার করে আপনি কমান্ডের আউটপুটকে একটি টেবিল ফরম্যাটে রূপান্তরিত করতে পারেন। এই ফরম্যাটটি সাধারণত খুব কার্যকরী যখন একাধিক প্রপার্টি বা ফিল্ডের সাথে ডেটা প্রদর্শন করতে হয়। PowerShell আউটপুটকে স্বয়ংক্রিয়ভাবে টেবিল আকারে প্রদর্শন করবে, এবং আপনি চাইলে কিছু কাস্টমাইজেশনও করতে পারেন, যেমন কলামের শিরোনাম পরিবর্তন, নির্দিষ্ট কলাম বাদ দেওয়া, অথবা সজ্জা পরিবর্তন।
Format-Table ব্যবহার:
Get-Process | Format-Table -Property Name, Id, CPU
এই কমান্ডটি আপনার সিস্টেমে চলমান প্রসেসগুলোর নাম (Name), আইডি (Id), এবং CPU ব্যবহার (CPU) একটি টেবিল আকারে প্রদর্শন করবে।
Format-Table এর গুরুত্বপূর্ণ অপশনসমূহ:
- -Property: আপনি যেসব প্রপার্টি টেবিলের কলাম হিসেবে দেখতে চান, সেগুলি নির্বাচন করতে ব্যবহার করা হয়।
- -Autosize: কলামের আউটপুট স্বয়ংক্রিয়ভাবে ফিট করার জন্য ব্যবহৃত হয়।
- -Wrap: কলামের টেক্সট লম্বা হলে তা অটোমেটিক্যালি ভেঙে যাবে।
উদাহরণ:
Get-Process | Format-Table -Property Name, Id, CPU -AutoSize
এই কমান্ডটি টেবিলের কলামগুলোকে এমনভাবে ফরম্যাট করবে যাতে আউটপুট আরও সুন্দর ও পরিপাটি হয়ে দেখা যায়।
Format-List
Format-List কমান্ডটি আউটপুটকে একটি লিস্ট ফরম্যাটে প্রদর্শন করে, যেখানে প্রতিটি প্রপার্টি আলাদা আলাদা লাইনে দেখানো হয়। এটি সাধারণত তখন ব্যবহার করা হয় যখন আপনি একটি কমপ্লেক্স অবজেক্টের সমস্ত প্রপার্টি দেখতে চান বা যখন টেবিল ফরম্যাটে আউটপুট উপযুক্ত না হয়।
Format-List ব্যবহার:
Get-Process | Format-List -Property Name, Id, CPU, Path
এই কমান্ডটি প্রতিটি প্রসেসের নাম (Name), আইডি (Id), CPU ব্যবহার (CPU), এবং প্রোগ্রামের পাথ (Path) লিস্ট আকারে প্রদর্শন করবে।
Format-List এর গুরুত্বপূর্ণ অপশনসমূহ:
- -Property: যেসব প্রপার্টি আপনি দেখতে চান, সেগুলি নির্বাচন করতে ব্যবহার করা হয়।
- *** (Asterisk)**: সমস্ত প্রপার্টি দেখতে হলে আপনি
*ব্যবহার করতে পারেন।
উদাহরণ:
Get-Process | Format-List *
এই কমান্ডটি প্রতিটি প্রসেসের সমস্ত প্রপার্টি এবং তাদের মান লিস্ট আকারে দেখাবে।
Format-Table বনাম Format-List এর পার্থক্য
- Format-Table:
- আউটপুট টেবিল আকারে প্রদর্শন করে।
- প্রতিটি কলামকে একটি নির্দিষ্ট প্রপার্টি দ্বারা প্রতিনিধিত্ব করা হয়।
- আউটপুটটি আরও কমপ্যাক্ট এবং সহজে পড়ার মতো হয় যখন একাধিক প্রপার্টি থাকে।
- Format-List:
- আউটপুট লিস্ট আকারে প্রদর্শন করে, যেখানে প্রতিটি প্রপার্টি একটি আলাদা লাইন হিসেবে দেখা যায়।
- কমপ্লেক্স অবজেক্টগুলোর সকল প্রপার্টি বিস্তারিতভাবে দেখানোর জন্য উপযুক্ত।
অন্যান্য Format কমান্ড
PowerShell আরও কিছু Format কমান্ড প্রদান করে যা আউটপুটকে বিভিন্ন ফরম্যাটে উপস্থাপন করতে সহায়তা করে। উদাহরণস্বরূপ:
Format-Wide: একক কলামে আউটপুট প্রদর্শন করে। সাধারণত, একাধিক আইটেম বা কমপ্লেক্স অবজেক্টের ক্ষেত্রে এটি ব্যবহার করা হয়।
Get-Process | Format-Wide -Property Name- Format-Table এবং Format-List এর মধ্যে পার্থক্য:
- Format-Table সাধারণত কমপ্যাক্ট টেবিল আউটপুটের জন্য ব্যবহৃত হয়, যেখানে অনেকগুলি প্রপার্টি দেখতে হয়।
- Format-List ব্যবহৃত হয় যখন আপনাকে সমস্ত প্রপার্টি এবং তাদের মান দেখতে হয়।
উপসংহার
PowerShell এর Format-Table এবং Format-List কমান্ড দুটি আউটপুট ফরম্যাটিংয়ের জন্য অত্যন্ত গুরুত্বপূর্ণ টুল। আপনি যখন অনেক প্রপার্টি এবং ডেটা দেখতে চান, তখন Format-Table আপনাকে একটি পরিষ্কার টেবিল আকারে আউটপুট প্রদান করবে। অন্যদিকে, যখন আপনি একটি অবজেক্টের সমস্ত প্রপার্টি দেখতে চান, তখন Format-List উপযুক্ত হবে। PowerShell এর এই ফরম্যাটিং কমান্ডগুলো ব্যবহারের মাধ্যমে আপনি আউটপুটকে আরও পড়তে সুবিধাজনক এবং কার্যকরী করতে পারেন।
Read more