مقدمه

خیلی‌ها واژه‌های Shell و Terminal را به یک معنا می‌داندد و آنها را به جای هم به کار می‌برند. اما در حقیقت، ترمینال پنجره‌ای است که شل درون آن اجرا می‌شود. مثلاً در سیستم‌عامل ویندوز ما یک پنجره‌ی ترمینال باز می‌کنیم و یک شل (مانند PowerShell یا CMD) را در آن اجرا می‌کنیم. در توزیع‌های لینوکسی هم یک ترمینال اجرا شده و یک شل (مانند bash یا dash) در آن اجرا می‌شود. خود شل اما ابزاری است که دستورات ورودی از کیبورد را برای اجرا به سیستم‌عامل ارسال می‌کند. پروژه‌ی GNU دارای یک شل با نام sh بود که توسط آقای Steve Bourne نوشته شده بود و بعداً یک بازنویسی از این شل با نام bash ایجاد شد که در اکثر توزیع‌های لینوکسی وجود دارد. نام bash از عبارت Bourne Again Shell گرفته شده است.

شبیه‌ساز تزمینال

اگر بخواهیم دقیق باشیم، باید به جای واژه‌ی ترمینال از شبیه‌ساز ترمینال یا Terminal Emulator استفاده کنیم. در واقع، ما فقط زمانی در حال استفاده از ترمینال هستیم که از یک سیستم‌عامل فاقد رابط کاربری گرافیکی (GUI) استفاده می‌کنیم. مثلاً وقتی از یک Ubuntu Server استفاده می‌کنیم، از طریق ترمینال با سیستم‌عامل ارتباط برقرار می‌کنیم. اما وقتی از Ubuntu به همراه یک دسکتاپ (مثل GNOME) استفاده می‌کنیم، یک شبیه‌ساز ترمینال را به کار می‌گیریم که خوب البته معمولاً برای سادگی از عبارت ترمینال برای ارجاع به آن استفاده می‌شود.

محبوب‌ترین دسکتاپ‌های مورد استفاده در بین کاربران لینوکس GNOME و KDE هستند که اولی دسکتاپی است که به‌طور پیش‌فرض روی Ubuntu وجود دارد و دومی دسکتاپی است که روی RedHat نصب است. البته در لینوکس می‌توان به راحتی دسکتاپ‌ها را تغییر داد. دسکتاپ GNU از یک سبیه‌ساز ترمینال با نام gnome-terminal استفاده می‌کند و دسکتاپ KDE از شبیه‌سازی به نام konsole. کاری که این شبیهسازها انجام می‌دهند، یکسان است: فراهم کردن امکان دسترسی به شل.

شروع به کار با شل

برای شروع کار، یک ترمینال (سبیه‌ساز ترمینال) باز کنید. برای اکثر توزیع‌های لینوکسی می‌توانید این کار را با فشردن کلیدهای ALT-CTRL-T انجام دهید. چیزی شبیه زیر را در ترمینال خواهید دید:

[me@linuxbox ~]$

این چیزی است که Shell Prompt نامیده می‌شود و به این معناست که شل آماده‌ی دریافت دستورات شماست. اگرچه Shell Prompt می‌تواند بسته به توزیع لینوکسی شما کمی متفاوت باشد اما معمولاً شامل یک عبارت username@machinename است که با دایرکتوری جاری (بعداً در این مورد مطالب لازم را یاد خواهید گرفت) و یک کاراکتر $ ادامه می‌یابد.

اگر کاراکتر پایانی به‌جای $ یک کاراکتر # باشد، جلسه‌ی ترمینال (terminal session) دارای دسترسی ادمین یا superuser است که معمولاً به این معناست که به عنوان کاربر root لاگین کرده‌ایم.

خوب، حالا یک متن بی‌معنی را در ترمینال وارد می‌کنیم تا واکنش شل را ببینیم:

$ alayaayohalsaghi

از آنجایی که این کامند هیچ معنایی ندارد، شل این موضوع را به ما اعلام کرده و مجدداً آماده‌ی دریافت دستور بعدی می‌شود:

alayaayohalsaghi: command not found
[me@linuxbox ~]$

تاریخچه کامندها

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

کاربرد ماوس در ترمینال

با وجودی که شل تماماً به کیبورد مربوط می‌شود، امکان استفاده از ماوس در محیط ترمینال برای اعمالی مانند copy و paste وجود دارد. X Window System نام موتوری است که GUI بر اساس آن کار می‌کند و یک مکانیزم copy paste ساده و کارامد را پیاده‌سازی کرده است. اگر با استفاده از ماوس، متنی را در ترمینال هایلایت کنیم، این متن در حافظه‌ی کلیپ‌بوردی که توسط X ارائه می‌شود، کپی می‌شود و برای paste کردن آن کافیست کلید میانی ماوس را فشار دهیم. این کار را امتحان کنید.

سعی نکنید از کلیدهای CTRL-C و CTRL-v استفاده کنید. این کدهای کنترلی برای شل معنای متفاوتی دارند و سال‌ها قبل از انتشار Microsoft Windows تعریف شده‌اند.

آزمایش چند کامند ساده

حالا که با نحوه‌ی درج کامند در ترمینال آشنا شدیم، اجازه دهید چند کامند ساده اما کاربردی را تست کنیم. ابتدا کامند date را وارد کنید که تاریخ و زمان فعلی را به عنوان نتیجه نمایش می‌دهد:

$ date
Wed Jul 31 12:58:16 +0330 2024

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

$ cal 
        July 2024
Su  Mo  Tu  We  Th  Fr  Sa 
    1   2   3   4   5   6 
7   8   9  10  11  12  13 
14  15 16  17  18  19  20 
21  22 23  24  25  26  27 
28  29 30  31
          

با استفاده از دستور exit و یا با استفاده از کلیدهای CTRL-D می‌توانیم از محیط ترمینال خارج شویم.