در لینوکس، بررسی نحوهٔ اجرای دستورات توسط شل بسیار مهم است، مخصوصاً هنگام وجود چند نسخهٔ مشابه از یک فرمان. دو ابزار کاربردی برای این منظور type و which هستند که هر کدام بینشی متفاوت ارائه میدهند.
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 |
type، cdls --color=tty/bin/cpدستور which برای یافتن محل فایل اجرایی یک فرمان استفاده میشود. این ابزار زمانی کاربرد دارد که چند نسخه از یک دستور در سیستم نصب شده باشد.
which command| فرمان | خروجی |
|---|---|
which ls | /bin/ls |
which cd | خطا: cd یک builtin است، نه فایل اجرایی |
| ویژگی | type | which |
|---|---|---|
| شناسایی builtin، alias یا اجرایی بودن فرمان | ✔️ | ❌ |
| نمایش مسیر فایل اجرایی | ❌ | ✔️ |
| پشتیبانی از builtins و aliases | ✔️ | ❌ |
| کاربرد در عیبیابی رفتار فرمانها | ✔️ | ✔️ |
دستورات type و which ابزارهای مفیدی برای شناخت رفتار فرمانها در لینوکس هستند. از type برای تعیین نوع فرمان (درونی، alias یا اجرایی) و از which برای یافتن مسیر دقیق فایل اجرایی استفاده کنید. این دو دستور بهویژه در محیطهای چندکاربره یا سروری بسیار کاربردیاند.