دستورات which، whereis، و whatis ممکن است شبیه به یک تازه وارد لینوکس به نظر برسند، اما آنها بیشتر از آنچه فکر می کنید متفاوت هستند.
ممکن است چندین بار از دستورات which، whereis و whatis در لینوکس استفاده کرده باشید. هر سه دستور به شما کمک می کنند اطلاعاتی در مورد سایر دستورات لینوکس پیدا کنید. این دستورات شبیه به هم هستند، اما تفاوت هایی با هم دارند.
در اینجا مقایسه دقیقی از دستورات which، whereis، و whatis در لینوکس وجود دارد.
کدام فرمان
برخی از دستورات دارای چندین فایل اجرایی باینری هستند که در دایرکتوری های مختلف قرار دارند. وقتی دستوری را اجرا می کنید، پوسته فایل های اجرایی آن را در دایرکتوری های مشخص شده در متغیر محیطی PATH جستجو می کند.
برای اینکه بفهمید چه دایرکتوری هایی در متغیر محیطی PATH وجود دارد، ترمینال را در لینوکس باز کنید و دستور زیر را اجرا کنید:
echo $PATH
همچنین می توانید به صورت دستی یک دایرکتوری را به متغیر محیطی PATH خود اضافه کنید.
وقتی پوسته اولین مسیر اجرایی را پیدا کرد، آن را اجرا می کند. با استفاده از دستور what در لینوکس می توانید مسیر آن فایل اجرایی را شناسایی کنید.
این در شرایطی مفید است که شما دو نسخه متفاوت از یک برنامه یا دو برنامه متفاوت با نام یکسان روی سیستم خود نصب کرده باشید. با استفاده از دستور which، می توانید پیدا کنید که کدام یک ابتدا اجرا می شود.
در اینجا سینتکس این دستور آمده است:
which [option] [command]
به عنوان مثال، برای بررسی مسیر واقعی دستور tar، باید تایپ کنید:
which tar
این دستور اولین مسیر اجرایی یعنی /usr/bin یافت شده برای دستور tar در PATH را نمایش می دهد. این بدان معناست که هر زمان که دستور tar را اجرا می کنید، پوسته فایل باینری واقع در پوشه /usr/bin را اجرا می کند.
برای نمایش تمام مسیرهای اجرایی موجود برای یک دستور، از دستور which با گزینه -a استفاده کنید:
which -a tar
همچنین میتوانید مسیرهای اجرایی را برای چندین دستور به صورت همزمان نمایش دهید:
which [command1] [command2] [command3]
فرمان Whereis
دستور whereis مسیر فایل های صفحه باینری، منبع و دستی مرتبط با دستور مشخص شده را نمایش می دهد. برخلاف دستور کدام، نه تنها فایل اجرایی را در $PATH بلکه $MANPATH و سایر مکان های از پیش تعریف شده را نیز جستجو می کند.
بدون هیچ گزینه خط فرمان، دستور Whereis فایل های صفحه باینری، منبع و دستی را برای یک دستور نمایش می دهد:
whereis tar
برای نمایش فقط مسیر فایل باینری، از گزینه -b استفاده کنید:
whereis -b tar
برای نمایش فقط فایل منبع، از پرچم -s استفاده کنید:
whereis -s tar
برای نمایش فقط صفحه دستی، از گزینه -m استفاده کنید:
whereis -m tar
فرمان whatis
دستور whatis یک توضیح یک خطی از یک دستور لینوکس ارائه می دهد. این اطلاعات را از صفحه man فرمان پیدا می کند.
به عنوان مثال، برای پیدا کردن آنچه که دستور tar انجام می دهد، اجرا کنید:
whatis tar
همچنین می توانید اطلاعاتی در مورد چند دستور به طور همزمان با استفاده از:
whatis ls cp mkdir cat head
کدام در مقابل Whereis در مقابل whatis: تفاوت ها چیست؟
اگر به دنبال مسیر باینری هستید که هنگام اجرای دستور در پوسته اجرا می شود، از دستور which استفاده کنید. در حالی که اگر به دنبال صفحه منبع، باینری و man برای دستور هستید، از Whereis استفاده کنید.
دستور Whereis تمام فایلهای اجرایی باینری را فهرست میکند، در حالی که دستور which تنها اولین فایل اجرایی را نشان میدهد که با تایپ دستور مذکور در پوسته اجرا میشود.
دستور which جستجوها را در متغیر PATH انجام می دهد در حالی که دستور Whereis دایرکتوری های استاندارد لینوکس از جمله $PATH و $MANPATH را جستجو می کند.
در نهایت، دستور whatis به سادگی شرح یک خطی از یک دستور را نمایش می دهد.
یافتن اطلاعات در مورد دستورات لینوکس
دستورهای which، whereis و whatis به شما کمک میکنند اطلاعاتی در مورد سایر دستورات لینوکس پیدا کنید، مانند مسیر کامل فایلهای اجرایی، باینری، منبع، صفحات دستی و عملکرد یک دستور.
در کنار whatis، می توانید از دستورات دیگری مانند apropos، man، info و help برای دریافت اطلاعات دقیق و درک بهتر دستورات لینوکس و عملکرد آنها استفاده کنید.