هنگامی که یک پنجره ترمینال را در لینوکس باز می کنیم و سپس شروع به نوشتن یک سری از دستورات می نماییم، شاید هرگز به این فکر نکنیم که کدام یک از قطعات نرم افزاری درون سیستم عامل به دستورات ما واکنش نشان می دهند و به آن ها رسیدگی می کنند. ما معمولا تنها دستورات را تایپ می کنیم، نتیجه را دریافت می کنیم و سپس به سراغ دستورات بعدی می رویم.
اطلاع داشتن از این که چگونه دستورات ما به نتیجه می رسند، ما را به درک بهتری از نحوه ساخت لینوکس و دیگر سیستم عامل های شبیه به یونیکس می رساند.
تمام دستورالعمل هایی که در خط فرمان وارد می کنیم در یکی از دسته بندی های زیر قرار دارند:
- Alias (نام مستعار): یک دستور تعریف شده توسط کاربر یا سیستم است که معمولا به جای یک توالی طولانی و یا پیچیده از دستورات، مورد استفاده قرار می گیرد.
- فایل دیسک: یک فایل قابل اجرای باینری مانند usr/bin/top/ است.
- تابع shell: یک تابع تعریف شده توسط کاربر یا سیستم است که می تواند در خط فرمان استفاده و یا در اسکریپت ها مشمول شود.
- دستور پیش ساخته یا built-in: دستوری است که توسط خود شل بررسی می شود مانند pwd.
- کلمه رزروشده: کلمه ای که توسط shell رزرو شده است مانند if و elif. این کلمات همچنین کلمه کلیدی یا Keyword نام دارند.
دستور type در لینوکس به ما می گوید که هر دستور لینوکس متعلق به کدام دسته بندی است. در ادامه مطلب برای درک بهتر خروجی دستورات با آموزش استفاده از دستور type در لینوکس با ما همراه باشید.
دستور type
در ادامه با بیان یک مثال به معرفی دستورات مرتبط به هر دسته بندی می پردازیم:
type date |
دستور date یک فایل دیسک قابل اجراست.
type ls |
دستور ls یک نام مستعار برای دستور اصلی color=auto– است.
type lowdown |
دستور lowdown یک تابع تعریف شده توسط کاربر است که بر روی کامپیوتری که با آن این دستورات را اجرا می کنیم، تنظیم شده است.
type pwd |
دستور pwd، یک دستور پیش ساخته شده توسط Bash shell (مفسر دستورات لینوکس) است.
type elif |
دستور elif یک کلمه رزروشده توسط Bash shell است.
استفاده از چند دستور
شما می توانید هم زمان به type چند دستور برای شناسایی بدهید.
type date top ls |
دستور type -t
هیچ یک از گزینه هایی که type قبول خواهد کرد اسم ندارند، اما ما برای به خاطرسپردن بهتر آن ها سعی می کنیم هریک را به کلمه ای مرتبط نسبت دهیم. بیایید فرض کنیم که گزینه t- کوتاه شده terse به معنای مختصر است. با استفاده از این گزینه در کنار type، شما به طور مختصر تنها دسته بندی هر دستور را مشاهده خواهید کرد.
type -t date |
type -t pwd |
type -t lowdown |
دستور type -a
اگر a- را به معنای “all” فرض کنیم، این دستور تمام مسیرهایی که دستور در داخل آن ها قرار دارد را نشان می دهد. توجه داشته باشید که اگر از دستور p- استفاده کنید، این گزینه کار نخواهد کرد.
برای مثال اگر شما یک نام مستعار یکسان با یک دستور اصلی داشته باشید، می توانید اطلاعات هر دوی آن ها را مشاهده کنید.
type -a ls |
دستور type -f
دستور f- سیستم را وادار می سازد تا توابع تعریف شده توسط کاربر و سیستم را جستجو نکند. می توان آن را خلاصه function search off دانست. دقت داشته باشید که اگر دستور یک تابع باشد، type گزارش می دهد که دستور نمی تواند یافت شود (command can’t be found).
type -f top |
type -f lowdown |
دستور type -P
اگر از این دستور استفاده کنید، type فقط دایرکتوری های PATH$ را جستجو خواهد کرد. بنابراین می توانیم این گزینه را “path” بنامیم. دقت داشته باشید که باید حتما از حرف P بزرگ استفاده کنید.
type -P date chmod adduser |
دستور type -p
زمان استفاده از این گزینه، type تنها در صورتی که دستور یک فایل هارددیسک باشد، پاسخ خواهد داد. دقت کنید که باید حتما از حرف p کوچک استفاده کنید.
type -p mount |
type -p ls |
type -p -a ls |
در مثال دوم، تایپ برای ls هیچ نتیجه ای را نشان نخواهد داد، زیرا ls یک نام مستعار است و نه یک فایل دیسک.
اما اگر گزینه a- را پیش از ls بیاوریم، type به دنبال تمامی نمونه های دستور ls خواهد گشت و فایل دیسک اصلی که نام مستعار ls از آن استفاده می کند را نشان خواهد داد.
همان طور که مشاهده نمودید هرآن چه که در پنجره ترمینال نوشته می شود دستور یا کامند نیست. در واقع، دستورات در سیستم عامل لینوکس به روش های مختلفی اجرا می شوند؛ بنابراین استفاده از دستور type به ما در یافتن نوع دستورات کمک خواهد کرد.