نوشته شده توسط فرشید نوتاش حقیقت.
این آموزش فرمانهای type، which، man، apropos، info، whatis و alias را شامل میشود.
یک فرمان میتواند چهار چیز باشد:
- یک برنامه اجرایی مانند فایلهای موجود در /usr/bin که در این دسته میتوان به برنامههایی که قابلیت کامپایل دارند از قبیل برنامههای نوشته شده در C و C++ یا برنامههای نوشته شده در زبانهای اسکریپتنویسی شامل Shell، Perl، Python، Ruby و نظایر آن اشاره داشت.
- فرمان تولید شده توسط خود پوسته (Shell). Bash از تعدادی از فرمانها پشتیبانی میکند که فرمانهای درونساخت پوسته (shell builtins) نامیده میشوند. بهعنوان مثال فرمان cd یک فرمان shell builtins نامیده میشود.
- یک تابع پوسته (shell function). توابع پوسته شامل اسکریپتهای پوسته بوده که در محیط قرار گرفتهاند. پیکربندی محیط و نوشتن توابع پوسته در آموزشهای بعدی تحت پوشش قرار خواهند گرفت.
- یک نام مستعار (alias). alias فرمانی است که خودمان به کمک دیگر فرمانها میتوانیم تعریف کنیم.
شناسایی فرمانها
در ابتدا میبایست بدانید که چه نوع از فرمانها استفاده میشود و لینوکس چند راه برای پی بردن به آن ارائه میدهد.
روش اول، فرمان type که نوع فرمان را نمایش میدهد.
فرمان type یک فرمان shell builtin بوده که نوع فرمان را با توجه به نام فرمان نشان میدهد که به شکل زیر به کار گرفته میشود:
type command
که به جای command میبایست نام فرمانی را که میخواهید بررسی شود قرار دهید. در ادامه چندین مثال از فرمان type آورده شده است:
روش دوم، فرمان which که محل اجرای فرمان را مشخص میکند.
گاهی اوقات چندین نسخه از برنامه اجرایی بر روی یک سیستم نصب میشود. به منظور تعیین محل دقیق یک فرمان اجرایی، فرمان which کاربرد دارد که بدین صورت استفاده میشود:
فرمان which فقط مختص برنامههای اجرایی است نه builtin و یا نام مستعاری که برای برنامههای اجرایی است. هنگامی که ما سعی میکنیم از یک فرمان builtin به عنوان مثال، فرمان cd استفاده کنیم هیچ پاسخی دریافت نکرده و یا با پیغام خطا مواجه خواهیم شد:
پیغام فوق بهطور فانتزی میگوید: «فرمان پیدا نشد! (command not found)»
دریافت مستندات فرمانهای لینوکس با کمک فرمان help
بش (bash) دارای یک مرکز درونی کمک برای فرمانهای shell builtin میباشد. برای استفاده از آن help را به همراه نام فرمان مورد نظر تایپ نموده و اجرا نمایید. برای مثال:
آیتمهایی که درون براکت هستند، آیتمهایی اختیاری هستند. علامت | (خط عمودی) نیز نشاندهنده آیتمهای اختصاصی و انحصاری است.
فرمان –help نمایش اطلاعات مفید فرمان
بسیاری از برنامههای اجرایی از فرمان –help پشتیبانی میکنند که توضیح نحو (syntax) و گزینههای (options) پشتیبانی شده یک فرمان را نشان میدهد. بهعنوان مثال:
نمایش صفحه راهنمای برنامههای لینوکس به کمک فرمان man
اکثر برنامههای اجرایی که برای استفاده از خط فرمان در نظر گرفته شده مستندات رسمی به نام man page ارائه میدهند. شکل اجرای این فرمان بهصورت زیر است:
man program
کافی است به جای program فرمان مورد نظر را برای مشاهده تایپ نمایید.
Man pageها تا حدودی در فرمت متفاوت هستند، اما بهطور معمول شامل یک عنوان، خلاصهای از نحو (syntax) فرمان، شرحی از هدف فرمان و فهرست یا توضیحاتی از گزینههای فرمان میباشند.
با این حال man pageها معمولاً مثالی را شامل نمیشوند و به عنوان یک مرجع، نه یک آموزش در نظر گرفته میشوند.
راهنمایی که فرمان man نمایش میدهد به بخشهایی تقسیم میشود و فقط فرمانهای کاربر را پشتیبانی نمیکند بلکه فرمانهای مدیریت سیستمی، رابطهای کاربری برنامه، فرمتهای فایل و نظایر آن را پشتیبانی میکند. جدول زیر طرح کلی صفحات manual را شرح میدهد:
گاهی اوقات نیاز داریم تا به یک بخش از صفحه manual نگاه کنیم تا چیزی که دنبال آن هستیم را پیدا کنیم. اگر که شماره بخش مورد نظر را در فرمان تعیین نکنیم، همیشه اولین نمونه منطبق را دریافت خواهیم کرد که به احتمال زیاد در بخش ۱ باشد. برای تخصیص شماره بخش به فرمان، به شکل زیر عمل میکنیم:
man section search_term
که در اینجا search_term همان مورد جستجوی ماست. به عنوان مثال:
با اجرای صفحه راهنمایی را خواهیم دید که فرمت فایل /etc/passwd را شرح میدهد.
نمایش فرمانهای مناسب با کمک فرمان apropos
گاهی اوقات نیاز داریم که لیست صفحات manual را برای یک مورد خاص جستجو نماییم. در ادامه مثالی از جستجوی صفحات راهنما را برای floppy آورده شده است:
فیلد اول در هر خط خروجی نام صفحه راهنماست و فیلد دوم نشاندهنده بخش مورد نظر میباشد. به یاد داشته باشید که گزینه –k با فرمان man دقیقاً مانند عملکرد apropos عمل خواهد کرد.
نمایش توصیفی مختصر از یک فرمان با کمک فرمان whatis
فرمان whatis نام و شرحی یک خطی از یک صفحه راهنما را مطابق با یک کلمه مشخص، نمایش میدهد.
نمایش اطلاعات ورودی یک برنامه با کمک فرمان info
پروژه GNU یک جایگزین برای صفحات man با نام info page ارائه نموده است. صفحات اطلاعات در برنامهای با نام info نمایش داده میشود. صفحات info مانند صفحات وب دارای لینکهایی هستند.
برنامه info فایلهای صفحات info را میخواند و در یک ساختار درختی در nodeهای جداگانه نشان میدهد. هر نود شامل یک عنوان جداگانه است. فایلهای info شامل لینکهایی هستند که شما را به nodeهای دیگر هدایت میکند. لینکها از طریق علامت * (ستاره در اولشان) شناسایی شده و با قرار دادن نشانگر بر روی آنها و فشار دادن کلید Enter اجرا میشوند. برای دریافت اطلاعات اطلاعات میتوانید info را به دنبال نام برنامه تایپ کنید، به عنوان مثال:
جدول زیر فرمانهایی که به منظور کنترل صفحه هنگام خواندن صفحات info استفاده میشود را نشان میدهد:
ایجاد فرمانها به کمک فرمان alias
پیش از آغاز نیاز است تا به یکی از ترفندهای خط فرمان بپردازیم. ما میتوانی بیش از یک فرمان را در یک خط از خط فرمان قرار دهیم. این کار با کمک علامت سمیکالن قابل اجراست به صورت زیر:
command1; command2; command3..
به عنوان مثال:
همانطور که مشاهده میشود سه فرمان را در یک خط قرار دادهایم. ابتدا دایرکتوری را به مسیر /usr تغییر دادهایم، سپس لیست محتویات دایرکتوری را نمایش دادهایم و در نهایت با کمک فرمان cd به دایرکتوری اصلی بازگشتیم.
اولین چیزی که بایستی برای دستور خود تصور کنیم یک نام برای فرمان جدید است. چون این فقط یک آزمایش است نام test را انتخاب مینماییم. البته بهتر است تست کنیم که کسی قبلاً از این اسم استفاده نکرده است. با فرمان type میتوان به این مطلوب رسید:
مشاهده میشود که این نام قبلاً انتخاب و استفاده شده است. حال foo را آزمایش میکنیم:
خوشبختانه foo در بین فهرست فرمانهای لینوکس موجود نیست. در ادامه با کمک فرمان alias فرمان جدید را ایجاد میکنیم:
ساختار این فرمان بدین شکل است:
alias name='string'
پس از فرمان alias نامی را برای فرمان جدید تایپ کرده و بدون هیچ فاصلهای با قرار داد یک علامت مساوی دو علامت کوتیشن را قرار میدهیم و درون آن رشتهای را که میخواهیم اجرا شود را قرار میدهیم. پس از این کار، فرمان جدید همواره قابل احراست.
میتوانیم فرمان foo را با کمک فرمان type بررسی کنیم:
برای حذف آن نیز میتوان از فرمان unalias کمک گرفت:
در تعریف فرمانها با کمک alias مشکلی وجود دارد بهطوریکه با بستن ترمینال همه چیز پاک میشود! در درسهای بعدی خواهید آموخت که چگونه فرمانهای alias خود را در قالب فایلهایی به محیط اضافه کنید تا هر زمان که وارد سیستم میشویم این فرمانها بهصورت خودکار تعریف شوند.
منبع: کتاب The Linux Command Line نوشته William E. Shotts
نوشته آموزش خط فرمان: قسمت ششم، کار کردن با فرمانها اولین بار در لینوکس سیزن پدیدار شد.