منظور از دستورات Internal و External در لینوکس چیست ؟

سلام خدمت دوستان و کاربران عزیز وب سایت توسینسو بویژه علاقه مندان به سیستم عامل لینوکس. در این مطلب میخواهیم درباره دستورات Internal و External در سیستم عامل لینوکس برای شما عزیزان توضیحاتی را ارائه بدهیم. دستورات داخلی یا Internal Commands در لینوکس و نیز سیستم عامل های خانواده Unix به دستوراتی گفته می شود که بصورت Built-in داخل Shell قرار دارند و به آنها معمولا Built-in Commands نیز می گویند. سرعت اجرای این دستورات به همان اندازه است که Shell به دنبال اجرای دستوراتی که داخل متغیر محیطی PATH تعریف شده اند می باشد. دستوراتی مثل cd ، fg ، alias ، echo ، export ، history و ... از جمله Internal Command ها می باشند. توجه کنید که برخی از Internal Command ها نیز برای اجرا شدن باید توسط Shell از طریق PATH ابتدا فراخوانده شوند.

دستورات خارجی یا External Commands به دستوراتی اطلاق می شود که داخل Shell بصورت Built-in تعریف نشده اند. این نوع دستورات برای اجرا شدن باید داخل متغیر محیطی PATH تعریف شوند. زمانی که این دستورات میخواهند اجرا شوند Shell باید به متغیر محیطی PATH مراجعه کند و مسیری که دستور مربوطه در آن قرار دارد را بخواند و دستور را اجرا کند که این خود یک Process جدید اجرا می کند. External Command ها معمولا در شاخه bin// و یا usr//bin// قرار دارند. دستوراتی مثل ls ، cat ، grep ، cp ، mv و ... از جمله دستورات External می باشند. برای اینکه بدانید یک دستور Internal هست یا External کافیست تا دستور type را به همراه نام دستور در مقابل آن تایپ کنید. برای مثال :
# type cat
cat is /bin/cat
همانطور که مشاهده می کنید خروجی دستور type cat به ما می گوید که دستور cat در مسیر bin//cat// واقع شده است. که نشان دهنده این است که این دستور External است. یا برای مثالی دیگر :
# type history
history is a shell builtin
همانطور که در خروجی دستور type history مشاهده می کنید پیغام history is a shell builtin به ما نشان داده می شود که بیانگر این است که دستور history یک دستور Internal یا Shell Built-in Command است. حتی خود دستور type نیز Internal Command هست. به یک نکته مهم توجه کنید که برخی از دستورات مانند pwd که در خروجی مسیر جاری که در آن هستید را نشان می دهد هم می تواند یک Internal Command و هم External Command می باشد. برای اینکه از درستی این مورد مطمئن شوید میتوانید با اجرای دستور type و استفاده از سوئیچ a به شکل زیر این مورد را متوجه شوید :
# type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
همانطور که در خروجی دستور فوق مشاهده کردید دستور pwd هم یک دستور Internal و هم یک دستور External می باشد. نکته آخر این هست که زمانیکه External Command علاوه بر Internal Command روی سیستم نصب می شود Internal Command در اجرا شدن بر External Command تقدم و اولویت دارد. دلیل آن هم کاملا واضح است چون Internal Command هم راحت تر و هم می توان گفت به صورت نامحسوسی با سرعت بیشتر اجرا می شود. برای اجرا کردن External Command ای که Internal Command آن نیز در سیستم وجود دارد بایستی مسیر دقیق یا Exact Path آن دستور را در Shell مشخص کنید. امیدوارم مورد توجه شما قرار گرفته باشد.


نویسنده : امیرحسین کریم پور
منبع : جزیره لینوکس و سیستم های متن باز وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی میباشد
#منظور_از_external_commands_در_لینوکس_چیست #external_commands_در_لینوکس #تفاوت_internal_commands_و_external_commands_در_لینوکس #منظور_از_internal_commands_در_لینوکس_چیست #internal_commands_در_لینوکس
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره بهاره می تونی امروز ارزونتر از فردا خرید کنی ....