این آموزش که اولین مورد از مجموعه ای است که اصول لینوکس را آموزش می دهد، شروع کار با ترمینال، خط فرمان لینوکس و اجرای دستورات را پوشش می دهد. اگر با لینوکس تازه کار هستید، باید با ترمینال آشنا شوید، زیرا این روش استاندارد برای تعامل با سرور لینوکس است.
اگر میخواهید از این آموزش حداکثر استفاده را ببرید، برای اتصال و استفاده به سرور لینوکس نیاز دارید. این آموزش برای سرور اوبونتو 22.04 نوشته شده است، اما اصول کلی برای هر توزیع دیگر لینوکس اعمال می شود.
بیایید با توضیح اینکه شبیه ساز ترمینال چیست، شروع کنیم.
شبیه ساز ترمینال برنامه ای است که امکان استفاده از ترمینال را در یک محیط گرافیکی فراهم می کند. از آنجایی که اکثر مردم از یک سیستم عامل با رابط کاربری گرافیکی (GUI) برای نیازهای روزمره رایانه خود استفاده می کنند، استفاده از شبیه ساز ترمینال برای اکثر کاربران سرور لینوکس یک ضرورت است.
در اینجا برخی از شبیه سازهای ترمینال رایگان و رایج توسط سیستم عامل آورده شده است:
-
Mac OS X: ترمینال (پیشفرض)، iTerm 2
-
ویندوز: ConEmu، Windows Terminal، PuTTy
-
لینوکس: Gnome Terminal، Konsole، XTerm
هر شبیه ساز ترمینال مجموعه ای از ویژگی های خاص خود را دارد. به طور کلی، باید از یک شبیه ساز ترمینال مدرن انتظار داشته باشید که از پنجره های تب دار و برجسته سازی متن پشتیبانی کند.
The Shell
در یک سیستم لینوکس، shell یک رابط خط فرمان است که دستورات و فایلهای اسکریپت کاربر را تفسیر میکند و به سیستم عامل سرور میگوید که با آنها چه کند. چندین پوسته یا Shell وجود دارد که به طور گسترده مورد استفاده قرار می گیرند، مانند پوسته Bourne-Again (bash) و پوسته Z (zsh). هر پوسته دارای مجموعه ویژگی ها و پیچیدگی های مربوط به نحوه تفسیر دستورات است، اما همه آنها دارای وِیژگی های ورودی و خروجی، متغیرها و تست شرط و موارد دیگر هستند.
این آموزش با استفاده از پوسته Bourne-Again نوشته شده است که معمولاً به آن bash می گویند و پوسته پیش فرض اکثر توزیع های لینوکس از جمله اوبونتو، فدورا و RHEL است.
خط فرمان
هنگامی که برای اولین بار به یک سرور وارد می شوید، معمولاً با پیامی (MOTD) مواجه می شوید که معمولاً یک پیام اطلاعاتی در مورد موارد متفرقه ای مانند نسخه توزیع لینوکسی است که سرور در حال اجرای آن است. پس از MOTD، شما در خط فرمان یا shell prompt قرار می گیرید، جایی که می توانید دستورات را به سرور صادر کنید.
اطلاعاتی که در خط فرمان ارائه می شود می تواند توسط کاربر سفارشی شود، اما در اینجا نمونه ای از خط فرمان پیش فرض Ubuntu 20.04 آورده شده است:
$~:admin@webapp
در اینجا خلاصه ای از ترکیب خط فرمان آمده است:
-
admin: نام کاربری کاربر فعلی
-
webapp: نام میزبان سرور
-
~: دایرکتوری فعلی. در bash که پوسته پیشفرض است، ~ یا tilde یک کاراکتر ویژه است که به مسیر دایرکتوری اصلی کاربر فعلی گسترش مییابد. در این مورد، نشان دهنده /home/admin است
-
$: نماد اعلان. این نشان دهنده پایان خط فرمان است، پس از آن ورودی صفحه کلید کاربر ظاهر می شود
در اینجا مثالی از اینکه یک خط فرمان ممکن چگونه به نظر میرسد آورده شده، اگر به عنوان root و در پوشه /var/log وارد شده باشد، آمده است:
#root@webapp:/var/log
توجه داشته باشید که نمادی که خط فرمان را به پایان میرساند یک # است که نماد خط استاندارد برای root است. در لینوکس، کاربر روت، حساب کاربری با دسترسی زیاد است، که میتواند عملکردهای مدیریتی در سراسر سیستم را انجام دهد. این کاربر دارای دسترسی نامحدود است که اجازه انجام هر کاری را در سرور دارد.
اجرا دستورات
دستورات را می توان در خط فرمان با تعیین نام یک فایل اجرایی، که می تواند یک برنامه باینری یا یک اسکریپت باشد، صادر کرد. بسیاری از دستورات و ابزارهای استاندارد لینوکس وجود دارند که با سیستم عامل نصب می شوند و به شما امکان می دهند در سیستم فایل بچرخید، بسته های نرم افزاری را نصب کنید و سیستم و برنامه های کاربردی را پیکربندی کنید.
یک دستور در حال اجرا به عنوان یک فرآیند شناخته می شود. هنگامی که یک دستور در پیش زمینه اجرا می شود، کاربر باید تا بازگشت به خط فرمان، صبر کند تا فرآیند به پایان برسد، در این مرحله می تواند به صدور دستورات بیشتر ادامه دهد.
توجه به این نکته ضروری است که تقریباً همه چیز در لینوکس به حروف بزرگ و کوچک حساس است، از جمله نام فایل ها و دایرکتوری ها، دستورات، آرگومان ها و گزینه ها. اگر چیزی
آنطور که باید کار نمی کند، املا و حروف دستورات خود را دوباره بررسی کنید! در اینجا چند مثال آورده شده است که اصول اجرای دستورات را پوشش می دهد.
بدون آرگومان یا پارامتر
برای اجرای دستور بدون آرگومان یا گزینه، نام دستور را تایپ کرده و Enter را فشار دهید. اگر دستوری مانند دستور زیر را اجرا کنید، رفتار پیش فرض خود را نشان می دهد که از دستوری به دستور دیگر متفاوت است. به عنوان مثال، اگر دستور cd را بدون هیچ آرگومان اجرا کنید، به دایرکتوری اصلی کاربر فعلی خود بازگردانده می شوید. دستور ls فهرستی از فایل ها و دایرکتوری های فعلی را چاپ می کند. دستور ip بدون هیچ آرگومان پیامی را چاپ می کند که نحوه استفاده از دستور ip را به شما نشان می دهد.
برای فهرست کردن فایلها و دایرکتوریها در دایرکتوری فعلیتان، دستور ls را بدون هیچ آرگومان اجرا کنید (ممکن است وجود نداشته باشد):
ls$
با آرگومان
بسیاری از دستورات، آرگومان ها یا پارامترهایی را می پذیرند که می توانند بر رفتار یک دستور تأثیر بگذارند. به عنوان مثال، رایج ترین راه برای استفاده از دستور cd ارسال یک آرگومان واحد است که مشخص می کند به کدام دایرکتوری تغییر دهید. به عنوان مثال، برای تغییر به پوشه /usr/bin، که در آن بسیاری از دستورات استاندارد نصب شده است، این دستور را صادر کنید:
cd /usr/bin
cd دستور است و اولین آرگومان /usr/bin از دستور پیروی می کند. توجه داشته باشید که چگونه مسیر فعلی خط فرمان شما به روز شده است.
سعی کنید دستور ls را اجرا کنید تا فایل هایی را که در دایرکتوری جدید فعلی شما قرار دارند را مشاهده کنید.
ls
Output
…
grub-mkrescue sdiff zgrep
grub-mkstandalone sed zipdetails
grub-mount see zless
grub-ntldr-img select-editor zmore
grub-render-label semver znew
grub-script-check sensible-browser
با پارامتر
اکثر دستورات پارامترهایی را می پذیرند که به عنوان Flag یا سوئیچ نیز شناخته می شوند که رفتار دستور را تغییر می دهند. پارامترها از یک دستور با یک کاراکتر خاص پیروی می کنند و به دنبال آن یک یا چند پارامتر که با حروف بزرگ یا کوچک است نمایش داده می شوند. برخی از پارامترهای چند کلمه ای می توانند با -- و سپس متن Flag شروع شوند.
برای مثالی از نحوه عملکرد پارامترها، اجازه دهید به دستور ls نگاه کنیم. در اینجا چند پارامتر رایج وجود دارد که هنگام استفاده از ls مفید هستند:
-
-l: چاپ یک "فهرست طولانی"، که شامل جزئیات اضافی مانند لایسنس ها، مالکیت، اندازه فایل، و بازه زمانی است.
-
-a: فهرست همه فایلهای دایرکتوری، از جمله فایلهای مخفی (که با . شروع میشوند.)
برای استفاده از پرچم -l با ls، از این دستور استفاده کنید:
ls -l
توجه داشته باشید که فهرست شامل همان فایلهای قبلی است، اما با اطلاعات اضافی درباره هر فایل.
همانطور که قبلا ذکر شد، پارامترها اغلب می توانند با هم اجرا شوند. اگر می خواهید از گزینه های -l و -a با هم استفاده کنید، می توانید ls -l -a را اجرا کنید یا آنها را مانند دستور زیر ترکیب کنید:
ls -la
توجه داشته باشید که فهرست شامل موارد پنهان ( . و .. ) دایرکتوری ها در لیست، به دلیل پارامتر -a.
با پارامتر و آرگومان
هنگام اجرای دستورات، تقریباً همیشه می توان پارامترها و آرگومان ها را با هم ترکیب کرد. برای مثال، میتوانید با اجرای دستور ls، محتویات /home را بدون در نظر گرفتن دایرکتوری فعلی خود بررسی کنید:
ls -la /home
ls دستور ، -la پارامتر و /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، می توانید از دستور echo استفاده کنید:
echo $PATH
یا می توانید از متغیر HOME که به طور پیش فرض روی دایرکتوری اصلی کاربر تنظیم شده است استفاده کنید تا به دایرکتوری اصلی خود تغییر دهید:
cd $HOME
اگر سعی کنید به یک متغیر محیطی که تنظیم نشده است دسترسی پیدا کنید، آن را به یک رشته خالی گسترش میدهید.
تنظیم متغیرهای محیطی
اکنون که می دانید چگونه متغیرهای محیط خود را مشاهده کنید، باید نحوه تنظیم آنها را یاد بگیرید. برای تنظیم یک متغیر محیطی، تنها کاری که باید انجام دهید این است که با نام متغیر شروع کنید، بلافاصله علامت = و سپس مقدار دلخواه آن را دنبال کنید:
VAR=value
توجه داشته باشید که اگر یک متغیر موجود را تنظیم کنید، مقدار اصلی بازنویسی می شود. اگر متغیر از ابتدا وجود نداشت، ایجاد می شود.
اکنون که شروع به یادگیری در مورد ترمینال لینوکس (و چند دستور) کرده اید، باید پایه خوبی برای گسترش دانش خود در مورد دستورات لینوکس داشته باشید. امیدواریم این مقاله آموزشی برای شما مفید بوده باشد، برای دیدن باقی آموزش ها میتوانید وارد منوی پشتیبانی بخش آموزش ها شوید، در صورتی که درباره این آموزش به مشکل یا سوالی برخورد کردید، میتوانید آن را در بخش دیدگاه بیان کنید.