ترمینال لینوکس روشی استاندارد برای تعامل با سرور لینوکس به حساب میآید. این مطلب، راهنمایی برای ترمینال لینوکس به منظور یادگیری افراد تازه کار به حساب میآید. با مطالعه این نوشتار علاوه بر رسیدن به پاسخ پرسش ترمینال لینوکس چیست با تفاوت دستورات لینوکس، آرگومانها و آپشنها در ترمینال لینوکس نیز آشنا خواهید شد. همچنین خواهید آموخت که چگونه میتوان از این موارد در ترمینال لینوکس برای کنترل کردن کامپیوتر خود استفاده کرد.
تاریخچه ترمینال لینوکس
نخستین سیستم عامل اوپن سورس، یونیکس بود که در زمانهای قدیم برای انجام محاسبات طراحی شد. با گذشت زمان، این سیستم عامل برای اجرا بر روی کامپیوترهای اصلی به عنوان سیستم چندکاربره توسعه یافته است. به این صورت که چندین کاربر حتی از راه دور توسط پایانه ها به آن متصل میشوند.
نسخه توسعهیافته این سیستم عامل، «لینوکس» (Linux) نام گرفت. لینوکس را میتوان به عنوان نسلی از یونیکس توصیف کرد. بخش اصلی لینوکس برای رفتار مشابه با سیستم یونیکس توسعه یافته است. بهترین نسخه از این سیستم عامل توسط استفان بورن طراحی و در نسخه ۷ یونیکس توسعه در سال ۱۹۷۹ منتشر شد. این نسخه به مرور زمان به پوستهای پیش فرض برای سیستمهای لینوکسی تبدیل شده است.
ترمینال لینوکس چیست ؟
ترمینال لینوکس رابطی مبتنی بر متن به حساب میآید که برای کنترل کامپیوتر دارای سیستم عامل لینوکس استفاده میشود. ترمینال لینوکس تنها یکی از ابزارهای متعددی است که برای انجام وظایف در اختیار کاربران لینوکس قرار میگیرد، اما به طور گستردهای کارآمدترین روش موجود محسوب میشود.
خارج از بحث کد نویسی، استفاده از ترمینال لینوکس مطمئناً مستقیمترین روش ممکن برای تعامل با لینوکس و کرنل آن به حساب میآید. در واقع ترمینال یونیکس و لینوکس آنقدر محبوب شدند که شرکت Apple نیز اساس خط فرمان یا همان ترمینال سیستم عاملهای خود را به یونیکس تغییر داد و پوسته Bash و Z را طراحی کرد. از سوی دیگر، مایکروسافت PowerShell را توسعه داد و آن را به عنوان نرمافزاری منبع آزاد برای اجرای فرامین از طریق کد، تبدیل کرد.
در واقع، ترمینال در محیط سیستم عامل لینوکس، راهی استاندارد برای تعامل با سرور لینوکس است. کاربر درخواستهای خود را از طریق تایپ قطعه کدهایی در این محیط، به سرور منتقل میکند. استفاده از کدهای فرمان ممکن است برای مبتدیان کار دشواری به نظر برسد، اما اگر از یادگیری اصول اولیه شروع و مهارتهای خود را در این زمینه تقویت کنیم، متوجه میشویم که انجام آن کاری بسیار راحت است و خیلی زود تمام نکات مربوط به آن را فرا میگیریم.
در بخش بعدی، راجع به شبیهساز ترمینال توضیحاتی را ارائه میدهیم.
شبیه ساز ترمینال لینوکس چیست ؟
شبیه ساز ترمینال محیطی گرافیکی است که کاربران سیستم عامل لینوکس، قطعه کدهای مربوط به فرامین مختلف را در آنجا تایپ میکنند. اغلب افراد با رابط کاربری گرافیکی سیستم عامل برای نیازهای روزانه رایانه خود استفاده میکنند، اما برای اکثر کاربران سرور لینوکس استفاده از شبیهساز ترمینال ضروری و این افراد نمیتوانند تنها با استفاده از رابط گرافیکی وظایف خود را به نحو احسن انجام دهند.
در اینجا چند شبیهساز رایگان و رایج ترمینال لینوکس آورده شده است که توسط کاربران سیستم عاملهای مختلف لینوکس استفاده میشود:
- در ویندوز: PuTTy
- در لینوکس: XTerm، KDE Konsole، Terminal
- در مک OS: ترمینال پیشفرض مک و iTerm2
هر یک از این شبیهسازهای ترمینال، ویژگیهای خاص خود را دارند اما به عنوان یک کاربر، کار کردن با همه آنها برای شما آسان خواهد بود و هیچ یک محدودیت یا پیچیدگی خاصی ندارند.
آشنایی با محیط ترمینال لینوکس
ترمینال لینوکس با عناوینی همچون «کنسول» (Console)، «خط فرمان» (Command-Line) یا «شل» (Shell) در میان کاربران شناخته میشود. البته هر یک از این اسامی تفاوتهایی با هم دارند، اما معمولاً به جای هم استفاده میشوند و اکثراً وقتی به کار بده میشوند، منظور همان ترمینال لینوکس است. ترمینال لینوکس، رابطی متنی بین کاربر و رایانه است تا این دو بتوانند به زبانی مشترک و قابل فهم با یکدیگر ارتباط داشته باشند.
به عنوان یک کاربر مبتدی، میتوان دستورات را تفسیر کرد و همچنین اسکریپتهای خود را در ترمینال لینوکس نوشت. انجام این کار ممکن است در ابتدا دشوار به نظر برسد، اما وقتی با نحوه انجام آن آشنا شویم، استفاده از آن آسان خواهد بود.
توجه: تمام توزیع های لینوکس که تا کنون منتشر شدهاند، همگی قابلیت برقراری ارتباط را از طریق محیط ترمینال با کاربر دارا هستند. ترمینال لینوکس رابطی را در اختیار ما قرار میدهد که در آن میتوانیم دستورات را وارد و نتیجه را به صورت متن بررسی کنیم. میتوانیم از ترمینال برای انجام کارهایی مانند انتقال فایلها بدون استفاده از رابط کاربری گرافیکی استفاده کنیم. فراموش نکنید که وظیفه ترمینالها، تنها انتقال اطلاعات است. برای دسترسی به این اطلاعات به «پوسته» (Shell) برای سیستم عامل نیاز داریم.
ما میتوانیم با تایپ کردن خطوط کدها در محیط ترمینال، فرمان اجرای دستورات را به صورت دستی در سرورهای لینوکسی اجرا کنیم. همچنین میتوانیم دستورات را با استفاده از «اسکریپتهای پوسته» (Shell Script) و به صورت خودکار، اجرا کنیم.
توجه: استفاده از ترمینال لینوکس بسیار متداول است، زیرا کاربر میتواند با استفاده از صفحه کلید خود، دادهها را روی صفحه نمایش دهد.
کاربران میتوانند به صورت کارآمد و سریع با یکدیگر تعامل داشته باشند، زیرا نرم افزار ترمینال بسیار کمحجم و سبُک است و تمام اقداماتی که کاربران مایلند توسط این رابط متنی اجرا کنند، امکانپذیر خواهد بود. همچنین کاربران میتوانند برای هماهنگی و اجرای برنامههای مختلف، به یک برنامه اصلی جداگانه متصل شوند.
ضمن اینکه کاربران میتوانند اسکریپتهای نوشته شده را با یکدیگر به اشتراک بگذارند تا دیگر افراد ، به صورت خودکار از دستورات پیچیده و طولانی پوسته، برای آسانتر کردن کارهای خود استفاده کنند.
کاربرد shell در ترمینال لینوکس چیست ؟
Shell یا پوسته را میتوان به عنوان رابطی از خط فرمان تعریف کرد که فایلهای اسکریپت و دستورات کاربر را در سیستم لینوکس تفسیر میکند و به سیستم عامل سرور میگوید که چگونه نسبت به آنها عمل کند. چندین پوسته مانند پوسته C و پوسته «Bourne Shell» یا به اختصار sh موجود هستند که به طور گسترده استفاده میشوند.
همه پوستهها مجموعهای از ویژگیها و پیچیدگیهای مربوط به نحوه تفسیر دستورات را دارند، اما این پوستهها دارای خروجی و تغییر مسیر ورودی، آزمایش شرایط، متغیرها و موارد دیگر هستند. معمولاً پوسته Bourne-Again به عنوان bash شناخته میشود. bash پوسته پیشفرض است که تقریباً برای تمام توزیعهای لینوکس از جمله RedHat ،CentOS و اوبونتو قابلیت استفاده دارد.
اسکرپیتنویسی شل چیست و چرا مهم است؟
دستورات ترمینال لینوکس چه هستند؟
دستور یک کلمه کلیدی ویژه است که میتوانید از آن در ترمینال لینوکس استفاده کنید تا رایانه شما عمل مورد نظر شما را انجام دهد. اکثر دستورات قطعه کدهای کوچکی هستند که همراه با سیستم عامل شما نصب میشوند. ممکن است متوجه نباشید که آنها در سیستم شما وجود دارند زیرا معمولاً در پوشههای نسبتاً مبهم مانند /bin ،/sbin ،/usr/bin و /usr/sbin نگهداری میشوند، اما ترمینال میداند که آنها را از کجا پیدا کند (به لطف چیزی به نام PATH).
سایر دستورات در ترمینال به صورت تعبیه شده هستند. شما لازم نیست نگران نصب دستورات باشید زیرا ترمینال دستورات را در هر صورت میداند. بهتر از این، در اکثر توزیعهای لینوکس، وقتی ترمینال نمیتواند دستوری را پیدا کند، در اینترنت به دنبال بستهای برای ارائه آن میگردد و سپس به کاربر پیشنهاد نصب و اجرای آن را میدهد. در مطلب زیر تمام دستورات مهم و کاربردی لینوکس به صورت یک تقلبنامه ارائه شده است و میتوان علاوه بر مطالعه کامل آن، هر زمان که لازم شد به آن مراجعه و به عنوان مرجع از آن استفاده کرد.
دستورات لینوکس کاربردی از مبتدی تا پیشرفته – 50 دستور مهم
سادهترین دستور لینوکس در ادامه آمده است:
$ ls
دستور «ls» مخفف «list» است و محتویات پوشه فعلی که در آن قرار داریم را در خروجی فهرست میکند.
آرگومان در دستورات ترمینال لینوکس چیست؟
آرگومان هر بخشی از دستور است که در واقع دستور نیست. به عنوان مثال، برای فهرست کردن محتویات یک پوشه خاص، میتوانید نام آن پوشه را مثل خط کد زیر به عنوان آرگومان در ادامه دستور اصلی و بعد از یک «فاصله» (Space) درج کنید:
$ ls Documents
در این مثال، ls فرمان یا همان دستور و Documents آرگومان است. با این کار فهرستی از محتویات پوشه Documents در خروجی چاپ میشود.
گزینه ها یا Options در دستورات ترمینال لینوکس چه هستند؟
گزینههای فرمان که «پرچم» یا «سوئیچ» نیز نامیده میشوند، بخشی از آرگومانهای دستورات لینوکس هستند. یک گزینه معمولاً (اما نه همیشه) با یک خط تیره یا دو خط تیره مشخص میشود. برای مثال به خط کد زیر توجه کنید.
$ ls --classify Documents
در این مثال، –classify
یک Option محسوب میشود. همچنین دارای نسخهای کوتاه شده است، زیرا کاربران ترمینال لینوکس تمایل دارند تا با انجام کار کمتر، نتیجه بهتری دریافت کنند.
$ ls -F Documents
کدهای کوتاه معمولاً میتوانند ترکیب شوند. در ادامه یک دستور ls آمده است که آپشن -l
را با آپشنهای –classify
، –human-readable
و –ignore-backups
ترکیب می کند:
$ ls -lhFB
برخی از آپشنها در دستورات ترمینال لینوکس میتوانند خود استدلالها را بگیرند. به عنوان مثال، گزینه –format
برای ls به شما امکان میدهد تا نحوه ارائه اطلاعات را تغییر دهید. به طور پیشفرض، محتویات پوشهها در ستونهایی در اختیار کاربر قرار میگیرند، اما اگر نیاز دارید که در فهرستی با کاما مشخص شوند، میتوانید قالب را روی کاما قرار دهید:
$ ls --format=comma Documents alluvial, android-info.txt, arduinoIntro, dmschema, headers.snippet, twine, workshop.odt
علامت مساوی (=) در اینجا اختیاری است، بنابراین نتیجه به این صورت خواهد بود:
$ ls --format comma Documents alluvial, android-info.txt, arduinoIntro, dmschema, headers.snippet, twine, workshop.odt
خط فرمان ترمینال لینوکس چیست ؟
هنگامی که برای اولین بار وارد سرور لینوکسی میشویم، معمولاً با «پیام روز» (MOTD) به کاربر خوشامدگویی میشود. به طور کلی، این پیام حاوی اطلاعات متفرقهای مانند نسخه توزیع لینوکس در حال اجرا است. حالا ما در «Shell Prompt» (اعلان پوسته) یا «Command Prompt» (اعلان دستور) قرار داریم، جایی که میتوانیم دستورات را پس از MOTD به سرور صادر کنیم.
اطلاعاتی که در «خط فرمان» (Commad-Line) ارائه میشوند، میتوانند توسط کاربر سفارشیسازی شوند. برای مثال، قالب و فُرمت خط فرمان پیشفرض اوبونتو ۱۴.۰۴ به صورت زیر است.
sammy@webapp:~$
در ادامه هر یک از اجزا و بخشهای «خط فرمان» (Command Line) یا همان «اعلان فرمان» (Command Prompt) شرح داده شدهاند.
- sammy: نام کاربری کاربر فعلی است.
- webapp: نام میزبان سرور است.
- ~(پوشه فعلی است): tilde یا ~ یک کاراکتر منحصر به فرد محسوب میشود که شامل پوستهای پیشفرض است و به مسیر فهرست اصلی کاربر فعلی در bash اشاره میکند. در این مورد، پوشه /home/sammy
را نشان میدهد.
- $(نماد اعلان است): علامت $ نشان دهنده تکمیل اعلان خط فرمان است که پس از آن منتظر ورودی صفحه کلید از سوی کاربر خواهد ماند.
اجرای دستورات در ترمینال لینوکس
دستورات را میتوان در خط فرمان ترمینال لینوکس با توصیف نام فایل اجرایی صادر کرد که میتواند اسکریپت یا برنامهای باینری باشد. چندین ابزار و دستور استاندارد لینوکس وجود دارند که میتوان به وسیله آنها مدیریت سیستم عامل لینوکس، سیستم فایل، بستههای نرمافزاری و نصب برنامهها را انجام داد و برنامه و سیستم را پیکربندی کرد.
نمونهای از فرمان اجرا کننده را فرآیند مینامند. اگر دستوری در پیشزمینه اجرا شود (مسیر پیشفرض که در آن دستورات اجرا میشوند)، کاربر باید قبل از بازگشت به محیط خط فرمان که در آنجا میتواند صدور فرمانها را ادامه دهد، منتظر بماند تا مراحل تکمیل شوند. لازم به ذکر است که اکثر سیستم عاملهای لینوکسی به حروف بزرگ و کوچک از جمله در آپشنها، آرگومانها، دستورات، نام پوشه و نام فایل حساس هستند. بنابراین زمانی که چیزی مطابق انتظارتان اجرا نمیشود، حروف کوچک و املای دستورات را دوباره بررسی کنید. با انجام مثالها و تمرین کردن، متوجه خواهید شد که چه کلماتی مربوط به دستورات اصلی در ترمینال لینوکس هستند.
دستورات بدون گزینه و آرگومان
برای اجرای دستوری بدون هیچ گزینه یا آرگومان، میتوانیم به سادگی نام دستور را تایپ کرده و کلیدEnterرا فشار دهیم. اگر دستوری مانند این را اجرا کنیم، ماهیت پیشفرض خود را نشان میدهد که از یک دستور به دستور دیگر تغییر میکند. برای مثال، اگر یک دستور cd را بدون آرگومان اجرا کنیم، به فهرست اصلی کاربر فعلی بازگردانده میشویم.
دستور ls فهرست پوشهها و فایلهای پوشه فعلی را چاپ میکند. دستور ip بدون آرگومان، پیامی را چاپ می کند که نحوه اعمال دستور را به ما نشان میدهد. سعی کنید دستور ls را بدون آرگومان برای فهرست کردن پوشه ها و فایل ها در فهرست فعلی ما اجرا کنید.
دستورات با آرگومان
بسیاری از دستورها در ترمینال لینوکس پارامترها یا آرگومانهایی را میپذیرند که میتوانند بر ماهیت دستور تأثیر بگذارند. بیایید مثالی بزنیم که در آن ابتداییترین راه برای استفاده از دستور cd است. برای استفاده از دستور cd لازم است نشانی پوشهای را به عنوان آرکومان ارجاع دهیم که قصد داریم در داخل آن قرار بگیریم. فرض کنید برای تغییر در پوشه /usr/bin
که در آن چندین دستور استاندارد قابل نصب است، دستور زیر را صادر میکنیم.
cd /usr/bin
نکته: برای بهروزرسانی مسیر فعلی خط فرمان از دستور cd استفاده میشود.
اکثر دستورات آپشنهای اضافی را میپذیرند و همچنین سوئیچها یا پرچمهایی برای آنها وجود دارند که ماهیت دستور را تغییر میدهند. از آنجایی که اکثر دستورات دارای آرگومانهایی منحصر به فرد هستند، بنابراین آپشنها به دنبال دستور میآیند و همچنین با استفاده از کاراکتر سفارشی هم قابل استفاده هستند که به وسیله چندین آپشن با حروف کوچک یا بزرگ نشان داده میشوند. علاوه بر این، آپشنها با علامتهای «--» آغاز میشوند، که به دنبال آنها آپشن سفارشی یا چند کاراکتری (معمولاً کلمه توصیفی) میآید.
برای مثالی رایج از نحوه کار این آپشنها، بیایید دستور ls را بررسی کنیم. در اینجا چند آپشن اساسی وجود دارند که در صورت استفاده از ls بسیار رایج هستند:
- -l
: فهرست طولانیتری را چاپ میکند که حاوی اطلاعات اضافی مانند مهر زمانی، اندازه فایل، مالکیت و مجوزها است.
- -a
: تمام فایلهای یک پوشه از جمله موارد ناشناخته را فهرست میکند (که با . شروع میشوند).
دستور ls با -l
به صورت زیر استفاده میشود:
ls –l
توجه: خط کد بالا، فهرست فایلهایی که در پوشه موجود هستند را همراه با جزئیات بیشتر در مورد آنها نشان میدهد.
همانطور که قبلا بیان شد، کدها اغلب میتوانند با هم ترکیب شوند. اگر میخواهید از آپشنهای -a
و -l
با هم استفاده کنید، میتوانیم دستور ls -l -a
را اجرا کنیم یا دو آپشن مربوطه را مانند دستور زیر ادغام کنیم.
ls -la
توجه: این قطعه کد فهرست تمامی پوشههای پنهان و پوشههای داخل لیست را هم به دلیل وجود آپشن -a
نشان میدهد.
ادغام آرگومان ها و آپشنها در دستورات ترمینال لینوکس
آرگومانها و گزینهها تقریباً همیشه میتوانند هنگام اجرای دستورات ادغام شوند. برای مثال به دستور زیر توجه کنید.
ls -la /home
دستور بالا نشان میدهد کدام پوشه یا فایل باید فهرست شود. معنی این خط کد در ترمینال لینوکس این است که باید فهرست دقیق محتویات پوشه /home
را چاپ کند. پوشه home در واقع شاخه اصلی برای هر کاربر عادی در لینوکس به حساب میآید.
متغیرهای محیطی در ترمینال لینوکس چه هستند؟
این متغیرها به عنوان مقادیری شناخته میشوند که میتوانند برای تغییر نحوه اجرای فرآیندها و دستورات اعمال شوند. هنگامی که در ابتدا وارد محیط ترمینال لینوکس میشویم، متغیرهای محیطی مختلف به طور پیشفرض با توجه به برخی از فایلهای پیکربندی ثابت میشوند.
مشاهده هر متغیر محیطی
برای مشاهده هر متغیر محیطی که برای یک جلسه ترمینال خاص ثابت شده است، دستور env را اجرا کنید:
env
به احتمال زیاد، چندین خروجی وجود خواهد داشت، اما برای ورود PATH این قطعه کد را امتحان کنید:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
متغیر محیطی PATH را میتوان به همراه فهرست پوشههای جداسازی شده با کولون تعریف کرد که پوسته در هنگام صدور هر دستوری در آن به دنبال برخی اسکریپتها یا برنامههای اجرایی میگردد. مثلاً دستور env در مسیر /usr/bin قرار دارد و به کمک متغیر PATH کاربر قادر خواهد بود این دستور را بدون تعیین موقعیت آن اجرا کند. زیرا مسیر آن در متغیر محیطی PATH قرار دارد و پوسته با مراجعه به این متغیر میتوان محل ذخیرهسازی این دستور را پیدا کند.
تنظیمات مربوط به متغیرهای محیطی
اکنون که میدانیم چگونه متغیرهای محیطی خود را تعریف کنیم، باید بدانیم که چگونه آنها را مقداردهی کنیم. برای تنظیم متغیر محیطی، تنها کاری که باید انجام دهیم این است که با نام متغیر شروع کنیم، بلافاصله علامت = را قرار دهیم و مقدار دلخواه را سمت دیگر مساوی درج کنیم.
توجه: وقتی متغیر موجود را مقداردهی میکنیم، مقدار فعی آن حذف میشود. اگر متغیر برای اولین بار تعریف میشود، مقداری ندارد که تغییر کند و در این مرحله ساخته میشود.
Bash حاوی دستوری به نام exports است که میتواند یک متغیر را صادر کند. از این رو توسط فرآیندهای child به دست میآید. این متغیر به ما اجازه میدهد تا از اسکریپتهایی استفاده کنیم که متغیر محیطی خود را در کل این قطعه کدها، به طور کلی ترجیح میدهند.
همچنین در صورت تنظیم هر متغیری میتوانیم به متغیرهای موجود مراجعه کنیم. به عنوان مثال، هنگامی که ما هر برنامه ای را در opt/app/bin نصب میکنیم، میتوانیم آن پوشه را برای تکمیل متغیر محیطی PATH خود همراه با این دستور قرار دهیم:
exportPATH=$PATH:/opt/app/bin
اکنون، قطعه کد /opt/app/bin در تکمیل متغیر PATH ما همراه با echo در دستور گنجانده شده است:
echo PATH $
به یاد داشته باشید که تنظیم متغیرهای محیطی در این سبک، فقط آنها را برای جلسه فعلی ما تنظیم میکند. این بدان معناست که اگر ما از سیستم خارج شویم یا در دفعات بعدی تغییراتی را روی آنها اعمال کنیم، مقادیر قبلی که ایجاد کردهایم حفظ نمیشوند. همچنین، راهی برای تغییر دائمی متغیرهای محیطی وجود دارد.
نحوه راه اندازی ترمینال لینوکس چگونه است؟
برای راه اندازی یک ترمینال لینوکس، دو روش وجود دارد که هر یک در ادامه این بخش از مطلب ترمینال لینوکس چیست شرح داده شده است.
روش اول: Activities
نحوه استفاده از این روش در ادامه شرح داده شده است.
- روی گزینه Activities در سمت چپ بالای صفحه کلیک کنید.
- دستور، پوسته یا ترمینال موردنظر خود را جستجو کنید.
- گزینه ترمینال را برای راهاندازی آن انتخاب کنید.
اگر از نسخه دیگری از لینوکس استفاده میکنیم، ترمینال به دلیل راهاندازی برنامههای دیگر در مکان مشابهی قرار میگیرد. اگر نتوانستیم آن را تشخیص دهیم، روش دوم را اعمال کنیم.
روش دوم: استفاده از میانبر صفحه کلید
این سادهترین راه برای دسترسی به ترمینال لینوکس است. کلیدهای CTRL+ALT+T را به صورت ترکیبی فشار دهند تا صفحه ترمینال فوراً باز شود.
توجه: این یک میانبر پیشفرض است. برای تغییر میانبر پیشفرض، ميتوان به تنظیمات میانبرهای صفحه کلید مراجعه کرد. به این ترتیب، در اینجا به انتهای مطلب ترمینال لینوکس چیست رسیدهایم.
جمع بندی
در این مطلب به این پرسش پاسخ داده شد که ترمینال لینوکس چیست و به سایر موضوعهای مهم پیرامون ترمینال لینوکس از جمله محیط آن، کاربرد Shell یا پوسته در ترمینال و همچنین برخی از دستورات لینوکس نیز پرداخته شد.