در ویندوز 11 و ویندوز 10 واسط خط دستور جدیدی به اسم PowerShell در کنار cmd قدیمی دیده میشود و بسیاری از کاربران ویندوز که از cmd استفاده کردهاند و با برخی کد های جالب cmd آشنایی دارند، برایشان سوال است که تفاوت cmd و powershell چیست و آیا باید از این پس از پاورشل استفاده کرد؟
در ادامه به پاسخ این سوال میپردازیم و همینطور با اپلیکیشن جدیدی به اسم Terminal در ویندوز 11 آشنا میشویم. با سیارهی آیتی در ادامهی مطلب همراه شوید.
کار با cmd برای افراد حرفهای که در امور شبکه و امنیت فعالیت میکنند، به نوعی یک ضرورت است اما شاید تاکنون از آن استفاده نکرده باشید! در واقع واسط خط دستور چیزی نیست که همهی افراد از آن استفاده کنند. البته برای کاربران مبتدی ویندوز هم مواقعی پیش میآید که برای حل کردن یک مشکل خاص یا انجام یک ترفند جالب، به واسط خط دستور مراجعه کنند. نکتهی جالب این است که کاربران مبتدی دستورات خاص و جالب را به عنوان کد های مخفی cmd یا نوعی کد تقلب میشناسند اما در واقع این کدها، دستورات CMD است.
تفاوت cmd و powershell چیست؟
واسط خط دستور مدرنتر و پیشرفتهتر ویندوز که PowerShell نام دارد، به صورت پیشفرض در ویندوزهای جدید نصب شده و میتوانید در کنار CMD از آن استفاده کنید. شاید فکر کنید که این واسط خط دستور در همین چند سال اخیر مورد استفاده قرار گرفته اما در حقیقت مایکروسافت در سال ۲۰۰۶ این واسط خط دستور را معرفی کرده است! به عبارت دیگر در سال ۲۰۲۳ حدود ۱۷ سال از تاریخ معرفی پاورشل گذشته است و میتوان گفت که واقعاً قدیمی شده است.
مایکروسافت طراحی پاورشل را مبتنی بر فریمورک داتنت انجام داده است، بنابراین میتوانید از زبانهای برنامهنویسی که در استفاده از .Net Framework متداول است، در محیط PowerShell استفاده کنید. بنابراین محبوبترین زبان برنامهنویسی برای کار در محیط پاورشل ویندوز، زبان C# است. سی شارپ یک زبان برنامهنویسی قدرتمند است و لذا توانمندی پاورشل به مراتب بیشتر از cmd است.
در پاورشل امکان اجرا کردن دستورات معمولی cmd وجود دارد. لذا با آگاهی از بهترین دستورات cmd میتوانید به سادگی از پاورشل استفاده کنید و با مشکل خاصی روبرو نمیشوید. حتی امکان اجرا کردن فایلهای Batch که حاوی مجموعهای از دستورات هستند نیز وجود دارد، درست مشابه cmd. البته در اتوماسیون به کمک فایلهای Batch قابلیت زمانبندی امور نیز فراهم شده که مزیت مهمی نسبت به cmd است.
اما در عین حال مایکروسافت یک کلاس سی شارت خاص به نام light commands در پاورشل استفاده کرده که بیش از ۲۰۰ تابع و مجموعه دستور دارد. امکان نصب ماژولهای اضافی برای توسعهی پاورشل نیز یک مزیت مهم است. به عنوان مثال میتوانید با برنامههای نصب شده در ویندوز که مبتنی بر هستهی دات نت هستند، تعامل داشته باشید و ورودیهایی به این برنامهها بدهید، آن هم به صورت مستقیم از طریق واسط خط دستور PowerShell. این قابلیتهای جالب نشان میدهد که چرا مایکروسافت گزینهی cmd را از منوی استارت و منوی راستکلیک روی آیکون ویندوز حذف کرده و به جای آن گزینهی Windows PowerShell را جایگزین کرده است.
Windows Terminal چیست و چه فرقی با cmd دارد؟
مایکروسافت در نسخههای جدیدتر و بروزتر ویندوز ۱۱ یک برنامهی جدید به اسم Windows Terminal اضافه کرده که به کمک آن میتوانید cmd و PowerShell را در یک پنجره و تبهای مختلف داشته باشید. درست شبیه به باز کردن چند تب در مرورگر گوگل کروم یا موزیلا فایرفاکس و برخی برنامههای دیگر. بنابراین ترمینال ویندوز یک واسط خط دستور جدید نیست بلکه چند واسط خط دستور را یک جا جمع کرده است. البته برای اجرا کردن دستورات ترمینال لینوکس و استفاده از BASH لازم است که ابتدا زیرسیستم لینوکسی برای ویندوز یا به اختصار WSL را در ویندوز فعال کنید.
همانطور که در تصویر زیر مشاهده می کنید، امکان باز کردن شل برای کار با سرویس ابری Azure Cloud مایکروسافت نیز وجود دارد.
ویندوز ترمینال برخلاف پاورشل که بسیار قدیمی است، در سال ۲۰۱۹ معرفی شده و در واقع سالها پس از طراحی PowerShell، این برنامه در ویندوز اضافه شده است.
تنظیمات ظاهر ترمینال ویندوز
مهمترین ویژگی و تفاوت برنامه ترمینال در ویندوز 1، ظاهر پیشرفته و قابلیت سفارشیسازی ظاهر آن است. برای باز کردن تب جدید از آیکون + در نوار بالای پنجره استفاده کنید و واسط خط دستور Command Prompt یا PowerShell را انتخاب کنید. به این ترتیب یک تب جدید برای تایپ کردن دستورات باز میشود. برای دسترسی به تنظیمات، روی فلش ایجاد تب جدید کلیک کنید و گزینهی Settings را انتخاب کنید. یا تغییر دادن تنظیمات فونت و رنگ، شاید استفاده از واسط خط دستور برای کاربر سادهتر شود.
پشتیبانی از ایموجی و کاراکترهای یونیکد
در برنامهی جدید Windows Terminal کاربر میتواند از ایموجیها و حروف زبانهای مختلف استفاده کند چرا که این برنامه از یونیکد و UTF به خوبی پشتیبانی میکند. لذا میتوانید ایموجی و کاراکترهایی زبانهایی به جز انگلیسی را به سادگی در واسط خط دستور پیست کنید. البته در اینکد و اجرای فرمان ممکن است مشکلات و محدودیتهایی وجود داشته باشد و بهتر است از این موارد استفاده نکنید. علاوه بر این رندرینگ متن توسط GPU یا پردازندهی گرافیکی صورت میگیرد و در نتیجه در برنامههای طولانی که دستورات به سرعت اجرا میشوند، خوانایی دستورات بهینهتر است.
با کمی جستجو کردن، هزاران مقاله و سایت در مورد بهترین دستورات cmd و شیوه کار با دستورات cmd پیدا میکنید. شاید تصور کنید که ویندوز ترمینال جدید است و به راحتی منبع آموزشی و مقاله در مورد آن پیدا نمیشود. اما این طور نیست. پروژهی برنامه Windows Terminal و همینطور پاورشل، متن باز است و برنامهنویسان بسیار زیادی در توسعه همکاری میکنند. کسانی که به دنبال فروم پرسش و پاسخ هستند و همینطور افرادی که به دنبال آموزش ترمینال ویندوز هستند، منابع زیادی برای آموزش و پیشرفت کار پیدا میکنند.
makeuseofسیارهی آیتی