اگر آموزش لینوکس را به تازگی شروع کردهاید، موضوع ترمینال در لینوکس جزو اولین مباحثی است که باید آن را بیاموزید. در واقع آموزش مقدماتی لینوکس از شروع کار با ترمینال در سرور لینوکس آغاز میشود. سپس باید با دستورات مهم ترمینال لینوکس آشنا شوید و به تدریج این مسیر را ادامه دهید.
ترمینال لینوکس چیست؟
ترمینال لینوکس همان خط فرمان این سیستم عامل است. وظیفه ترمینال، اجرا کردن دستورات لینوکس است که کاربر یا مدیر سرور لینوکسی آنها را صادر میکند.
استفاده از ترمینال لینوکس موضوع بسیاری مهمی است. این اولین و اصلیترین قدم برای تعامل با سرور لینوکس است. برای آغاز این آموزش و درک بهتر مفاهیم و دستوراتی که در آن شرح داده میشود باید یک شبیه ساز ترمینال یا Terminal Emulator داشته باشید.
شبیه ساز ترمینال یا Terminal Emulator چیست؟
شبیه ساز ترمینال برنامهای است که امکان استفاده از ترمینال لینوکس را در محیطی کاملاً گرافیکی فراهم میکند.
چون اکثر کاربران کامپیوتر ترجیح میدهند برای کارهای روزمره خود از یک GUI یا رابط گرافیکی پیشرفته استفاده کنند، شبیه ساز ترمینال چنین محیطی را برای کاربران لینوکس فراهم میکنند.
بر اساس سیستم عاملی که برای اتصال به سرور لینوکسی خود از آن استفاده میکنید، میتوانید از یکی از Terminal Emulatorهایی که در ادامه توضیح داده میشود، استفاده کنید.
– Mac OS : ترمینال پیش فرض، I term 2
-Windows: conEmu، windows Terminal، Putty
-Linux: Gnome، Konsole، XTerm Terminal
هر کدام از موارد معرفی شده مزایا و معایب خاص خود را دارند. به هر حال اگر شبیه ساز منتخب شما به روز بوده، پنجره و tab دارد و کارکردن با آن برایتان ساده و قابل درک است، کافی است.
Shell یا پوسته چیست؟
مفهوم Shell یا پوسته در سیستم عامل لینوکس به خط فرمانی اطلاق میشود که دستورات، فایلها و اسکریپتهای کاربر را تفسیر میکند؛ سپس به سیستم عامل سرور میگوید که با این دستورات و فایلها چه کاری باید بکند.
چندین پوسته وجود دارد که به طور گسترده مورد استفاده قرار میگیرد. مانند Bourne-Again shell یا Bash و Z shell یا zsh .
هر پوسته مجموعهای از ویژگی و پیچیدگیهای مربوط به نحوه تفسیر دستورات را دارد. اما همه آنها باید امکان ریدایرکت کردن وروردی و خروجی متغییرها، تست شرط و موارد دیگر را داشته باشند.
این آموزش با استفاده از پوسته Bourne Again یا Bash نوشته شده است. Bash پوسته پیش فرض اکثر توزیعهای لینوکس از جمله ابونتو، فدورا و RHEL است.
تحلیل و بررسی ترمینال لینوکس: انواع، مقایسه و انتخاب بهینه
ترمینال لینوکس یکی از قدرتمندترین ابزارهای این سیستم عامل است که کاربران حرفهای و متخصصین به خصوص از آن استفاده میکنند. این ترمینال ها از قدرت بالایی برخوردارند و کاربران را قادر میسازند تا کنترل کاملی بر سیستم عامل خود داشته باشند. در جداول زیر، ما به بررسی و مقایسه برخی از ویژگی های مهم ترمینال لینوکس، ترمینال های مختلف موجود در لینوکس و شل های متداول این سیستم عامل خواهیم پرداخت.
جدول 1: مقایسه ترمینال لینوکس و ترمینال ویندوز
معیار | ترمینال لینوکس | ترمینال ویندوز |
---|---|---|
قدرت و کنترل | ترمینال لینوکس به کاربران امکان می دهد تا کنترل کاملی بر سیستم عامل داشته باشند | ترمینال ویندوز کمتر قدرتمند است و کنترل کاملی بر سیستم عامل ندارد |
سفارشی سازی | ترمینال لینوکس قابل سفارشی سازی به صورت عمیق است | ترمینال ویندوز امکانات سفارشی سازی کمتری دارد |
امکانات | ترمینال لینوکس پشتیبانی قوی از اسکریپت نویسی و ابزارهای قدرتمند دیگر را دارد | ترمینال ویندوز از امکانات محدودتری برخوردار است |
جدول 2: مقایسه میان برخی از ترمینال های محبوب لینوکس
ترمینال | امکانات ویژه | مزایا | معایب |
---|---|---|---|
Gnome Terminal | پشتیبانی از تب ها، پشتیبانی از مدیریت پروفایل | ساده و راحت برای استفاده | کمی قدیمی و بدون بعضی از قابلیت های مدرن |
Konsole | پشتیبانی از تب ها، امکان اجرای دستورات مستقیما از کلیک راست | ویژگی های کاربرپسند و قدرتمند | ممکن است با برخی از میزکارها سازگار نباشد |
Terminator | تقسیم صفحه، پشتیبانی از تب ها، پشتیبانی از پروفایل ها | انعطاف پذیر و قدرتمند | ممکن است برای کاربران تازه کار کمی پیچیده باشد |
جدول 3: مقایسه برخی از شل های متداول در لینوکس
شل | امکانات ویژه | مزایا | معایب |
---|---|---|---|
Bash (Bourne Again Shell) | پشتیبانی از اسکریپت نویسی، پیش فرض در بسیاری از توزیع های لینوکس | قابلیت های کامل و روشن | ممکن است برای کاربران تازه کار کمی پیچیده باشد |
Zsh (Z Shell) | پشتیبانی از تکمیل خودکار دستورات، قابل سفارشی سازی بالا | قدرتمند و قابل تنظیم به صورت شخصی | نیاز به تنظیمات اولیه ممکن است برای برخی کاربران نامناسب باشد |
Fish (Friendly Interactive Shell) | تکمیل خودکار دستورات، رابط کاربری پیشرفته | ساده و راحت برای استفاده | کاملا با استانداردهای POSIX سازگار نیست |
در نهایت، میتوانیم ببینیم که ترمینال لینوکس یک ابزار قدرتمند و پیچیده است که با انتخاب صحیح میتواند به کارایی و کارآمدی کاربران لینوکس افزایش دهد. هر یک از ترمینال ها و شل ها مزایا و معایب خاص خود را دارند و انتخاب بین آنها بستگی به نیازها و ترجیحات کاربر دارد. با فهم بهتر از ویژگیهای این ابزارها، کاربران میتوانند بهره وری خود را افزایش دهند و تجربه بهتری از استفاده از سیستم عامل لینوکس داشته باشند.
آشنایی با خط فرمان یا Command Prompt
وقتی برای اولین بار وارد یک سرور لینوکسی میشوید پیام MOTD به شما نمایش داده میشود. MOTD اطلاعاتی نظیر توزیع لینوکس در حال اجرا روی سرور و مواردی از این دست را به شما میدهد.
بعد از نمایش MOTD، کرسر شما در خط فرمان یا Shell Prompt قرار میگیرد. در این قسمت میتوانید دستورات را به سرور صادر کنید.
البته اطلاعاتی که در خط فرمان ارائه میشود میتواند توسط کاربر سفارشی شود. در اینجا نمونهای از خط فرمان پیش فرض Ubunto20.04 آورده شده است.
![خط فرمان پیش فرض](https://linuxlearning.ir/wp-content/uploads/2022/11/default-ubunto-terminal.jpg)
توضیح آنچه در خط فرمان بالا نوشته شده به این قرار است:
Sammy: یوزرنیم کاربر فعلی
Webapp: نام میزبان سرور
~ : دایرکتوری فعلی که پوسته پیش فرض است.)توضیح: به علامت ~ نشان Tilde هم گفته میشود که یک کاراکتر ویژه است که به مسیر فهرست اصلی کاربر فعلی گسترش مییابد. در این خط فرمان نشان دهنده Home/Sammy/ است.(
$: این علامت نشان دهنده پایان خط فرمان است. پس از آن علامت چشمک زن کرسر ظاهر میشود.
حالا مثالی ببینید از خط فرمانی که در آن Root وارد پوشه Var/log/ شده است.
![Root در پوشه Var/log](https://linuxlearning.ir/wp-content/uploads/2022/11/root-terminal-.jpg)
نکته!
علامتی که خط فرمان را به پایان میرساند یک # است. این علامت نماد استاندارد برای Root است. در لینوکس یوزر Root یک حساب کاربری بسیار ویژه است که میتواند عملکردهای مدیریتی را در سراسر سیستم انجام دهد. Root کاربر نا محدودی است که اجازه انجام هر کار عملیاتی در سرور را دارد.
دستورات در حال اجرا
دستورات لینوکس را میتوان در خط فرمان با تعیین نام یک فایل اجرایی صادر کرد. این دستورات میتوانند مربوط به اجرای یک برنامه یا اسکریپت باشند. بسیاری از دستورات و ابزارهای استاندارد لینوکس در زمان نصب این سیستم عامل روی آن نصب میشوند. این دستورات به شما امکان میدهند در سیستم عامل پیمایش کنید، نرم افزارهای مورد نیاز خود را نصب کنید و خود سیستم عامل با برنامههای کاربردی آن را کانفیگ کنید.
یک دستور در حال اجرا به عنوان یک فرآیند شناخته میشود. وقتی دستوری در حال پروسس است که اجرای آن پیش نیاز اجرای دستورات بعدی است، کاربر باید منتظر اجرای کامل و تمام شدن آن بماند تا کرسر به خط فرمان برگشته و سایر دستورات به اجرا در بیاید.
نکته دیگر این است که لینوکس همواره به حروف کوچک و بزرگ حساس بوده است. از جمله نام فایلها، دستورات مهم ترمینال لینوکس، دایرکتوریها و آرگومانها. بنابراین اگر احساس کردید چیزی مطابق با انتظار شما کار نمیکند، املا و کوچکی و بزرگی حروف آن را بررسی کنید.
مثالهای زیر اصول اجرای دستورات را نشان میدهد.
دستورات بدون آرگومان یا آپشنها
اگرآنچه به عنوان دستور در ترمینال در لینوکس خود وارد کردهاید، آرگومان خاصی ندارد، کافیست دستور مورد نظر خود را تایپ کرده و Enter بزنید.
با اجرای این دستور خط فرمان رفتار پیش فرض خود را نشان میدهد که از دستوری به دستور دیگر متفاوت است. به عنوان مثال اگر دستور cd را بدون آرگومان اجرا کنید، به دایرکتوری اصلی خود بازگردانده میشوید. اگر دستور 1S را تایپ کنید فهرستی از فایلها و دایرکتوریهای فعلی به شما نمایش داده میشود. دستور ip هم اگر بدون هیچ آرگومانی تایپ شود پیامی را چاپ میکند که نحوه استفاده از دستور ip را به شما نمایش میدهد.
![دستورات بدون آرگومان یا آپشنها](https://linuxlearning.ir/wp-content/uploads/2022/11/argumentless-command.jpg)
اجرای دستورات مهم ترمینال لینوکس با آرگومان
بسیاری از دستورات پارامتر یا آرگومانهایی را میپذیرند که میتوانند بر رفتار یک فرمان اثر بگذارند. به عنوان مثال رایجترین راه برای استفاده از دستور cd ارسال یک آرگومان واحد است که مشخص میکند میخواهید به کدام دایرکتوری تغییر مسیر دهید.
به طور مثال اگر میخواهید مسیر دایرکتوری خود را به usr/bin/ تغییر دهید باید دستور را به شکل زیر صادر کنید.
این مسیری است که بسیاری از دستورات استاندارد در آن نصب شده است.
![اجرای دستورات مهم ترمینال لینوکس با آرگومان](https://linuxlearning.ir/wp-content/uploads/2022/11/command-with-argument.jpg)
کامپوننت cd یک کامند یا دستور است که از اولین آرگومان User/bin/ پیروی میکند.
حالا دستور 1S را اجرا کنید تا فایلهایی را که در مسیر دایرکتوری جدید فعلی شما قرار دارد را مشاهده کنید.
![مشاهده فایل های مسیر دایرکتوری فعلی](https://linuxlearning.ir/wp-content/uploads/2022/11/ls-directory-show-command.jpg)
اجرای دستورات با آپشن
بیشتر دستورات مهم ترمینال لینوکس یا کامندها، گزینه یا آپشنهایی را میپذیرند که به عنوان فلگها (پرچمها) یا سویچها شناخته میشوند. این آپشنها رفتار کامندها را تغییر میدهند. هر آپشن مخصوص یک دستور یا کامند است و با یک کاراکتر تکی – که به دنبال آن یک یا چند گزینه وجود دارد، نشان داده میشود. این حروف میتوانند کوچک یا بزرگ باشند.
بعضی از آپشنهای چند کلمهای میتوانند با – – و متن فلگ شروع شوند.
برای درک بهتر از مثال نحوه عملکرد گزینهها روی دستور 1s نگاه کنید. در اینجا چند گزینه رایج وجود دارد که هنگام استفاده از 1s استفاده میشوند.
1- : نمایش یک فهرست طولانی که شامل جزئیات اضافی مانند مجوزها، مالکیت، اندازه فایل و TimeStamps است.
a- : فهرست همه فایلهای یک فهرست از جمله فایلهای مخفی که با. شروع میشوند.
برای استفاده از فلگ -1 با 1s از این دستور استفاده کنید.
![اجرای دستورات با آپشن](https://linuxlearning.ir/wp-content/uploads/2022/11/command-with-option.jpg)
توجه داشته باشید که فهرست شامل همان فایلهای قبلی است که با اطلاعات اضافی هر فایل را هم دارد.
همانطور که قبلاً اشاره شد، آپشن یا گزینهها اغلب میتوانند با هم گروهبندی شوند و در یک خط فرمان مورد استفاده قرار گیرند. اگر میخواهید از گزینههای 1- و –a با هم استفاده کنید میتوانید –a -1 1s را جدا جدا اجرا کنید یا آنها را مانند دستور زیر مرتب و در کنار هم استفاده کنید.
![ls la دستور در لینوکس](https://linuxlearning.ir/wp-content/uploads/2022/11/ls-la-command.jpg)
توجه داشته باشید که فهرست شامل موارد. یا پنهان است و .. دایرکتوریهای داخل لیست که به خاطر وجود گزینه –a .
با گزینهها و آرگومانها
همیشه میتوانید گزینهها و آرگومانها را با یکدیگر ترکیب کنید. به عنوان مثال میتوانید با اجرای دستور 1s محتویات /home را بدون توجه به فهرست فعلی خود بررسی کنید.
![با گزینهها و آرگومانها](https://linuxlearning.ir/wp-content/uploads/2022/11/combine-option-arguments.jpg)
1s خط فرمان یا Command Prompt است. -1a آپشن و /home آرگومان است که نشان میدهد کدام فایل یا دایرکتوری را باید فهرست کرد.
این باید فهرستی دقیق از دایرکتوری /home را نمایش دهد که شامل دایرکتوریهای اصلی همه کاربران عادی روی سرور باشد.
متغیرهای محیطی
متغیرهای محیطی مقادیر نام گذاری شدهای هستند که برای تغییر نحوه اجرای دستورات و فرآیندها استفاده میشوند. وقتی برای اولین بار وارد یک سرور میشوید چندین متغیر محیطی به صورت پیش فرض بر اساس چندین فایل پیکربندی تنظیم میشوند.
مشاهده همه متغیرهای محیطی
برای مشاهده همه متغیرهای محیطی که برای یک Session ترمینال خاص تنظیم شدهاند، دستورات env را اجرا کنید.
![مشاهده همه متغییرهای محیطی](https://linuxlearning.ir/wp-content/uploads/2022/11/all-env.jpg)
با اجرای این دستور خروجی زیادی خواهید داشت که باید در میان آنها به دنبال PATH باشید.
![path را در خروجی Env پیدا کنید](https://linuxlearning.ir/wp-content/uploads/2022/11/find-path-in-env.jpg)
متغیر محیطی PATH فهرستی از دایرکتوریها است که با کولون مشخص شدهاند. در این فهرست پوسته هنگام صدور فرمان به دنبال برنامهها یا اسکریپتهای اجرایی میگردد. به عنوان مثال، دستور env در usr/bin/ قرار دارد و شما میتوانید بدون تعیین مسیر کامل آن را اجرا کنید. زیرا مسیر آن در متغییر محلی PATH است.
مشاهده مقدار یک متغیر
مقدار یک متغیر محلی را میتوان با پیشوند نام متغیر یا یک $ بازیابی کرد. با این کار متغیر ارجاع شده به مقدار آن گسترش مییابد. به عنوان مثال برای چاپ مقدار متغیر PATH میتوانید از دستور echo استفاده کنید.
![مشاهده مقدار یک متغییر](https://linuxlearning.ir/wp-content/uploads/2022/11/print-variable.jpg)
یا میتوانید از متغیر Home که به طور پیش فرض روی دایرکتوری اصلی کاربر تنظیم شده است، استفاده کنید تا به فهرست اصلی خود تغییر دهید.
![تغییر مسیر به فهرست اصلی](https://linuxlearning.ir/wp-content/uploads/2022/11/cd-to-Home.jpg)
اگر بخواهید به یک متغیر محیطی که اصلاً تنظیم نشده است دسترسی پیدا کنید با یک رشته خالی روبه رو میشوید.
تنظیم متغیرهای محیطی
اکنون که میدانید چطور متغیرهای محیط خود را مشاهده کنید، باید نحوه تنظیم آنها را یاد بگیرید.
برای تنظیم متغیر محیطی تنها کاری که باید انجام دهید این است که با نام متغیر شروع کنید، بلافاصله علامت = و بعد مقدار دلخواه آن را وارد کنید.
![تنظیم متغییرهای محیطی](https://linuxlearning.ir/wp-content/uploads/2022/11/set-var.jpg)
اگر یک متغیر موجود را برای دستور خود تنظیم کنید، مقدار اصلی آن بازنویسی میشود. اگر متغیر از ابتدا وجود نداشته باشد، بازنویسی میشود.
Bash شامل دستوری به نام export است که یک متغییر را صادر میکند تا توسط فرآیند فرزندی به ارث برسد. به این ترتیب میتوانید از اسکریپتهایی استفاده کنید که به متغییر محیطی صادر شده از session فعلی شما اشاره میکند.
همچنین میتوانید در هنگام تنظیم یک متغیر، به متغییرهای موجود ارجاع دهید. به عنوان مثال اگر برنامهای را در opt/app/bin/ نصب کردهاید میتوانید آن دایرکتوری را با این دستور به انتهای متغیر محیطی PATH خود اضافه کنید.
![دستور export در لینوکس](https://linuxlearning.ir/wp-content/uploads/2022/11/export-command.jpg)
حالا بررسی کنید که opt/app/bin/ با echo به انتهای متغیر PATH شما اضافه شده باشد.
![بررسی اضافه شدن آدرس به انتهای path](https://linuxlearning.ir/wp-content/uploads/2022/11/echo-with-Path.jpg)
به یاد داشته باشید که تنظیم متغیرهای محیطی به این روش فقط آنها را برای سشن فعلی شما تنظیم میکند. یعنی اگر از سیستم خود خارج شوید یا به Session دیگری بروید، تغییراتی که در محیط ایجاد کردهاید ذخیره نمیشوند.
آنچه در این مطلب مطالعه کردید آشنایی اولیه با ترمینال در لینوکس بود. سپس با برخی از دستورات مهم ترمینال لینوکس و شیوه استفاده از آنها آشنا شدید. اما بدون شک میدانید که این تازه ابتدای مسیر است. با ادامه مقالات از این سری آموزشی همراه باشید تا نحوه اتصال به سیستم عامل سرور لینوکس و ایجاد تغییرات و مدیریت در آن را به طور کامل بیاموزید.