در لینوکس، بررسی نحوهٔ اجرای دستورات توسط شل بسیار مهم است، مخصوصاً هنگام وجود چند نسخهٔ مشابه از یک فرمان. دو ابزار کاربردی برای این منظور 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
، cd
ls --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
برای یافتن مسیر دقیق فایل اجرایی استفاده کنید. این دو دستور بهویژه در محیطهای چندکاربره یا سروری بسیار کاربردیاند.