ساختار به صورت کلی

س برای کاربرانی که به محیط‌های رابط کاربری گرافیکی (GUI) عادت دارند که در آن دوبار کلیک کردن روی فایل‌ها (معمولاً) برنامه مربوط به فایل را راه‌اندازی می‌کند (به عنوان مثال با دوبار کلیک کردن روی یک سند Word، MS Office راه‌اندازی می‌شود)، یکی از سخت‌ترین برنامه‌ها. مفهوم این است که رابط خط فرمان لینوکس/یونیکس (CLI) به این روش کار نمی کند. به طور خاص، تایپ و وارد کردن نام یک فایل در خط فرمان در بیشتر موارد، خطای دستور یافت نشد را برمی‌گرداند. ساختار کلی خط فرمان لینوکس/یونیکس به این صورت است:

command [-flag(s)] [-option(s) [value]] [argument(s)]

مهمترین چیزی که باید به آن توجه داشت این است که خط فرمان معمولا با یک "فرمان" شروع می شود که یک فایل یا برنامه اجرایی است (هر فایلی با مجموعه بیت اجرایی).

گزینه ها و استدلال ها

گزینه‌ها تنظیماتی هستند که در برنامه فرمان (یا اسکریپت) تعبیه شده‌اند که رفتار پیش‌فرض برنامه را تغییر می‌دهند. برخی از دستورات را می توان بدون هیچ گزینه یا آرگومان استفاده کرد (مانند ls و pwd)، اما برخی از دستورات معمولاً به نوعی آرگومان نیاز دارند (کمتر و بیشتر).

در مثال‌های زیر، از دو دستور برای نشان دادن کاربردها و قراردادهای مختلف در گزینه‌ها و آرگومان‌های فرمان استفاده می‌کنیم.

رفتار پیش فرض head این است که 10 خط اول یک فایل ورودی یا جریان را مانند مثال زیر نمایش دهد:

head BDGP6_genes.gtf

head انتظار یک فایل ورودی  را دارد، بنابراین BDGP6_genes.gtf یک آرگومان مورد انتظار برنامه است، اما با هیچ گزینه ای مرتبط نیست.

گزینه های بلند و کوتاه

اگر صفحه man را برای head جستجو کنید، خواهید دید که در واقع -n نسخه کوتاه شده گزینه --lines است. شما می توانید این را با امتحان فرم طولانی، که باید خروجی یکسانی ارائه دهد، بررسی کنید:

head --lines 20 BDGP6_genes.gtf

گزینه‌ها معمولاً (اما نه همیشه) یک نسخه طولانی و کوتاه دارند، و طبق قرارداد، نسخه طولانی قبل از -- است، در حالی که نسخه کوتاه قبل از - است.

سوئیچ ها/پرچم ها

در دستور بالا -n یک گزینه است و "20" آرگومان ارائه شده برای این گزینه است. -n همیشه به یک آرگومان نیاز دارد، اگر از -n بدون ارائه آرگومان عدد صحیح استفاده کنید، دستور یک خطا گزارش می دهد.

برخی از گزینه ها به آرگومان نیاز ندارند، اما برخی از آنها را می توان بدون هیچ آرگومان استفاده کرد. از آنجایی که این نوع گزینه معمولاً بین دو نوع رفتار تغییر می کند، اغلب به آنها "سوئیچ" یا "پرچم" می گویند.

به‌طور پیش‌فرض، head فقط در صورتی نام فایل‌ها را چاپ می‌کند که چندین فایل به عنوان آرگومان ارائه شده باشند. اما می‌توانیم از گزینه -v/--verbose استفاده کنیم تا head را مجبور کنیم همیشه نام فایل ورودی را چاپ کند.

head -v BDGP6_genes.gtf
head --verbose BDGP6_genes.gtf

برخی از دستورات دارای گزینه هایی هستند که می توانند با یا بدون آرگومان عمل کنند، اساساً اگر هیچ آرگومانی ارائه نشود، یک مقدار پیش فرض در نظر گرفته می شود (به عنوان مثال sed -i).

ترکیب گزینه ها

با استفاده از فرم کوتاه گزینه ها، می توانیم چندین گزینه را با هم ترکیب کنیم. به عنوان مثال، دستور ls دارای سوئیچ های مختلفی است:

ls --all -l -S   # -S and -l have no long forms

که می توانیم به صورت زیر با هم ترکیب کنیم:

ls -laS

ما دو گزینه برای head دیده ایم: -n و -v. برای ترکیب آنها به شکل طولانی، تایپ می کنیم:

head --verbose --lines 20 BDGP6_genes.gtf

که می توان آن را کوتاه کرد:

head -vn 20 BDGP6_genes.gtf

اما اگر ترتیب v و n را تغییر دهید، دستور از کار خواهد افتاد. این به این دلیل است که گزینه ای که به آرگومان نیاز دارد باید آخرین باشد. بنابراین نمی توانید چندین گزینه را که نیاز به آرگومان دارند ترکیب کنید.

همچنین می توانید فاصله بین n و 20 را رد کنید:

head -vn20 BDGP6_genes.gtf

اما این فقط در فرم کوتاه کار می کند.

دستور های کوتاه و خاص

head شکل حتی کوتاه تری برای -n دارد. از آنجایی که رایج ترین گزینه برای head تغییر تعداد خطوط برای نمایش است، می تواند یک فرم حتی کوتاهتر را نیز بپذیرد:

head -20 BDGP6_genes.gtf

با این حال، این تنها در صورتی کار خواهد کرد که هیچ گزینه دیگری فراخوانی نشود. این یک فرم کوتاه استاندارد نیست واکثر برنامه های دیگر از آن پشتیبانی نمی کنند.

توسعه دهندگان
محمد مهدی سفیداری