PowerShell হল একটি শক্তিশালী কমান্ড-লাইন শেল এবং স্ক্রিপ্টিং ভাষা যা সিস্টেম অ্যাডমিনিস্ট্রেশন, অটোমেশন, এবং কনফিগারেশন ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এটি Microsoft দ্বারা তৈরি এবং Windows ও Linux উভয় প্ল্যাটফর্মে উপলব্ধ। PowerShell এর মাধ্যমে আপনি কম্পিউটার এবং সার্ভারের বিভিন্ন কাজ স্ক্রিপ্টের মাধ্যমে অটোমেট করতে পারেন, সিস্টেম ফাইল ম্যানেজ করতে পারেন, এবং বিভিন্ন অ্যাপ্লিকেশন পরিচালনা করতে পারেন।
PowerShell ইন্টারফেস
PowerShell দুটি প্রধান ইন্টারফেসের মাধ্যমে কাজ করে:
১. PowerShell Console
এটি একটি টেক্সট-ভিত্তিক ইন্টারফেস যা কমান্ডগুলি সরাসরি টাইপ করে চালানো যায়। আপনি এখানে cmdlets, scripts, এবং commands লিখে এগুলো এক্সিকিউট করতে পারেন।
২. PowerShell ISE (Integrated Scripting Environment)
PowerShell ISE একটি GUI (Graphical User Interface) ভিত্তিক অ্যাপ্লিকেশন যা স্ক্রিপ্ট লেখার এবং সম্পাদনা করার জন্য উপযুক্ত। এটি কোড হাইলাইটিং, ডিবাগিং, এবং স্ক্রিপ্টের বিভিন্ন অংশ চালানোর সুবিধা দেয়।
PowerShell Command Execution
PowerShell কমান্ডগুলি সাধারণত cmdlets, scripts, এবং functions হিসেবে কার্যকরী হয়। নিচে কমান্ড এক্সিকিউশন এর মূল ধারণাগুলি আলোচনা করা হলো:
১. Cmdlets
Cmdlets হল PowerShell এর ছোট এবং সুনির্দিষ্ট কমান্ড। এগুলি সাধারণত কাজের একটি নির্দিষ্ট অংশ সম্পাদন করে, যেমন ফাইল ম্যানিপুলেশন, সিস্টেম কনফিগারেশন, বা অন্য কোনো কার্য সম্পাদন।
Cmdlet এর গঠন: PowerShell Cmdlets সাধারণত একটি বিশেষ Verb-Noun ফর্মে লেখা হয়:
- Verb: একটি ক্রিয়া বা কাজ (যেমন
Get,Set,Remove,Newইত্যাদি)। - Noun: যে বস্তু বা সিস্টেমে কাজ করা হবে (যেমন
Process,Service,Item,File, ইত্যাদি)।
উদাহরণ:
- Get-Process: চলমান প্রসেসগুলো দেখাবে।
- Set-Item: একটি আইটেম (ফাইল, ডিরেক্টরি, ইত্যাদি) সেট করতে ব্যবহৃত হয়।
২. Cmdlet এক্সিকিউট করা
PowerShell তে একটি কমান্ড এক্সিকিউট করতে, শুধু কমান্ডটি টাইপ করুন এবং Enter চাপুন:
Get-Process
এটি সব চলমান প্রসেসগুলোর একটি তালিকা প্রদর্শন করবে।
৩. Pipelines
PowerShell এর pipeline ক্ষমতা আপনাকে একটি কমান্ডের আউটপুট পরবর্তী কমান্ডে প্রেরণ করতে দেয়। আপনি একাধিক কমান্ড সংযুক্ত করতে পারেন এবং তাদের মধ্যে তথ্য স্থানান্তর করতে পারেন।
উদাহরণ:
Get-Process | Where-Object { $_.CPU -gt 100 }
এটি সমস্ত প্রসেসের মধ্যে যেগুলির CPU usage 100 এর বেশি, সেগুলির তথ্য দেখাবে। $_ একটি বিশেষ ভেরিয়েবল যা পিপলাইনে প্রাপ্ত প্রতিটি অবজেক্ট নির্দেশ করে।
৪. Parameters এবং Arguments
Cmdlet-এ parameters বা arguments ব্যবহার করে আপনি বিশেষ ইনপুট প্রদান করতে পারেন। এই ইনপুটগুলি কমান্ডের কাজকে পরিবর্তন বা কনফিগার করতে সাহায্য করে।
উদাহরণ:
Get-Process -Name "notepad"
এখানে -Name একটি parameter এবং "notepad" হল একটি argument যা শুধুমাত্র notepad প্রসেসের তথ্য দেখাবে।
৫. Aliases
PowerShell এ অনেক কমান্ডের জন্য সংক্ষিপ্ত রূপ বা alias থাকতে পারে। যেমন:
lsহলGet-ChildItemএর aliasdirহলGet-ChildItemএর aliasrmহলRemove-Itemএর alias
আপনি এগুলির মাধ্যমে কমান্ড দ্রুত লিখতে পারেন।
PowerShell Scripts
PowerShell স্ক্রিপ্ট একটি বা একাধিক কমান্ডের একটি সেট, যা একাধিক কাজ সম্পাদন করতে পারে। স্ক্রিপ্টগুলির ফাইল এক্সটেনশন .ps1 হয়।
১. PowerShell Script তৈরি করা
PowerShell স্ক্রিপ্ট তৈরির জন্য একটি সাধারণ টেক্সট এডিটর (যেমন Notepad বা PowerShell ISE) ব্যবহার করতে পারেন। স্ক্রিপ্টে একাধিক কমান্ড থাকতে পারে।
উদাহরণ স্ক্রিপ্ট:
# PowerShell Script Example
$ProcessName = "notepad"
$Process = Get-Process -Name $ProcessName
if ($Process) {
Write-Host "$ProcessName is running."
} else {
Write-Host "$ProcessName is not running."
}
এই স্ক্রিপ্টটি চেক করবে যে Notepad প্রসেস চলছে কিনা এবং ফলস্বরূপ একটি বার্তা প্রদর্শন করবে।
২. Script Execute করা
একটি PowerShell স্ক্রিপ্ট চালাতে, আপনি স্ক্রিপ্টের অবস্থানে গিয়ে কমান্ড ব্যবহার করতে পারেন:
.\scriptname.ps1
নোট: PowerShell এ স্ক্রিপ্ট চালানোর জন্য Execution Policy সেটিংস পরিবর্তন করতে হতে পারে। RemoteSigned বা Unrestricted পলিসি চালু করতে:
Set-ExecutionPolicy RemoteSigned
PowerShell Variables এবং Data Types
১. Variables
PowerShell এ ভেরিয়েবলগুলি $ চিহ্ন দিয়ে শুরু হয় এবং এগুলিতে ডেটা সংরক্ষণ করা হয়।
উদাহরণ:
$Name = "John"
$Age = 25
২. Data Types
PowerShell ভেরিয়েবলগুলির জন্য বিভিন্ন ডেটা টাইপ সমর্থন করে, যেমন:
- String: টেক্সট ডেটা
- Integer: পূর্ণসংখ্যা
- Boolean: সত্য/মিথ্যা মান
- Array: একাধিক মান সংরক্ষণ করার জন্য
উদাহরণ:
$Name = "John"
$Age = 25
$IsAdmin = $true
$Numbers = @(1, 2, 3, 4)
PowerShell Help System
PowerShell তে সাহায্য পেতে Get-Help কমান্ড ব্যবহার করা হয়। আপনি যে কোন cmdlet বা ফিচারের সাহায্য দেখতে পারেন।
উদাহরণ:
Get-Help Get-Process
এটি Get-Process কমান্ডের বিস্তারিত সহায়িকা প্রদর্শন করবে।
Get-Help এর সাথে আপনি আরও কিছু অপশন ব্যবহার করতে পারেন, যেমন:
-Examples: কমান্ডের উদাহরণ দেখাবে।-Full: পূর্ণ সাহায্য দেখাবে।
PowerShell Error Handling
PowerShell তে Error Handling করতে আপনি Try-Catch ব্লক ব্যবহার করতে পারেন। এটি কোনো ত্রুটি ঘটলে তা পরিচালনা করতে সহায়ক।
উদাহরণ:
Try {
# কিছু কোড যা ত্রুটি ঘটাতে পারে
Get-Item "C:\NonExistentFile.txt"
} Catch {
Write-Host "Error: $($_.Exception.Message)"
}
Conclusion
PowerShell হল একটি অত্যন্ত শক্তিশালী টুল যা সিস্টেম অ্যাডমিনিস্ট্রেশন এবং স্ক্রিপ্টিং-এর জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি কম্পিউটার এবং সার্ভারের বিভিন্ন কাজ অটোমেট করতে পারেন, কমান্ড-লাইন থেকে কাজ করতে পারেন, এবং সিস্টেমের বিভিন্ন প্রসেস এবং ফাইল ম্যানেজ করতে পারেন। PowerShell-এর সঠিক ব্যবহার শিখলে আপনি দ্রুত এবং কার্যকরভাবে সিস্টেম ম্যানেজমেন্ট করতে পারবেন।
Read more