رابط خط فرمان یا CLI یک برنامه قدرتمند است، اما استفاده از آن همیشه با استقبال خوبی روبهرو نشده است. کاربران تازهکار تمایلی به استفاده از آن ندارند و فکر میکنند که این ابزار فقط برای کاربران حرفهای طراحی شده است. اما این تصور درست نیست. در این مقاله، هر آنچه را که باید در ارتباط با موضوع CLI چیست بدانید، یاد خواهید گرفت.
CLI چیست؟
واسط خط فرمان (Command-Line Interface یا به اختصار CLI) یک روش تعامل با سیستمعامل یا یک برنامه نرمافزاری است که از طریق ورود دستورات متنی کادر رابط خط فرمان انجام میشود. برخلاف رابطهای کاربری گرافیکی (GUI) که بر پایه عناصر بصری مانند پنجرهها، آیکونها و دکمهها عمل میکنند، CLI محیطی کاملا مبتنی بر متن است.
هنگامی که شما دستوری را در محیط CLI تایپ کرده و کلید Enter را فشار میدهید، مراحل زیر رخ میدهد:
-
دریافت ورودی: Shell، فرمان وارد شده را از خط فرمان دریافت میکند.
-
تجزیه و تفسیر: شل، فرمان را به اجزای تشکیلدهنده (فرمان اصلی، سوئیچها، آرگومانها) تجزیه میکند و متوجه میشود که کاربر قصد اجرای چه برنامهای با چه پارامترهایی را دارد.
-
اجرای عملیات: سپس درخواست را به هسته سیستمعامل (Kernel) ارسال میکند تا برنامه مربوطه را اجرا کند.
-
نمایش خروجی: پس از اجرای موفقیتآمیز یا ناموفق عملیات، سیستم خروجی یا پیام خطا را مجددا به صورت متن به کاربر نمایش میدهد.
اجزای اصلی یک CLI
یک محیط CLI شامل بخشهای کلیدی زیر است:
-
پوسته (Shell): هسته اصلی CLI و مفسر فرمان است. پوسته ورودیهای کاربر را دریافت کرده، آنها را تفسیر میکند و برای اجرا به سیستمعامل (Kernel) میفرستد. مثالهایی از پوستهها عبارتند از Bash، Zsh در لینوکس و macOS، و PowerShell در ویندوز.
-
فرمان (Command): یک کلمه یا عبارت متنی است که یک عملیات خاص را فراخوانی میکند (مثلا
lsبرای نمایش فایلها،mkdirبرای ساخت پوشه). -
سوئیچها/گزینهها (Options/Flags): پارامترهایی که رفتار فرمان اصلی را تغییر میدهند (مثلا
-lدر فرمانls -lجزئیات بیشتری از فایلها را نشان میدهد). -
آرگومانها (Arguments): دادههایی که فرمان برای اجرا به آنها نیاز دارد (مثلاً
new-folderدر فرمانmkdir new-folder، نام پوشه جدید است).
تاریخچه CLI
در دهه ۱۹۶۰ میلادی، CLI به طور گستردهای مورد استفاده قرار میگرفت.
در آن زمان، تنها دستگاه ورودی موجود، کیبورد بود و صفحه نمایش کامپیوتر فقط میتوانست اطلاعات متنی را نمایش دهد. سیستمعاملهایی مانند MS-DOS از CLI به عنوان رابط کاربری استاندارد خود استفاده میکردند.
اساساً، کاربران برای انجام کارها باید دستوری را در CLI تایپ میکردند، زیرا این تنها راه ارتباط با کامپیوتر بود.
پس از تایپ یک دستور، نتیجهای که کاربران دریافت میکردند یا اطلاعات متنی بود یا یک اقدام خاص که توسط کامپیوتر انجام میشد. به همین دلیل، تایپ دستور صحیح، کلید اصلی کار با این سیستم بود.
اگر کاربران دستور اشتباهی را تایپ میکردند، احتمال داشت فایلهای اشتباهی را حذف کنند یا به طور تصادفی برنامهای را قبل از ذخیره کردن کارشان ببندند. این موضوع به عنوان نقطه ضعف اصلی استفاده از CLI شناخته میشود.
سپس، پس از سالها استفاده از کیبورد و ریسک استفاده نادرست از خط فرمان، ماوس اختراع شد.
اختراع ماوس، سرآغاز روش «اشاره و کلیک» (point-and-click) به عنوان راهی جدید برای تعامل با کامپیوتر بود.
این روش برای کاربران عادی بسیار امنتر بود و به همین دلیل آنها را از CLI دور کرد. اما در ادامه خواهیم گفت که چرا استفاده از CLI بهتر است. با ما همراه باشید.
علاوه بر این، سیستمعاملها شروع به توسعه روشی جذاب برای کار با کامپیوتر با استفاده از GUI (Graphical User Interface) یا رابط کاربری گرافیکی کردند. GUI به دلیل استفاده از دکمهها و منوها برای نمایش دستورات خاص، پدیدهای شگفتانگیز بود. این رویکرد ثابت کرد که بسیار شهودی و کاربرپسند است.
امروزه، GUI به روشی متداول برای کار با کامپیوتر تبدیل شده است. با این حال، اکثر سیستمعاملها هنوز ترکیبی از CLI و GUI را ارائه میدهند. برای مثال، کاربران مک میتوانند برای دیدن تقویم، عبارت “cal” را در ترمینال تایپ کنند یا روی اپلیکیشن تقویم کلیک کنند تا به نتیجه یکسانی برسند.
کاربردهای CLI در حوزههای مختلف
CLI تنها یک ابزار ساده برای مدیریت فایل نیست؛ بلکه یک پلتفرم ضروری برای متخصصان در زمینههای مختلف است.
۱. مدیریت سرور و زیرساخت
برای مدیران سیستم و متخصصان دواپس، CLI ابزار اصلی برای نگهداری و پیکربندی سرورها (برای مثال سرور مجازی لینوکس) است.
-
مدیریت بستهها: نصب، بهروزرسانی و حذف نرمافزارها با استفاده از دستوراتی مانند
apt,yum, یاdnf. -
مدیریت کاربران و دسترسیها: ایجاد و تغییر کاربران، گروهها و دسترسیهای سیستمی با دستوراتی مانند
useradd,chmod, وchown. -
عیبیابی شبکه: استفاده از ابزارهایی مانند
netstat,traceroute,tcpdumpبرای نظارت و رفع مشکلات شبکه. -
مدیریت سرویسها: راهاندازی مجدد یا متوقف کردن وبسرورها، دیتابیسها و سایر سرویسها با
systemctlدر لینوکس یا ابزارهای مشابه.
۲. توسعه نرمافزار
توسعهدهندگان نرمافزار به د انش استفاده از CLI نیاز دارند تا جریان کاری خود را بهبود بخشند.
-
سیستم کنترل نسخه (Git): ابزارهای مدیریت کد مانند Git تقریبا به طور کامل از طریق CLI استفاده میشوند (مانند
git clone,git commit,git push). -
مدیریت وابستگیها: نصب پکیجهای مورد نیاز پروژه با استفاده از ابزارهای خط فرمان زبانهای برنامهنویسی (مثلا
npm,pip,composer). -
ابزارهای ساخت (Build Tools): اجرای دستورات ساخت و کامپایل پروژه (مانند
make,webpack,rollup).
۳. مدیریت سرویسهای ابری و داکر
در رایانش ابری (Cloud Computing) و کانتینریسازی، ابزارهای CLI نقش بسیار کلیدی دارند.
-
ابزارهای CLI ابری: شرکتهایی مانند آمازون (AWS CLI)، گوگل (gcloud CLI) و مایکروسافت (Azure CLI) ابزارهایی را برای مدیریت منابع ابری خود از طریق خط فرمان ارائه میدهند.
-
مدیریت داکر و کوبرنیتس: مدیریت کانتینرها و ارکستراسیون آنها به ترتیب با دستورات Docker CLI (مانند docker run, docker stop) و kubectl انجام میشود.
۴. مدیریت پایگاه داده
بسیاری از سیستمهای مدیریت پایگاه داده مانند MySQL و PostgreSQL دارای کلاینتهای مبتنی بر خط فرمان هستند که امکان اجرای پرسوجوهای پیچیده، پشتیبانگیری و مدیریت عملکرد را فراهم میکنند.
انواع CLI
این دسته از مشهورترین و رایجترین انواع CLI است و در سیستمعاملهای مختلف بهعنوان لایهای برای تعامل مستقیم کاربر با هسته سیستم (Kernel) یا سرویسهای سطح پایین عمل میکند. شلهای امکان اجرای دستورات مدیریتی، ساخت اسکریپتهای اتوماسیون، مدیریت فایلها، ارتباط شبکهای و بهروزرسانی سیستم را فراهم میکنند. ویژگیهای کلیدی:
-
امکان اجرای دستورات خط به خط
-
پشتیبانی از اسکریپتنویسی برای اتوماسیون
-
دسترسی عمیق به سیستم بدون نیاز به محیط گرافیکی
-
مناسب برای مدیران سیستم، توسعهدهندگان، DevOps و متخصصان امنیت
CLIهای سیستم عامل ویندوز
سیستمعامل ویندوز برخلاف تصور عموم، مجموعهای از CLIهای قدرتمند دارد که در دهههای اخیر نقش بسیار مهمی در DevOps، مدیریت زیرساختها و اتوماسیون ایفا کردهاند. CLIهای ویندوز معمولا برای مدیریت سیستم، اجرای اسکریپتها، کانفیگ سرویسها و ادغام با ابزارهای شبکه مورد استفاده قرار میگیرند.
Command Prompt (CMD)
Command Prompt قدیمیترین رابط خط فرمان ویندوز است که از نسخههای ابتدایی Windows NT معرفی شد. CMD از لحاظ معماری مبتنی بر MS-DOS طراحی شده و بسیاری از دستورات آن نیز ریشه در همان دوران دارند. CMD امکانات پایهای مدیریت فایلها، اجرای برنامهها، کنترل سرویسها و عملیاتهای شبکه را فراهم میکند. برخی از کاربردهای رایج کامند پرامپت عبارتند از:
-
مدیریت مسیرها و فایلها
-
اجرای اسکریپتهای Batch
-
عملیاتهای ابتدایی شبکه مانند ping، netstat
-
اجرای سریع برنامهها بدون UI
برای باز کردن Command Prompt، میتوانید روی Start -> All Programs -> Accessories -> Command Prompt کلیک کنید. یا میتوانید به سادگی کلیدهای Windows+R را فشار دهید، سپس CMD را تایپ کرده و Enter را بزنید.
Windows PowerShell
PowerShell یک ارتقاء اساسی در CLI ویندوز است. برخلاف CMD که فقط متن را بین دستورات منتقل میکرد، PowerShell مبتنی بر Object Pipeline است، یعنی دادهها در قالب شیء (Object) از یک دستور به دستور دیگر منتقل میشوند. این قابلیت اجرای عملیات پیچیده سیستمی و شبکهای را بسیار سادهتر میکند. کاربردهای پاورشل عبارتند از:
-
مدیریت کامل سیستمعامل ویندوز
-
پیادهسازی اتوماسیون سازمانی
-
مدیریت Active Directory
-
DevOps و عملیات Cloud
-
اسکریپتنویسی حرفهای (PowerShell Script)
Windows Terminal
ویندوز ترمینال جدیدترین محیط اجرای CLI در Microsoft Windows است که امکان مدیریت همزمان CMD، PowerShell، WSL و SSH را در یک پنجره با تبهای مختلف فراهم میکند. برخی از ویژگیهای اصلی ترمینال ویندوز عبارتند از:
-
پشتیبانی از تب، پروفایل، شفافیت پنجره
-
رندرینگ مدرن متن و پشتیبانی از UTF-8
-
اتصال مستقیم به WSL
CLI در سیستمعاملهای لینوکسی
لینوکس بزرگترین سیستم عامل CLI محور در جهان است و تقریبا همه چیز در آن از طریق خط فرمان قابل مدیریت است. شِلها در لینوکس بهعنوان لایهی میانی کاربر و سیستمعامل عمل میکنند و ابزارهای بسیاری در اختیار توسعهدهندگان، مدیران سیستم، DevOps و متخصصان امنیت قرار میدهند.
Bash (Bourne Again Shell)
Bash مشهورترین و پرکاربردترین شل لینوکس است و تقریبا در تمام توزیعهای لینوکسی بهصورت پیشفرض نصب میشود. برخی ویژگیهای کلیدی این رابط خط فرمان:
-
پشتیبانی گسترده از اسکریپتنویسی
-
اجرای Pipeline، Redirect و کنترل فرایندها
-
سازگاری بالا با استاندارد POSIX
-
پایه اصلی ابزارهای DevOps و اتوماسیون
Zsh
Zsh نسخه توسعهیافته و مدرنی از شلهای یونیکسی است که امکانات بسیار بیشتری نسبت به Bash دارد. برخی از ویژگیهای این CLI عبارتند از:
-
تکمیل خودکار هوشمند دستورات
-
پشتیبانی از پلاگینها
-
محیط جذاب با Oh-My-Zsh
-
سرعت بالا در مدیریت فایلها
CLI در سیستمعاملهای macOS
macOS نیز مانند لینوکس یک محیط CLI محور دارد؛ زیرا بر پایه یونیکس ساخته شده است. ترمینال macOS ابزاری قدرتمند برای توسعهدهندگان است، بهویژه برنامهنویسان iOS و متخصصان DevOps.
macOS Terminal
اپلیکیشن Terminal دسترسی مستقیم به شِلهای یونیکسی موجود در سیستم مانند Bash و Zsh را فراهم میکند. در ادامه به بررسی برخی از کاربردهای رایج ترمینال در مک میپردازیم:
-
مدیریت فایلها و سیستم
-
اجرای ابزارهای توسعه (مانند Git، پایتون، Node.js)
-
مدیریت Homebrew برای نصب بستههای نرمافزاری
-
اجرای ابزارهای Container و DevOps
۵ دستور رایج Command Prompt ویندوز
این دستورات برای مدیریت سیستم فایل، شبکه، و تعاملات اولیه در محیط CMD ضروری هستند.
۱. دستور cd
این دستور برای تغییر پوشه (دایرکتوری) فعلی در ساختار سلسلهمراتبی فایلهای سیستم استفاده میشود. cd به شما اجازه میدهد تا به پوشههای فرزند، پوشههای والد، یا یک مسیر کامل دیگر در هر درایوی جابهجا شوید.
فرمت دستور:
cd [مسیر]
مثالهایی از این دستور :
-
cd Desktop: رفتن به پوشه Desktop در مسیر فعلی. -
cd ..: رفتن به پوشه والد (یک سطح بالاتر). -
cd /d D:\Projects: تغییر درایو و رفتن به یک مسیر مشخص (استفاده از/dبرای تغییر درایو ضروری است).
۲. دستور dir
دستور dir برای نمایش لیست تمام فایلها و زیرپوشههای موجود در دایرکتوری فعلی یا یک مسیر مشخص استفاده میشود. این دستور اطلاعاتی نظیر نام فایل/پوشه، حجم، و تاریخ آخرین تغییر را در خروجی نمایش میدهد.
فرمت دستور:
dir [مسیر] [/سوئیچها]
مثالهایی از این دستور:
-
dir: نمایش محتویات پوشه فعلی. -
dir /p: نمایش محتویات صفحه به صفحه (برای پوشههای با فایلهای زیاد). -
dir *.log /s: جستجو برای تمام فایلهای با پسوند.logدر پوشه فعلی و تمام زیرپوشههای آن (/s).
۳. دستور ipconfig
این دستور یکی از ابزارهای مهم برای مدیریت و مشاهده تنظیمات شبکه (TCP/IP) در ویندوز است. ipconfig اطلاعاتی مانند آدرس IP، Subnet Mask، و Default Gateway کارتهای شبکه را نمایش میدهد و برای عیبیابی مشکلات اتصال شبکه ضروری است.
فرمت دستور:
مثالهایی از این دستور:
-
ipconfig: نمایش تنظیمات اصلی IP برای کارتهای شبکه. -
ipconfig /all: نمایش تمام جزئیات پیکربندی، شامل آدرس MAC، سرورهای DHCP و DNS. -
ipconfig /flushdns: پاک کردن کش DNS (برای حل مشکلاتی که به آدرس IP جدید یک دامنه متصل نمیشوید).
۴. دستور ping
دستور ping برای تست قابلیت اتصال و زمان تأخیر بین سیستم شما و یک مقصد (مانند سرور، روتر یا وبسایت) در شبکه یا اینترنت استفاده میشود. این دستور با ارسال بستههای ICMP کار میکند و به شما کمک میکند تا مطمئن شوید یک دستگاه فعال و در دسترس است.
فرمت دستور:
مثالهایی از این دستور:
-
ping mobinhost.com: تست اتصال و زمان تأخیر به وبسایت مبین هاست. -
ping 127.0.0.1: تست اتصال به کارت شبکه داخلی سیستم (Loopback). -
ping 192.168.1.1: تست اتصال به روتر یا Gateway شبکه لوکال.
۵. دستور cls
این یک دستور مدیریتی ساده و بسیار متداول است که برای پاک کردن تمام خروجیهای قبلی از صفحه خط فرمان استفاده میشود. این کار به مرتبسازی محیط کاری و تمرکز بر روی دستورات جدید کمک میکند.
فرمت دستور:
مثال:
-
cls: پاک کردن صفحه Command Prompt.
نتیجهگیری
در این مطلب به برسی این که CLI چیست پرداخته و با انواع رایج رابط خط فرمان در سیستم عاملهای مختلف آشنا شدیم. با اینکه رابطهای گرافیکی (GUI) به دلیل سهولت در استفاده در بین کاربران عادی محبوبیت بیشتری دارند، آگاهی از قابلیتها و قدرت CLI میتواند به بسیاری از کاربران این امکان را دهد که با تسلط بیشتری به مدیریت سیستمها و توسعه نرمافزار بپردازند.









