ایجاد دستورات خودمان با alias
حالا برای اولین تجربهمان در برنامهنویسی! ما با استفاده از دستور alias یک دستور (اختصاصی) خودمان را ایجاد خواهیم کرد. اما قبل از اینکه شروع کنیم، لازم است از یک ترفند کوچک خط فرمان پرده برداریم. این امکان وجود دارد که از طریق جدا کردن هر دستور با یک سمی کلن (نقطه ویرگول)، بیش از یک دستور را در یک خط قرار داد. این (روش) به این صورت عمل میکند:
command1; command2; command3...
مثالی که استفاده خواهیم کرد اینجاست:
[me@linuxbox ~]$ cd /usr; ls; cd -
bin games include lib local sbin share src
/home/me
[me@linuxbox ~]$
همانطور که میبینیم، ما سه دستور را در یک خط ترکیب کردهایم. ابتدا دایرکتوری را به /usr تغییر میدهیم، سپس دایرکتوری را فهرست میکنیم و در نهایت (با استفاده از 'cd -') به دایرکتوری اصلی برمیگردیم تا در جایی که شروع کرده بودیم (کار را) به پایان برسانیم. حالا بیایید این دنباله را با استفاده از alias به یک دستور جدید تبدیل کنیم. اولین کاری که باید انجام دهیم اینست که برای دستور جدید خود نامی در نظر بگیریم. بیایید “test” را امتحان کنیم. پیش از انجام این کار، ایده خوبی است که بفهمیم آیا نام “test” در حال حاضر استفاده شده است. برای فهمیدن (این موضوع)، میتوانیم مجددا از دستور type استفاده کنیم:
[me@linuxbox ~]$ type test
test is a shell builtin
اوه! نام test در حال حاضر گرفته شده است. بیایید foo را امتحان کنیم:
[me@linuxbox ~]$ type foo
bash: type: foo: not found
عالی! “foo” گرفته نشده است. بنابراین بیایید نام مستعار خود را ایجاد کنیم:
[me@linuxbox ~]$ alias foo='cd /usr; ls; cd -'
به ساختار این دستور که اینجا نشان داده شده است توجه کنید:
alias name='string'
پس از دستور alias، به alias یک نام میدهیم که بلافاصله پس از آن (فاصله مجاز نیست) یک علامت مساوی قرار میگیرد، بلافاصله بعد از آن یک رشته نقل قول شده (مترجم: بین دو علامت نقل قول) شامل معنایی که باید به آن نام اختصاص داده شود، قرار میگیرد. پس از اینکه نام مستعارمان را تعریف کردیم، میتوانیم از آن در هر جایی که شل انتظار یک دستور را دارد استفاده کنیم. بیایید آن را امتحان کنیم:
[me@linuxbox ~]$ foo
bin games include lib local sbin share src
/home/me
[me@linuxbox ~]$
ما همچنین میتوانیم دوباره از دستور type برای دیدن نام مستعار خود استفاده کنیم:
[me@linuxbox ~]$ type foo
foo is aliased to `cd /usr; ls; cd -'
برای حذف یک نام مستعار، از دستور unalias به صورت زیر استفاده میشود:
[me@linuxbox ~]$ unalias foo
[me@linuxbox ~]$ type foo
bash: type: foo: not found
در حالی که ما به شکل هدفمند از نامگذاری نام مستعار خود با نام یک دستور موجود خودداری کردیم، انجام این کار غیرمتداول نیست. این کار اغلب برای اعمال یک آپشن مطلوب متداول برای هر فراخوانی یک دستور مرسوم انجام میشود. به عنوان مثال، پیشتر مشاهده کردیم چگونه دستور ls اغلب برای افزودن پشتیبانی از رنگ، نام مستعار میشود:
[me@linuxbox ~]$ type ls
ls is aliased to `ls --color=tty'
برای مشاهده همه نامهای مستعار تعریف شده در محیط، از دستور alias بدون آرگومان استفاده کنید. در اینجا برخی از نامهای مستعاری آمده که به صورت پیشفرض روی یک سیستم فدورا (Fedora) تعریف شده است. سعی کنید متوجه شوید همه آنها چه کاری انجام میدهند:
[me@linuxbox ~]$ alias
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
یک مشکل کوچک در تعریف نامهای مستعار در خط فرمان وجود دارد. آنها با پایان جلسه (session) شل ما ناپدید میشوند. در فصل 11، “محیط”، خواهیم دید چگونه نامهای مستعار خود را به فایلهایی اضافه کنیم که محیط را هر بار وارد سیستم میشویم دایر میکنند، اما فعلا از این واقعیت لذت ببرید که اولین قدم خود را، هرچند کوچک، به دنیای برنامهنویسی شل برداشتهایم!
جمعبندی
حالا که یاد گرفتیم چگونه مستندات مربوط به دستورات را پیدا کنیم، بروید و نگاهی بیندازید به مستندات مربوط به تمام دستوراتی که تاکنون با آنها روبرو شدهایم. آپشنهای اضافی موجود را مطالعه کنید و آنها را امتحان کنید!
مطالعه بیشتر
منابع آنلاین زیادی برای مستندات لینوکس و خط فرمان وجود دارد. در اینجا برخی از بهترینها آورده شده است:
- راهنمای مرجع بش (Bash Reference Manual)، یک راهنمای مرجع برای شل bash است. این (راهنما) هنوز یک کار مرجع است اما شامل مثالهایی است و خواندن آن از صفحه راهنمای bash آسانتر است.
http://www.gnu.org/software/bash/manual/bashref.html - سوالات پرتکرار بش (Bash FAQ)، شامل پاسخهایی به سوالات پرتکرار در مورد bash است. این فهرست، کاربران متوسط تا پیشرفته را هدف گرفته است، اما اطلاعات خوب زیادی را دربرمیگیرد.
http://mywiki.wooledge.org/BashFAQ - پروژه گنو (The GNU Project)، مستندات گستردهای را برای برنامههای خود ارائه میدهد که هسته اصلی تجربه خط فرمان لینوکس را شکل میدهند. میتوانید یک لیست کامل را اینجا ببینید:
http://www.gnu.org/manual/manual.html - ویکیپدیا مقاله جالبی در مورد صفحات راهنما دارد:
http://en.wikipedia.org/wiki/Man_page
متن بالا بخشی از ترجمه کتاب The Linux Command Line (به فارسی: خط فرمان لینوکس) نوشته William Shotts است که نسخه اصلی آن از طریق وبسایت رسمی کتاب (https://linuxcommand.org) قابل دسترسی است. (فهرست مطالب کتاب خط فرمان لینوکس).

