منبع اصلی نوشتار زیر در این لینک قرار دارد

چگونه با Bash شاد کام باشیم (۱)

یا completion در Bash

اصولا webmaster یا sysadminهای لینوکسی روزانه سر و کار زیادی با shell دارند. یکی از shellهای پرکاربرد و محبوب و نسبتا کامل برای خاندان یونیکس bash هست. bash مخفف born again shell یا shell خیلی باحال میشه! \':D\'
اطلاعات بیشتر راجع به bash اینجا هست: http://en.wikipedia.org/wiki/Bash

کار کردن با شل قلق ها و ترفندها و به قولی short handهای زیادی داره، که اگر بدونیم خیلی شیرین و لذت بخش و سریع خواهد بود! اغلب علت اینکه تازه کارهای بی تجربه از شل و ترمینال و … بدشون میاد (یا حتی میترسند) وارد نبود به این ریزه کاریها و نکته هاست.

یکی از نکات کنکوری کار کردن با اکثر ترمینال ها استفاده از قابلیت completion هست. این قابلیت کما بیش توی اکثر محیطهای متنی دیده میشه… حتی cmd ویندوز هم داره .. ولی خیلی ناقص و فقط در حد شاخه‌ها و اسم فایلها! این قابلیت برای تکمیل عبارات و کلمات مربوط به دستورها یا نام شاخه ها عموما به کار میره (میتونه فراتر از اینها هم باشه!)
کلیدی که عموما کار کامل کردن رو انجام میده TAB هست. مثلا شما فایل هایی به این شکل در یک شاخه دارید:

.
..
linux-2.0-5.2.687.tar.gz
linux-3.0-5.2.687.tar.gz
linux-2.1-5.2.687.tar.gz
linux-2.5-5.2.687.tar.gz
linux-4.0-5.2.687.tar.gz
ali.tar.gz

حالا مثلا میخواید با دستور cp یکی از اینها (فرضا linux-2.5-5.2.687.tar.gz) رو کپی کنید، به این شکل میتونید از completion استفاده کنید:

cp l(TAB)
که میشه
cp linux-


cp linux-2(TAB)
که میشه
cp linux-2.


cp linux-2.5(TAB)
که اینبار کامل میشه:
cp linux-2.5-5.2.687.tar.gz

مرحله اول ما دستور cp رو تایپ کردیم و بعد از حرف “L” کلید TAB رو یکبار زدیم، bash چک میکنه و میبینه توی این شاخه 5 تا فایل هست که با “L” شروع میشند که وجه اشتراک همشون -linux هست. پس خودش تا کاراکتر “-” که بین همه L دارها مشترکه پیش میره. بعد که ما عدد 2 رو هم وارد کردیم چک کرد و دید 3 تا گزینه مونده و اشتراکشون “.” هست. اینهم کامل کرد. وقتی ما عدد 5 رو وارد کردیم دیگه مورد مشابهی که با linux-2.5 شروع بشه وجود نداشت.. در نتیجه کل نام فایل رو برامون آورد. به این میگند completion!
حالا اگر بخواید فایل ali.tar.gz رو انتخاب کنید کافیه حرف a رو تایپ کنید و TAB رو بزنید! اسم فایل کامل میشه! چون دیگه هیچ فایلی با a شروع نشده.

حالا این روال برای دستورات هم وجود داره. میتونید کامندهای طولانی رو هم اینطوری کوتاه کنید. مثلا برای دستور traceroute (مثلا) کافیه tra و TAB و بعد ro و TAB رو بزنید… کامل میشه! برای دیدن لیست فایلها یا دستورات که با عبارت وارد شده شما شروع میشند باید دوبار TAB رو بزنید.

استفاده از همین تکنیک کوچیک توی کارهای روزانه و خصوصا برای کار در شاخه های مختلف با اسمهای نسبتا طولانی خیلی دستمون رو باز میکنه.

این دو مقاله در همین مورد هست:
http://www.debian-administration.org/articles/316
http://www.debian-administration.org/articles/317

توی مقاله دوم میتویند ببینید که این قابلیت چقدر انعطاف پذیره و میتونید برای خودتون قوانین و توابع completion دلخواه داشته باشید!

پ.ن: تیتر مطلب از نشریات زرد الهام گرفته شده، جدی نگیرید! \';)\'



برچسب ها : ,