পাওয়ারশেল আপনাকে আপনার উইন্ডোজ পিসি-এর ऊपर পূর্ণ নিয়ন্ত্রণ দেয়, এবং এটি শিখা সহজ। তাই কমান্ড প্রম্পট ছাড়ুন এবং উইন্ডোজ পাওয়ারশেল কমান্ড ব্যবহার করে সেসব পুনরাবৃত্ত প্রশাসনিক কাজগুলো অটোমেট করুন।
পাওয়ারশেল শিখলে আপনি লিনাক্সের ব্যাশ শেল (bash shell) এর ভেতরে অধিকাংশ প্রশাসনিক কাজ হ্যান্ডল করার পদ্ধতিও শিখবেন। পাওয়ারশেল অধিকাংশ লিনাক্স ডিস্ট্রোর মতই।
পাওয়ারশেল কী?
উইন্ডোজ পাওয়ারশেল হলো মাইক্রোসফট দ্বারা সিস্টেম অ্যাডমিনিস্ট্রেটরদের জন্য বিকশিত একটি কমান্ড-লাইন ইন্টারফেস এবং স্ক্রিপ্টিং ল্যাঙ্গুয়েজ। কিন্তু আপনাকে অ্যাডমিন বা প্রোগ্রামার হতে হবে না এটি ব্যবহার করার জন্য, কারণ এটি অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজের চেয়ে অনেক সহজ। এটি সাধারণ ইংরেজির মত, এবং সবাই এটি বুঝতে এবং কম্পিউটার প্রশাসন করতে ব্যবহার করতে পারে।
উইন্ডোজ পাওয়ারশেলে ব্যবহৃত কমান্ডগুলোকে "cmdlets" বলা হয়। এগুলো আপনাকে আপনার কম্পিউটারে একটি নির্দিষ্ট অ্যাকশন, বা অ্যাকশনের সিরিজ, এক্টিভেট করতে দেবে। এই অ্যাকশনগুলো সহজ হতে পারে, যেন ওয়ায়ারলেস নেটওয়ার্কে লগ ইন করা, বা জটিল, যেন নির্দিষ্ট পুনরাবৃত্ত কাজগুলো অটোমেট করা।
পাওয়ারশেল খোলার জন্য, Start বাটন চাপুন, সার্চ বক্সে "powershell" টাইপ করুন, এবং Windows PowerShell সিলেক্ট করুন। আপনি কমান্ড-লাইন ইন্টারফেসে খুলবেন, যেখানে আপনি কমান্ড টাইপ করার জন্য প্রস্তুত।
এই আর্টিকেলে, আমরা দশটি সবচেয়ে উপকারী এবং সহজ পাওয়ারশেল কমান্ডের ওপর আলোচনা করব।
1. Get-Help
Get-Help cmdlet পাওয়ারশেলে শুরু করার জন্য একটি দুর্দান্ত জায়গা। এটি আপনি কী কী করতে পারেন তার একটি ওভারভিউ দেয় এবং কোনো নির্দিষ্ট cmdlet-র উপর আরও ইনফরমেশন দরকার হলে সেটিও দেয়।
সহজে পাওয়ারশেল উইন্ডো খুলুন এবং Get-Help টাইপ করুন। এটি একটি ব্যাপক ওভারভিউ খুলবে যা আপনাকে শিখাবে পাওয়ারশেল কী, এবং আপনি এর কার্যকারিতা ও কাঠামো বুঝতে পারবেন। আপনি ইন্টারফেসের মাধ্যমে সরাসরি উন্নত হেল্প ফাইলসও ওয়েব থেকে অ্যাক্সেস করতে পারেন। আপনি এই ফাইলগুলো পরবর্তী ব্যবহার জন্য ডাউনলোডও করতে পারেন।
কিন্তু Get-Help কমান্ডের কথা এটাই নয়। টাইপ করুন:
Get-Help *
পাওয়ারশেল আপনাকে সেই মুহূর্তে ব্যবহার করা যাওয়া সকল cmdlets-এর তালিকা দেখাবে। তালিকাটি খুব বড় হতে পারে, এবং আপনাকে সব cmdlet শিখতে হবে না। কিন্তু বাধা নেই, পড়ুন এবং আপনার উপলব্ধ সকল সম্ভাবনা এক্সপ্লোর করুন।
টাইপ করুন:
Get-Help <command name>
ব্র্যাকেটগুলো লাগবে না, শুধু আপনি যে কমান্ডে আগ্রহী তার নাম টাইপ করুন, এবং এই cmdlet আপনাকে সেটি সম্পর্কে বেসিক ইনফো দেবে। কোনো কমান্ডের আরও বিস্তারিত ব্যাখ্যা পেতে, টাইপ করুন:
Get-Help <command name> -Full
আপনি যদি কোনো নির্দিষ্ট কমান্ড কীভাবে ব্যবহার করবেন তার উদাহরণ দরকার হয়, টাইপ করুন:
Get-Help <command name> -Example
2. Get-Command
আপনি কি কোনো নির্দিষ্ট কমান্ড, বা কমান্ডের সেট সম্পর্কে দ্রুত ইনফরমেশন পেতে চান? Get-Command cmdlet সেটি আপনার জন্য করবে। Get-Command-এ অনেক অপশন আছে, কিন্তু আপনি পাওয়ারশেলের বেসিক ইউজার হিসেবে সেগুলোর অধিকাংশের প্রয়োজন নেই। এখানে কিছু বেসিক cmdlet আছে যা সাহায্য করবে, বিশেষ করে উপলব্ধ কমান্ডগুলো নেভিগেট করার সময়।
আপনি যদি একই টাইপের নির্দিষ্ট cmdlets-এর তালিকা চান:
Get-Command -<CommandType>
উদাহরণস্বরূপ, এই জটিল ফ্রেজ আপনার কম্পিউটারকে অর্ডার দেবে সকল cmdlet টাইপের কমান্ডের তালিকা দেখানোর জন্য এবং তাদের নামের noun (বিশেষ্য) অনুযায়ী অ্যালফাবেটিক্যালি সোর্ট করার জন্য:
Get-Command -Type Cmdlet | Sort-Object -Property Noun| Format-Table -GroupBy Noun
এটি একটি জটিল কমান্ডের চমৎকার উদাহরণ যা পাওয়ারশেলকে একটি জটিল টাস্ক এক্সিকিউট করতে বাধ্য করবে। একবার আপনি সিনট্যাক্স বুঝতে পারলে, আপনি দেখবেন পাওয়ারশেল ব্যবহার করা অনেক সময়ের সবচেয়ে দ্রুত এবং সহজ পথ।
আপনি যদি নাম দিয়ে কোনো নির্দিষ্ট কমান্ড খুঁজতে চান, সহজে টাইপ করুন:
Get-Command -Name <name of command>
আপনি যদি কমান্ডের সঠিক নাম না জানেন, কিন্তু নামের অংশটি জানেন, তবে টাইপ করুন:
Get-Command -Name <name of command> -UseFuzzyMatching
এই cmdlet আপনার কম্পিউটারকে টাস্ক দেবে যা আপনি <name> ফিল্ডে টাইপ করেছেন তার সাথে ক্লোজলি ম্যাচ করা কমান্ডগুলো খুঁজে বের করতে। আপনি এই cmdlet ব্যবহার করতে পারেন যদি আপনি বানান ভুল করার প্রবণ থাকেন এবং সবসময় নিজেকে সংশোধন করতে চান না।
3. Get-Content
আপনি যদি কোনো ফাইলটির কন্টেন্ট দেখতে চান, তবে Get-Content cmdlet ব্যবহার করুন। আপনাকে সেটি ফাইলের সঠিক লোকেশন নির্দিষ্ট করতে হবে যাতে আপনার কম্পিউটার সেটি খুঁজে পাবে।
উপরের উদাহরণে, আপনি এই উদ্দেশ্যে তৈরি একটি টেস্ট টেক্সট ফাইলের কন্টেন্ট দেখতে পাচ্ছেন। এটি একটি সহজ কমান্ড, কিন্তু আপনি যদি জানেন এটি কী করে, তবে আপনি এটি অন্যান্য কমান্ডের সাথে কম্বাইন করে উইন্ডোজ পাওয়ারশেলের মাধ্যমে বাস্তবিক শক্তিশালী টাস্কগুলো পারফর্ম করতে পারেন।
4. Get-Process
Get-Process cmdlet আপনাকে আপনার কম্পিউটারে বর্তমানে চলমান প্রসেসগুলো সম্পর্কে ইনফরমেশন দেবে। আপনি মেমরি ইউজ, সিপিইউ সাইকেল, প্রসেস আইডি, এবং অন্যান্য অ্যাট্রিবিউট দেখতে পারেন।
আপনি এই cmdlet-র সাথে প্রসেসের নাম যোগ করলে, আপনি একটি নির্দিষ্ট প্রসেসের ইনফরমেশন দেখতে পারেন। উদাহরণস্বরূপ, আপনি যদি ডিসকোর্ড অ্যাপ্লিকেশন প্রসেসের ইনফরমেশন চান, সহজে Get-Process Discord টাইপ করুন।
আপনি পাওয়ারশেলের মাধ্যমে প্রসেস শুরু বা বন্ধ করতে পারেন সিনট্যাক্সের "Get" প্রিফিক্সটি রিপ্লেস করে। একটি প্রসেস শুরু করতে, টাইপ করুন:
Start-Process <process name or ID>
একটি প্রসেস বন্ধ করতে, টাইপ করুন:
Stop-Process <process name or ID>
5. Get-Service
একজন সিস্টেম অ্যাডমিনিস্ট্রেটর হিসেবে, আপনি Get-Service cmdlet খুব উপকারী পাবেন। এই সহজ cmdlet আপনার সিস্টেমে বর্তমানে চলমান সকল সার্ভিস দেখাবে এবং আপনাকে সেগুলো কন্ট্রোল করতে দেবে। এর মানে আপনি আপনার কম্পিউটার চালানোর জন্য কাজ করছে সকল প্রোগ্রাম দেখতে পাবেন।
এখন আপনি সার্ভিসের নাম ব্যবহার করে সেটি কন্ট্রোল করতে পারেন। Restart-Service <service name> কমান্ড ব্যবহার করে আটকে যাওয়া সার্ভিসগুলো রিস্টার্ট করুন, Stop-Service <service name> দিয়ে সেগুলো সম্পূর্ণ বন্ধ করুন, এবং Start-Service দিয়ে আবার শুরু করুন।
6. Get-Item
আপনার যদি কোনো নির্দিষ্ট আইটেম দরকার হয়, তবে আপনার অপারেটিং সিস্টেমের ইন্টিগ্রেটেড সার্চ बार ব্যবহার করার চেয়ে পাওয়ারশেল দিয়ে সেটি খুঁজে বের করা দ্রুত হতে পারে। এটি বিশেষ করে সুবিধাজনক যদি আপনি ফাইলটির লোকেশন জানেন। সহজে এইভাবে কমান্ডটি ব্যবহার করুন:
Get-Item C:
এটি আপনাকে "C:" হার্ড ড্রাইভের ফাইলগুলোর তালিকা দেবে। আপনি আরও স্পেসিফিক হতে পারেন এবং ইউজারের প্রোফাইল এর আন্ডারে থাকা সকল ডিরেক্টরিতে বা আরও গভীরে "documents" বা "downloads" ডিরেক্টরিতে সার্চ করতে পারেন। এর জন্য টাইপ করুন:
Get-Item C:\users\<user name>\*
আপনি যদি একটি কন্টেইনার (যেমন সিস্টেম ডিরেক্টরি) থেকে চাইল্ড আইটেম রিট্রিভ করতে চান, তবে cmdlet Get-ChildItem ব্যবহার করতে পারেন। এই কমান্ড আপনাকে সেই কন্টেইনারের ভেতরে সকল ফাইল এবং ডিরেক্টরি দেখাবে। Get-Item cmdlet-এর মতই, আপনাকে কন্টেইনারের পাথ নির্দিষ্ট করতে হবে।
আইটেম ডিলিট করতে, আপনি "Get" সাফিক্সটি "Remove" দিয়ে রিপ্লেস করতে পারেন। এটি আপনাকে ফাইল এবং ফোল্ডার থেকে শুরু করে রেজিস্ট্রি কী এবং ফাংশন পর্যন্ত সব কিছু ডিলিট করতে দেবে। টাইপ করুন Remove-Item <location\ name>। আপনি এই cmdlet আরও εξtenuেট করতে পারেন এবং শুধু হিডেন এবং "read-only" ফাইল ডিলিট করতে পারেন বা নির্দিষ্ট ফোল্ডার এবং সাবফোল্ডার থেকে আইটেম ডিলিট করতে পারেন।
7. ConvertTo-Html
এই কমান্ড আপনাকে একটি .NET অবজেক্টকে HTML ফাইলে রূপান্তরিত করতে সাহায্য করবে যা ওয়েব ব্রাউজারে প্রদর্শন করা যায়। এটি একটি আউটপুট cmdlet যার মানে এটি অন্যান্য cmdlets-এর সাথে খুব ভালো কাজ করে। সহজে এটিকে অন্যান্য cmdlets-এর শেষে যোগ করুন এবং একটি নির্দিষ্ট ফাইল পাথ অন্তর্ভুক্ত করুন।
উদাহরণস্বরূপ, আপনি যদি একটি HTML ফাইল তৈরি করতে চান যা লোকাল কম্পিউটারের বর্তমান সকল প্রসেসের নাম, পাথ, এবং কোম্পানির নাম দেখাবে, টাইপ করুন:
Get-Process | ConvertTo-Html -Property Name, Path, Company -Title "Process Information" | Out-File filename.htm
filename.hs কে আপনার চাওয়া যেকোনো ফাইল নাম দিয়ে রিপ্লেস করুন।
তৈরি করা ফাইলটি খোলার জন্য, Invoke-Item cmdlet প্লাস <file name.htm> ব্যবহার করুন। কন্টেন্টটি নিচের ছবির মত দেখাবে।
8. Set-ExecutionPolicy
আপনি যদি লোকাল পাওয়ারশেল স্ক্রিপ্ট রান করতে চান, তবে আপনাকে পাওয়ারশেলের এক্সিকিউশন পলিসি বদলাতে হবে। উইন্ডোজ কম্পিউটারে, এক্সিকিউশন পলিসি সবসময় রিস্ট্রিক্টেড থাকে, এবং আপনাকে এটি RemoteSigned বা Unrestricted-এ বদলাতে হবে। নন-উইন্ডোজ কম্পিউটারে যেন লিনাক্স বা ম্যাক, এটি সাধারণত Unrestricted-এ সেট থাকে, এবং এটিকে বদলা যায় না।
আপনি যদি পাওয়ারশেল এক্সিকিউশন পলিসি সম্পর্কে আরও জানতে চান, সহজে টাইপ করুন:
help Set-ExecutionPolicy
পাওয়ারশেল আপনার কম্পিউটারে এক্সিকিউশন পলিসি সম্পর্কে হেল্প ফাইলস দেখাবে বা আপনাকে জানাবে যদি কোনো থাকে না। কিন্তু এটি আপনাকে একটি লিংকও দেবে যা আপনি ফলো করে অনলাইন পড়তে পারেন।
পলিসি RemoteSigned-এ সেট করতে, সহজে টাইপ করুন:
Set-Executionpolicy RemoteSigned
Unrestricted-এ সেট করতে টাইপ করুন:
Set-Executionpolicy Unrestricted
এক্সিকিউশন পলিসির বর্তমান সেটিং চেক করতে, টাইপ করুন:
Get-Executionpolicy
কারণ এক্সিকিউশন পলিসিস পাওয়ারশেলের সিকিউরিটি স্ট্র্যাটেজির অংশ, এটি আপনাকে পরিবর্তন কনফার্ম করতে বলবে। শুধু Y টাইপ করুন যদি আপনি নিশ্চিত হয়েন আপনি এগিয়ে যেতে চান।
9. Select-Object
এই কমান্ডটি অবজেক্ট এবং অবজেক্ট সেট, ইউনিক অবজেক্ট, এবং একটি অ্যারে-এ নির্দিষ্ট পজিশনে থাকা অবজেক্ট সিলেক্ট করতে ব্যবহৃত হয়। আপনি যে অবজেক্টগুলো সিলেক্ট করতে চান সেগুলো নির্দিষ্ট করার জন্য আপনি ব্যবহার করতে পারেন বিভিন্ন প্যারামিটার। তাদের মধ্যে রয়েছে প্রপার্টি, न्यুমেরিক ভ্যালু, এবং স্পেসিফিক ইনপুট অবজেক্ট।
প্রপার্টি অ্যাট্রিবিউট দিয়ে অবজেক্ট সিলেক্ট করতে, আপনাকে অ্যাট্রিবিউটগুলো নির্দিষ্ট করতে হবে যেন নাম, আইডি, বা CPU। আপনি অ্যাট্রিবিউটগুলো গ্রুপও করতে পারেন, কিন্তু কমান্ডে টাইপ করার সময় কমা দিয়ে আলাদা করতে হবে। Select-Object cmdlet কাজে দেখতে, টাইপ করুন:
Get-Process | Select-Object -Property ProcessName, Id, CPU
পাওয়ারশেল বর্তমান সকল প্রসেস এবং তাদের অ্যাট্রিবিউট লিস্ট করবে, নিচের ছবির মত।
আপনি এখন -ExpandProperty কমান্ড ব্যবহার করে নির্দিষ্ট অ্যাট্রিবিউট সম্পর্কে বিস্তারিত ইনফরমেশন পেতে পারেন। আপনি যদি ProcessName অ্যাট্রিবিউটের টাইপের Modules প্রপার্টি সম্পর্কে ডিটেইল চান:
Get-Process Chrome | Select-Object -Property ProcessName -ExpandProperty Modules | Format-list
"Format-list" আউটপুট কমান্ডটি রেজাল্টকে ফরম্যাট করা এবং পড়া সুবিধাজনক बनाने জন্য আছে।
10. Export-CSV
কখনো কখনো পাওয়ারশেল কমান্ডের রেজাল্ট খুব লম্বা লিস্ট আনে, যেমন আমরা Get-Command cmdlet-এ দেখেছি। লম্বা লিস্ট এবং প্রচুর ইনফরমেশন পড়া কঠিন, এবং আপনি চাবেন আরও আর্গানাইজড রূপে পাওয়া। এটি করার জন্য, সকল ডেটা একটি CSV ফাইলে এক্সপোর্ট করুন। আপনি পাওয়ারশেলের ভেতরেই Export-CSV ফাংশন ব্যবহার করে সরাসরি এটি করতে পারেন।
উদাহরণস্বরূপ, আমরা দেখেছি যে Get-Command cmdlet আমাদের ওই মুহূর্তে পাওয়ারশেলে ব্যবহার করা যাওয়া সকল উপলব্ধ cmdlets-এর একটি লম্বা তালিকা দেয়। আপনি Get-Command এবং Export-CSV কম্বাইন করে একটি বিস্তারিত তালিকা তৈরি করতে পারেন কমা-সেপারেটেড ভ্যালুসহ যেন নাম, সোর্স, এবং ভার্সন যা এক্সেলের মত অ্যাপগুলো রিকগনাইজ করতে পারে।
এটি করতে, নিচের কমান্ডটি পাওয়ারশেল কমান্ড প্রম্পটে টাইপ করুন কিন্তু মনে রাখবেন আপনি যেকোনো পাথ সেট করতে পারেন, এবং আপনার ফাইলটিকে ভিন্ন নামও দিতে পারেন:
Get-Command | Select Name, Source, Version | export-csv D:\AllCommands.csv
এখন আপনি এক্সেলে লিস্টটি খুলতে পারেন, এবং আপনি নিচের ছবির মত কিছু দেখতে পাবেন।