یکی از مهمترین مهارتها در محیط خط فرمان، توانایی کشف خودکار اطلاعات درباره دستورات است. شما قرار نیست همه چیز را حفظ کنید؛ بلکه باید بدانید چگونه اطلاعات مورد نیاز خود را پیدا کنید. این بخش به ابزارهای مختلفی میپردازد که برای دریافت راهنما، کشف مسیر اجرایی و شناسایی نوع دستورات استفاده میشوند.
man (Manual Pages)
دستور man مخفف Manual است و مهمترین و جامعترین منبع راهنما برای دستورات لینوکس به شمار میرود. این دستور، صفحات راهنمای رسمی (Manual Pages) را برای یک دستور یا مفهوم خاص نمایش میدهد. این صفحات توسط توسعهدهندگان خود ابزارها نوشته میشوند و بهعنوان مستندات مرجع اصلی در نظر گرفته میشوند.
اگر دستور پیدا نشد با پکیج منیجر نصبش کنید. (pacman -S man, apt install man)
ساختار کلی:
man [section] command
نحوهی کار با man
پس از اجرای man، صفحهی راهنما در محیط less (یا more در برخی سیستمها) نمایش داده میشود و میتوانید از کلیدهای مشابه برای حرکت استفاده کنید:
| کلید | عمل |
|---|---|
| Space یا Page Down | یک صفحه به جلو. |
| b یا Page Up | یک صفحه به عقب. |
| ↓ یا Enter | یک خط به پایین. |
| ↑ | یک خط به بالا. |
| g | به ابتدای صفحه بروید. |
| G | به انتهای صفحه بروید. |
| /pattern | جستجوی عبارت pattern به سمت جلو. |
| n | تکرار جستجو. |
| q | خروج از man. |
ساختار صفحات man
صفحات man معمولاً از بخشهای زیر تشکیل شدهاند:
| بخش | توضیح |
|---|---|
| NAME | نام دستور و توضیح یک خطی دربارهی آن. |
| SYNOPSIS | خلاصهی نحوهی استفاده (ساختار کلی) با توضیح گزینهها و آرگومانها. |
| DESCRIPTION | توضیح کامل دربارهی دستور، عملکرد و گزینههای اصلی آن. |
| OPTIONS | لیست کامل گزینهها (فلگها) با توضیح هر کدام. |
| EXAMPLES | مثالهای عملی از نحوهی استفاده (در برخی pages). |
| FILES | فایلهای مرتبط با دستور (مثلاً فایلهای پیکربندی). |
| SEE ALSO | ارجاع به دستورات یا صفحات مرتبط دیگر. |
| AUTHOR | اطلاعات نویسنده یا توسعهدهنده. |
بخشهای مختلف man (Sections)
صفحات man به بخشهای (Sections) شمارهگذاریشده تقسیم میشوند تا بین مفاهیم مشابه (مثلاً یک دستور و یک تابع سیستمی با همین نام) تمایز قائل شوند.
| شماره بخش | نوع محتوا |
|---|---|
| 1 | دستورات عمومی کاربر (Executable programs or shell commands) |
| 2 | فراخوانیهای سیستمی (System calls) - توابع هسته |
| 3 | توابع کتابخانهای (Library functions) - مانند توابع C |
| 4 | فایلهای ویژه دستگاه (Special files - usually devices) |
| 5 | فرمت فایلها و قراردادها (File formats and conventions) |
| 6 | بازیها و صفحهنمایشها (Games and screensavers) |
| 7 | متفرقه (Miscellaneous) - مانند استانداردها و پروتکلها |
| 8 | دستورات مدیریت سیستم (System administration commands - معمولاً برای root) |
مثال: برای مشاهدهی مستندات فراخوانی سیستمی write (بخش ۲) در برابر دستور write (بخش ۱):
man 2 write # مستندات فراخوانی سیستمی write man 1 write # مستندات دستور write (اگر وجود داشته باشد)
مثالهای پرکاربرد
-
مشاهدهی راهنمای دستور
ls:man ls
-
مشاهدهی راهنمای دستور
passwd(دستور کاربری) و فایل/etc/passwd:man passwd # بخش ۱: دستور تغییر رمز عبور man 5 passwd # بخش ۵: فرمت فایل /etc/passwd
-
جستجوی عبارت در تمام صفحات man (با گزینه
-k):man -k password
این دستور تمام صفحاتی که کلمهی
passwordدر نام یا توضیح آنها آمده است را لیست میکند. معادل دستورaproposاست. -
جستجوی کلمهی کلیدی در توضیحات (با گزینه
-f):man -f ls
توضیح یک خطی دستور
lsرا نمایش میدهد. معادل دستورwhatisاست.
info
دستور info یک سیستم مستندات جایگزین و پیشرفتهتر برای man است که توسط پروژهی GNU توسعه داده شده است. صفحات info ساختار ابرمتنی (Hypertext) دارند و معمولاً برای ابزارهای GNU (مثل bash، gcc، emacs و coreutils) جامعتر از صفحات man هستند.
ساختار کلی:
info [command]
نحوهی کار با info
| کلید | عمل |
|---|---|
| Space | یک صفحه به جلو (به گره بعدی). |
| Del یا b | یک صفحه به عقب (به گره قبلی). |
| Tab | رفتن به لینک بعدی (هایپرلینک). |
| Enter | دنبال کردن لینک (ورود به بخش جدید). |
| p | رفتن به بخش قبلی در همان سطح. |
| n | رفتن به بخش بعدی در همان سطح. |
| u | رفتن به بخش بالاتر (یک سطح بالا). |
| l | رفتن به آخرین بخش بازدیدشده. |
| q | خروج از info. |
مثالها
-
مشاهدهی مستندات Bash:
info bashاین مستندات بسیار کاملتر از
man bashاست. -
مشاهدهی مستندات Coreutils (دستورات پایهی لینوکس):
info coreutils
نکته: همهی دستورات صفحهی
infoندارند. اگر برای یک دستور،infoاجرا شود و صفحهای وجود نداشته باشد، معمولاً بهmanهدایت میشوید.
help
دستور help یک راهنمای سریع و مختصر است که برای دستورات توکار (Built-in) خود شل طراحی شده است. این دستور با man یا info که برای دستورات خارجی (External) استفاده میشوند، تفاوت دارد.
ساختار کلی:
help [built-in_command]
مثالها
-
مشاهدهی راهنمای دستور توکار
cd:help cd
خروجی:
cd: cd [-L|[-P [-e]] [-@]] [dir] Change the shell working directory. ... -
مشاهدهی راهنمای دستور توکار
echo(در Bash):help echo
-
مشاهدهی لیست تمام دستورات توکار (با گزینه
-d):help -d
لیست کوتاهی از تمام توکارهای موجود را نمایش میدهد.