~2 min read • Updated Jul 18, 2025
در لینوکس، بررسی نحوهٔ اجرای دستورات توسط شل بسیار مهم است، مخصوصاً هنگام وجود چند نسخهٔ مشابه از یک فرمان. دو ابزار کاربردی برای این منظور type و which هستند که هر کدام بینشی متفاوت ارائه میدهند.
type – شناسایی نوع دستور
type یک دستور داخلی (builtin) در شل است که مشخص میکند یک فرمان بهصورت internal در خود شل تعریف شده، یک alias است یا یک فایل اجرایی واقعی در سیستم است.
نحوهٔ استفاده
type commandمثالها
| فرمان | خروجی |
|---|---|
type type | type is a shell builtin |
type ls | ls is aliased to ls --color=tty |
type cp | cp is /bin/cp |
نکات کلیدی
- Builtins: فرمانهای داخلی مانند
type،cd - Aliases: میانبرها یا دستورات سفارشیشده مانند
ls --color=tty - Executables: فایلهای اجرایی در مسیرهایی مانند
/bin/cp
which – تعیین مسیر فایل اجرایی
دستور which برای یافتن محل فایل اجرایی یک فرمان استفاده میشود. این ابزار زمانی کاربرد دارد که چند نسخه از یک دستور در سیستم نصب شده باشد.
نحوهٔ استفاده
which commandمثالها
| فرمان | خروجی |
|---|---|
which ls | /bin/ls |
which cd | خطا: cd یک builtin است، نه فایل اجرایی |
نکات کلیدی
- فقط برای فایلهای اجرایی کاربرد دارد، نه builtin یا alias
- مناسب برای تعیین دقیق مسیر فایل در محیطهایی با چند نصب متفاوت
مقایسه type و which
| ویژگی | type | which |
|---|---|---|
| شناسایی builtin، alias یا اجرایی بودن فرمان | ✔️ | ❌ |
| نمایش مسیر فایل اجرایی | ❌ | ✔️ |
| پشتیبانی از builtins و aliases | ✔️ | ❌ |
| کاربرد در عیبیابی رفتار فرمانها | ✔️ | ✔️ |
نتیجهگیری
دستورات type و which ابزارهای مفیدی برای شناخت رفتار فرمانها در لینوکس هستند. از type برای تعیین نوع فرمان (درونی، alias یا اجرایی) و از which برای یافتن مسیر دقیق فایل اجرایی استفاده کنید. این دو دستور بهویژه در محیطهای چندکاربره یا سروری بسیار کاربردیاند.
Written & researched by Dr. Shahin Siami