با استفاده از دستور type میتوانید متوجه شوید که یک دستور در کدامیک از دستهبندیهای فایل دیسک، تابع shell، دستور از پیشساخته و یا کلمه رزروشده قرار دارد. شما میتوانید از دستور type در لینوکس برای درک نحوه اجرای دستورات و فهم بهتر سیستمعامل خود کمک بگیرید.
هنگامیکه یک پنجره ترمینال را در لینوکس باز میکنیم و سپس شروع به نوشتن یک سری از دستورات مینماییم، شاید هرگز به این فکر نکنیم که کدام یک از قطعات نرمافزاری درون سیستمعامل به دستورات ما واکنش نشان میدهند و به آنها رسیدگی میکنند. ما معمولا تنها دستورات را تایپ میکنیم، نتیجه را دریافت میکنیم و سپس بهسراغ دستورات بعدی میرویم.
اطلاع داشتن از اینکه چگونه دستورات ما به نتیجه میرسند، ما را به درک بهتری از نحوه ساخت لینوکس و دیگر سیستمعاملهای شبیهبه یونیکس میرساند.
تمام دستورالعملهایی که در خط فرمان وارد میکنیم در یکی از دستهبندیهای زیر قرار دارند:
- 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 به ما در یافتن نوع دستورات کمک خواهد کرد.
اینارو تو درس اختیاری با یه استاد بداخلاق پاس کردیم. یادش بخیر…نوستالژی شد.