~2 min read • Updated Jul 18, 2025

در لینوکس، بررسی نحوهٔ اجرای دستورات توسط شل بسیار مهم است، مخصوصاً هنگام وجود چند نسخهٔ مشابه از یک فرمان. دو ابزار کاربردی برای این منظور type و which هستند که هر کدام بینشی متفاوت ارائه می‌دهند.


type – شناسایی نوع دستور


type یک دستور داخلی (builtin) در شل است که مشخص می‌کند یک فرمان به‌صورت internal در خود شل تعریف شده، یک alias است یا یک فایل اجرایی واقعی در سیستم است.


نحوهٔ استفاده


type command

مثال‌ها


فرمانخروجی
type typetype is a shell builtin
type lsls is aliased to ls --color=tty
type cpcp 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


ویژگیtypewhich
شناسایی builtin، alias یا اجرایی بودن فرمان✔️
نمایش مسیر فایل اجرایی✔️
پشتیبانی از builtins و aliases✔️
کاربرد در عیب‌یابی رفتار فرمان‌ها✔️✔️

نتیجه‌گیری


دستورات type و which ابزارهای مفیدی برای شناخت رفتار فرمان‌ها در لینوکس هستند. از type برای تعیین نوع فرمان (درونی، alias یا اجرایی) و از which برای یافتن مسیر دقیق فایل اجرایی استفاده کنید. این دو دستور به‌ویژه در محیط‌های چندکاربره یا سروری بسیار کاربردی‌اند.


Written & researched by Dr. Shahin Siami