اخبار و رویدادها
اخبار و رویدادها

چرا مردم هنوز به سراغ خط فرمان می‌روند

تاریخ : ۱۳۹۸/۰۸/۲۱

نزدیک 50 سال است که از عمر خط فرمان می‌گذرد و همچنان به کار خود ادامه می‌دهد. ترمینالهای متنی حتی در عصر کامپیوترهای دسکتاپ گرافیکی و دستگاههای مجهز به صفحات لمسی، هنوز هم بهترین روش برای دستیابی به بسیاری از وظایف هستند. در حقيقت، خط فرمان با ساخت یک اپلیکیشن ترمینال ویندوز قدرتمند توسط مایکروسافت که در ویندوز 10 با نام PowerShell معرفی شد ارج و قرب بیشتری پیدا کرد.

با وجودی که فناوری اطلاعات به سمتی پیش می‌رد تا همه کارها از طریق رابط‌های گرافیکی و صفحات لمسی به ساده‌ترين و سریع‌ترین شکل ممکن انجام شود، اما هنوز هم ترمینال‌های متنی بهترین روش برای دستیابی به بسیاری از وظایف محسوب می‌شوند. در حقيقت، خط فرمان با ساخت یک اپلیکیشن ترمینال ویندوز قدرتمند توسط مایکروسافت که در ویندوز 10 با نام PowerShell معرفی شد ارج و قرب بیشتری پیدا کرد. مایکروسافت هنوز هم به دنبال یافتن راهکارهایی است تا محیط خط فرمان کامل لینوکس را به ویندوز 10 بیاورد.

خط فرمان روزگاری تنها گزینه بود

در زمان‌هایی نه چندان دور اگر شما می‌خواستید با یک کامپیوتر تعامل داشته باشید باید تایپ می‌کردید. شاید این روزها انجام چنین کاری بسیار محدود کننده و دست و پا گیر به نظر برسد، اما تایپ کردن در زمان خود به عنوان یک گام بزرگ در گذر از کارت‌ها و نوارهای کاغذ سوراخ دار، یک تحول بزرگ و بنیادین محسوب می‌شد.

پشت سر گذاشتن این مراحل راه را برای ایجاد یک پوسته تعاملی فراهم ساخت. حالا شما می‌توانستید دستورالعمل‌های خود را به کامپیوتر ارسال کنید و خیلی سریع پاسخ نمایش داده شده روی نمایشگر را مشاهده کنید.

اینها همه برای زمان خود کافی به نظر می‌رسید. اما این روزها محاسبات کامپیوتری شکلی تازه به خود گرفته است. به غیر از مواردی که در آن کامپیوتر در حال استفاده فاقد محیط گرافیکی نصب شده است و یا استفاده از کامپیوتر از راه دور و از طریق  SSH تحت یک اتصال با پهنای باند کم انجام می‌شود، و یا کنترل سیستم‌های ضمیمه شده به یک مرکز کنترل بزرگتر در حال انجام است، دیگر چرا باید از خط فرمان استفاده کرد وقتی یک محیط تمام گرافیکی در اختیار ما است؟

زبان فناوری این‌گونه توضیح می‌دهد

اصطلاحاتی مثل خط فرمان (command line)، پنجره ترمینال (terminal window) و پوسته (shell) که همگی به یک معنا بین کاربران استفاده می‌شود، در واقع کاملا با یکدیگر متفاوت هستند. هر چند اینها به هم مربوط می‌شوند، اما یک چیز نیستند.

یک پنجره ترمینال پنجره‌ای در یک محیط دسکتاپ گرافیکی است که به عنوان یک شبیه ساز ترمینال تایپ از راه دور اجرا می‌شود. پوسته برنامه‌ای است که درون این پنجره ترمینال اجرا می‌شود و ورودی شما را دریافت می‌کند، سپس مطابق با چیزی که شما تایپ کرده‌اید، سعی می‌کند دستورالعمل‌ها را تفسیر و اجرا کرده و آنها را به برخی دیگر از برنامه‌های کاربردی سیستم عامل منتقل می‌کند و یا اسکریپت یا برنامه‌ای را مطابق با آنچه شما تایپ کرده‌اید پیدا می‌کند. خط فرمان هم جایی است که شما تایپ می‌کنید. این خطی آماده دریافت فرمان به همراه نشانگر تایپ متن است که پوسته ارائه می‌کند و منتظر می‌ماند تا شما دستورالعمل‌های خود را توسط آن وارد کنید.  

همه اینها در کنار هم مجموعه‌ای به نام رابط خط فرمان یا command line interface (CLI) را تشکیل می‌دهد.

چرا باید در سال 2019 از خط فرمان استفاده کرد؟

CLI ممکن است برای کسانی که با آن آشنا نیستند نامفهوم و بلااستفاده به نظر برسد. مطمئنا در عصر سیستم عامل‌های مدرن با پنجره‌ها، آیکون‌ها و نشانگر ماوس که در یک محیط تمام گرافیکی کاربرپسند کار می‌کند، استفاده از کامپیوتر با چنین شیوه تاریخ گذشته‌ای نباید معنا و مفهومی‌ داشته باشد.

رابط کاربری گرافیکی یا graphical user interfaces (GUIs) چندین سال است که معرفی شده است. اولین نسخه از ویندوز مایکروسافت در سال 1985 معرفی شد و با انتشار ویندوز 3.0 در سال 1990 به یک استاندارد رایج برای کار با کامپیوترهای شخصی تبدیل شد.

X Window System به کار رفته در یونیکس و لینوکس نیز در 1984 معرفی شد که یک محیط دسکتاپ گرافیکی را به سیستم عامل یونیکس اضافه می‌کرد. اما بسیاری از وظایف قابل انجام در یونیکس مثل پیکربندی‌ها و تعاملات کاربری باید از طریق صفحه کلید و خط فرمان انجام می‌شد.

CLI است که قادر به انجام هر کاری است و یک GUI هنوز هم نمی‌تواند تمام کارهایی که CLI توان انجام آن را دارد را انجام دهد. و حتی بخش‌هایی را هم که می‌تواند انجام دهد، با استفاده از CLI معمولا سریع‌تر، انعطاف پذیر و با قابلیت بسط و گسترش قابل انجام است.

و همچنین یک استاندارد برای آن وجود دارد.

آنها به لطف POSIX استاندارد شده‌اند

POSIX یک استاندارد برای سیستم عامل‌های خانواده یونیکس و اساسا هر چیزی غیر از ویندوز است. باز کردن یک پنجره ترمینال در هر سیستم عامل سازگار با POSIX باعث می‌شود تا شما به یک پوسته وارد شوید. تا مادامی‌ که شما به هسته POSIX دسترسی داشته باشید قادر خواهید بود از پوسته و افزونه‌های مرتبط با آن استفاده کرده و اسکریپت‌های خود را اجرا کنید.

اگر شما نحوه استفاده از خط فرمان را یاد گرفته باشید، صرف نظر از این که در یک توزیع لینوکس باشید یا یک محیط دسکتاپ گرافیکی، قادر خواهید بود تمام وظایف مورد نیاز خود را انجام دهید. دسکتاپ‌های مختلف روش خاص خود را برای انجام کارها دارند و توزیع‌های مختلف لینوکس نیز به برنامه‌ها و ابزارهای کاربردی مختلف مجهز هستند.

اما شما به هیچ کدام از این جزئیات احتیاجی ندارید. تنها کافی است یک پنجره ترمینال را باز کنید و وظایف مورد نظر خود را به انجام برسانید.

فرامین به گونه‌ای طراحی شده‌اند تا با یکدیگر کار کنند

هر یک از فرامین لینوکس طراحی شده‌اند تا کار مشخصی را انجام دهند. اساس طراحی آنها به شکلی است که با اضافه کردن برنامه‌های کاربردی دیگر به شکل زنجيره وار به یکدیگر بتوان توانمندی یک فرمان را افزایش داد. به همین دلیل این برای مایکروسافت بسیار سودمند بوده است تا بتواند پشتیبانی از خط فرمان لینوکس را به ویندوز 10 اضافه کند.

برای مثال، فرمان sort با فرامین دیگری استفاده می‌شود تا متن را بر اساس حروف الفبا مرتب کند. مثال زير را ملاحظه کنید که از فرمان ls برای نمایش فهرست فایل‌های موجود در دایرکتوری جاری استفاده می‌کند. نتایج به فرمان sort اضافه می‌شود تا بر اساس پنجمین ستون داده (که اندازه فایل است) مرتب شود. این فهرست مرتب شده سپس به فرمان head زنجیر (pip) می‌شود که به طور پیش فرض ده خط اول خروجی را نمایش می‌دهد.

ls -l | sort -nk5,5 | head

در اینجا ما یک فرمان مرکب به کار بردیم تا به ترتیب از کوچک‌ترین فایل‌های موجود در دایرکتوری جاری یک فهرست به دست آوریم.

اسکریپت‌ها امکان خودکارسازی و تکرار را فراهم می‌کنند

با استناد به این واقعیت که انسان‌ها مستعد خطا هستند، اسکریپت‌ها به شما اجازه می‌دهند مجموعه‌ای از دستورالعمل‌ها را که می‌خواهید هر بار در زمان فراخوان اسکریپت اجرا شوند را استانداردسازی کنید. این کار ثبات در نگهداری از سیستم را به همراه خواهد آورد.

از آنجا که شما می‌توانید با استفاده از cron در لینوکس و سایر سیستم‌های مبتنی بر یونیکس وظایف مختلف را خودکارسازی کنید، وظایف طولانی و پیچیده را می‌توان با یک بار نوشتن اسکریپت در آینده به طور خودکار بارها تکرار کرد.

اسکریپت‌های PowerShell نیز همین ویژگی‌ را برای ویندوز به همراه می‌آورند و شما می‌توانید از طریق Task Scheduler آنها را مطابق با زمانبندی مشخص اجرا کنید. چرا باید هر بار در زمان پیکربندی یک کامپیوتر روی 50 گزینه مختلف کلیک کرد وقتی می‌توانید با اجرای یک فرمان همه این کارها را به طور خودکار انجام دهید؟

بهترین‌های هر دو جهان

شما به عنوان یک کاربر حرفه‌ای برای به دست آوردن بهترین عملکرد از لینوکس یا هر سیستم عامل دیگری به استفاده توامان از CLI و GUI نیاز خواهید داشت. GUI برای استفاده از اپلیکیشن‌ها عالی است. حتی سرسخت‌ترین هواداران خط فرمان هم باید گاهی از پنجره ترمینال بیرون بیایند و از مجموعه برنامه‌های آفیس، محیط‌های توسعه و برنامه‌های ویرایش گرافیک استفاده کنند.

شیفتگان خط فرمان از رابط گرافیکی متنفر نیستند. آنها فقط از مزایای استفاده از CLI برای انجام برخی وظایف حمایت می‌کنند. خط فرمان بالاترین میزان از کارایی را در اختیار شما می‌گذارد. هر گزینه از هر فرمانی در دسترس شما است. بسیاری از فرامین لینوکس هستند که انواع مختلفی از گزینه‌ها را در اختیار دارند. به عنوان نمونه، فرمان lsof را در نظر بگیرید، با نگاهی به صفحه راهنمای آن متوجه می‌شوید که چگونه می‌توانید آن را با یک GUI ترکیب کنید.