103.1 - کار بر روی خط فرمان¶
اهداف یادگیری¶
در این فصل با موارد زیر آشنا میشوید:
- استفاده از دستورات پوسته تک و دنبالههای دستور یک خطی برای انجام وظایف پایهای بر روی خط فرمان
- استفاده و تغییر محیط پوسته شامل تعریف، ارجاع و صدور متغیرهای محیطی
- استفاده و ویرایش تاریخچه دستورات
- فراخوانی دستورات داخل و خارج مسیر تعریف شده
کلیدواژهها¶
bash, echo, env, export, pwd, set, unset, type, which, man, uname, history, .bash_history, Quoting
پوستهها و Bash¶
شما دستورات خود را در یک پوسته صادر میکنید؛ این رابط خط فرمان شما است و گزینههای مختلفی برای آن دارید. برای دسترسی به پوسته خود، باید به سیستم در حالت متنی وارد شوید یا یکی از شبیهسازهای ترمینال مختلف را در GUI خود اجرا کنید. برخی نمونهها gnome-terminal, konsole, xterm و غیره هستند.
پس از اجرای شبیهساز ترمینال یا ورود به حالت متنی، در پوسته هستید و میتوانید دستورات را صادر کنید. اگرچه bash (GNU Bourne Again shell) رایجترین است، ممکن است از zsh, dash, ksh, csh و دیگران استفاده کنید.
میتوانید بررسی کنید که دستور عمومی sh شما به کجا لینک شده است:
یا متغیر $SHELL خود را با استفاده از:
چک کنید.
Bash شما برخی دستورات داخلی دارد که بدون هیچ وابستگی خارجی آنها را درک میکند (مانند cd, break, exec, ...) اما اگر چیزی را داخلی درک نکند، سعی میکند آن را به عنوان یک اجرایی خارجی اجرا کند.
میتوانید از دستور type برای تعیین این استفاده کنید:
[jadi@fedora ~]$ type cd
cd is a shell builtin
[jadi@fedora ~]$ type ls
ls is aliased to `ls --color=auto'
[jadi@fedora ~]$ type ping
ping is /usr/bin/ping
cd, pwd & uname¶
cd¶
شما قبلاً دستورات زیادی از cd دیدهاید :) آن دایرکتوری را تغییر میدهد، شامل . (دایرکتوری فعلی) و .. (دایرکتوری والد).
میتوانید به دایرکتوریها به دو طریق اشاره کنید:
- مسیرهای مطلق: مانند
/home/jadi/lpic1/lesson3.1 - مسیرهای نسبی: مانند
lpic1/lesson3.1. در این حالت،/را در ابتدای آن اضافه نمیکنیم بنابراین bash سعی میکند دایرکتوریlpic1را جایی که هستیم پیدا کند (محلی / نسبی)
کاراکتر
~به معنای دایرکتوری خانه کاربر صادرکننده دستور است
همچنین امکانپذیر است که cd را بدون هیچ پارامتری صادر کنید. شما را به دایرکتوری خانه خود منتقل میکند. بنابراین این 3 دستور همه برابر هستند:
pwd¶
دایرکتوری فعلی شما را نشان میدهد:
uname¶
دادههایی درباره سیستم به شما میدهد. سوئیچهای رایج عبارتند از:
| گزینه | توضیح |
|---|---|
| -s | نام کرنل را چاپ میکند. این پیشفرض است اگر گزینهای مشخص نشده باشد. |
| -n | نام نود یا hostname را چاپ میکند. |
| -r | انتشار کرنل را چاپ میکند. این گزینه اغلب با دستورات مدیریت ماژول استفاده میشود. |
| -v | نسخه کرنل را چاپ میکند. |
| -m | نام سختافزار (CPU) ماشین را چاپ میکند. |
| -o | نام سیستم عامل را چاپ میکند. |
| -a | همه اطلاعات بالا را چاپ میکند. |
مثال:
$ uname -a
Linux fedora 5.8.15-301.fc33.x86_64 #1 SMP Mon Oct 19 13:19:37 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
متغیرهای محیطی¶
متغیرهای محیطی مقادیری هستند که توسط پوسته نگهداری میشوند و میتوانند توسط برنامهها استفاده شوند. برای نمایش متغیرهای محیطی فعلی، از دستور env استفاده کنید:
برای تعریف یک متغیر محیطی جدید:
برای ارجاع به یک متغیر، از $ استفاده کنید:
برای صدور یک متغیر به محیط، از export استفاده کنید:
متغیرهای محیطی رایج شامل PATH, HOME, USER, SHELL و غیره هستند.
تاریخچه دستورات¶
Bash تاریخچه دستورات شما را نگهداری میکند. برای نمایش تاریخچه:
برای ویرایش تاریخچه، میتوانید از کلیدهای جهتدار بالا و پایین استفاده کنید. فایل تاریخچه در ~/.bash_history ذخیره میشود.
برای پاک کردن تاریخچه:
نقل قولها¶
برای جلوگیری از تفسیر کاراکترهای خاص توسط پوسته، از نقل قول استفاده کنید. نقل قول تک (') تفسیر را متوقف میکند، نقل قول دوگانه (") اجازه تفسیر متغیرها را میدهد.
مثال:
man و help¶
برای دریافت کمک درباره دستورات، از man استفاده کنید:
برای دستورات داخلی bash، از help استفاده کنید:
which و whereis¶
برای یافتن محل یک دستور:
تمرینها¶
- پوسته فعلی خود را بررسی کنید و ببینید آیا bash است یا نه.
- با استفاده از
cdبه دایرکتوری خانه خود بروید و سپس به/tmpبروید. - اطلاعات سیستم خود را با
uname -aنمایش دهید. - یک متغیر محیطی جدید تعریف کنید و آن را export کنید.
- تاریخچه دستورات خود را نمایش دهید و یکی از دستورات قبلی را دوباره اجرا کنید.
- تفاوت بین نقل قول تک و دوگانه را با مثال نشان دهید.
- کمک دستور
lsرا باmanببینید. - محل دستور
pingرا باwhichوwhereisپیدا کنید.
خلاصه¶
در این فصل با کار بر روی خط فرمان آشنا شدیم. یاد گرفتیم چگونه از پوسته bash استفاده کنیم، دستورات پایهای مانند cd, pwd, uname را اجرا کنیم، متغیرهای محیطی را مدیریت کنیم، تاریخچه دستورات را ویرایش کنیم، از نقل قولها استفاده کنیم و کمک دستورات را ببینیم. همچنین ابزارهایی مانند which و whereis برای یافتن محل دستورات را آموختیم. این مهارتها پایهای برای کار موثر با سیستم لینوکس هستند.
نکات کلیدی برای آزمون
- استفاده از
cd,pwdوunameبرای کار روی مسیرها و اطلاعات سیستم - مدیریت متغیرهای محیطی (
env,export) و درک متغیرPATH - ویرایش و مشاهده تاریخچه دستورات (
history,~/.bash_history) - تفاوت بین نقلقول تک و دوتایی (
'vs") و تاثیر آن روی تفسیر متغیرها - پیدا کردن مکان دستورات با
whichوwhereis