TAHA
04-23-2010, 10:20 PM
دستور alias اين امكان را به كاربران لينوكس میدهد كه برای يك دستور، يك نام جديد تعريف كنند. انجام اين كار باعث نامعتبر شدن نام اوليه اين دستور نمیشود و هر دو نام میتوانند مورد استفاده قرار گيرند. به عبارت ديگر اين دو (يا چند) نام را میتوان مترادفهايی برای يكديگر در نظر گرفت. مثالی از نحوة استفاده از اين دستور به شكل زير است كه در آن نام جديد list برای دستور ls تخصيص میيابد.
$ alias list=ls
پس از اجرای اين دستور، هرگاه دستور جديد list اجرا شود، دقيقا همان كاری را انجام میدهد كه دستور ls انجام میدهد.
اما كاربرد اصلی اين دستور زمانی است كه بخواهيم برای يك حالت خاص از يك دستور موجود يك نام جديد و كوتاه اختصاص دهيم. مثال زير را در نظر بگيريد:
$ alias sizes='ls –s'
در اينجا دستور ls به همراه گزينه –s نام جديد sizes را به خود گرفته است. به اين ترتيب پس از اين به جای اجرای دستور ls –s (كه برای نشان دادن ليست فايلها به همراه اندازة هر فايل استفاده میشود)، كاربر میتواند از دستور جديد sizes استفاده كند. اين ويژگی به خصوص زمانی كه برخی دستورات طولانی استفادة زيادی داشته باشند، بسيار مفيد خواهد بود.
همانطور كه ديده میشود، برای لحاظ كردن گزينههای يك دستور بايد كل آن دستور را در داخل علامت نقل قول تكی (single quote) قرار داد و نتيجه را پس از علامت مساوی در دستور alias استفاده كرد.
نكتهای كه بايد مورد توجه قرار گيرد اين است كه اين تعريف تنها تا زمانی معتبر خواهد بود كه كاربر logout نكرده باشد. پس از logout و login دوباره، كاربر بايد تعاريف خود را از اول انجام دهد تا قابل استفاده باشند. برای رفع اين مشكل میتوان تعاريف را در فايل .bash_profile يا ساير فايلهای مشابه قرار داد.
نكته قابل توجه ديگر اين است كه به نام جديدی كه برای يك دستور تعريف شده است، پارامتر نيز میتوان ارسال كرد. به طور مثال در مورد دستور sizes كه در بالا تعريف شد، میتوان اين دستور را به شكل زير نيز استفاده كرد:
$ sizes *.c
اين دستور معادل دستور ls –s *.c خواهد بود و ليست تمامی فايلهای با پسوند .c را به همراه اندازة هر فايل نمايش میدهد.
حالت ديگری كه میتوان از دستور alias استفاده كرد اين است كه نام جديدی كه تعريف میشود، با نام يكی از دستورات يا برنامههای موجود يكسان باشد. مثال زير را در نظر بگيريد:
$ alias rm='rm –f'
همانطور كه در مثال ديده میشود، دستور rm –f (كه منجر به حذف فايلها بدون گرفتن تاييد كاربر میشود) به نام rm معرفی شده است. به اين ترتيب از اين پس هرگاه دستور rm اجرا شود، سيستم دستور rm –f را اجرا خواهد كرد. در اين حالت اجرای دستور rm به شكل اصلی آن تا زمانی كه اين تعريف تغيير نكرده است ممكن نخواهد بود.
برای مشاهده ليست aliasهای تعريف شده در سيستم، بايد دستور alias را بدون هيچ پارامتری اجرا كرد. به طور مثال نتيجة اجرای اين دستور روی يك لينوكس RedHat 7.2 به اين شكل است:
$ alias
alias l.='ls -d .[a-zA-Z]* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
همانطور كه میبينيم، اين سيستم در هنگام نصب برخی دستورات را برای راحتی كاربران تعريف كرده است. به عنوان مثال دستور ls با پارامتر –color=tty اجرا میشود تا يك خروجی رنگی را برای كاربران نمايش دهد.
نكتة آخر در مورد اين دستور اين است كه برای حذف يك alias از تعاريف موجود، میتوان از دستور unalias استفاده كرد.
$ unalias l
$ alias list=ls
پس از اجرای اين دستور، هرگاه دستور جديد list اجرا شود، دقيقا همان كاری را انجام میدهد كه دستور ls انجام میدهد.
اما كاربرد اصلی اين دستور زمانی است كه بخواهيم برای يك حالت خاص از يك دستور موجود يك نام جديد و كوتاه اختصاص دهيم. مثال زير را در نظر بگيريد:
$ alias sizes='ls –s'
در اينجا دستور ls به همراه گزينه –s نام جديد sizes را به خود گرفته است. به اين ترتيب پس از اين به جای اجرای دستور ls –s (كه برای نشان دادن ليست فايلها به همراه اندازة هر فايل استفاده میشود)، كاربر میتواند از دستور جديد sizes استفاده كند. اين ويژگی به خصوص زمانی كه برخی دستورات طولانی استفادة زيادی داشته باشند، بسيار مفيد خواهد بود.
همانطور كه ديده میشود، برای لحاظ كردن گزينههای يك دستور بايد كل آن دستور را در داخل علامت نقل قول تكی (single quote) قرار داد و نتيجه را پس از علامت مساوی در دستور alias استفاده كرد.
نكتهای كه بايد مورد توجه قرار گيرد اين است كه اين تعريف تنها تا زمانی معتبر خواهد بود كه كاربر logout نكرده باشد. پس از logout و login دوباره، كاربر بايد تعاريف خود را از اول انجام دهد تا قابل استفاده باشند. برای رفع اين مشكل میتوان تعاريف را در فايل .bash_profile يا ساير فايلهای مشابه قرار داد.
نكته قابل توجه ديگر اين است كه به نام جديدی كه برای يك دستور تعريف شده است، پارامتر نيز میتوان ارسال كرد. به طور مثال در مورد دستور sizes كه در بالا تعريف شد، میتوان اين دستور را به شكل زير نيز استفاده كرد:
$ sizes *.c
اين دستور معادل دستور ls –s *.c خواهد بود و ليست تمامی فايلهای با پسوند .c را به همراه اندازة هر فايل نمايش میدهد.
حالت ديگری كه میتوان از دستور alias استفاده كرد اين است كه نام جديدی كه تعريف میشود، با نام يكی از دستورات يا برنامههای موجود يكسان باشد. مثال زير را در نظر بگيريد:
$ alias rm='rm –f'
همانطور كه در مثال ديده میشود، دستور rm –f (كه منجر به حذف فايلها بدون گرفتن تاييد كاربر میشود) به نام rm معرفی شده است. به اين ترتيب از اين پس هرگاه دستور rm اجرا شود، سيستم دستور rm –f را اجرا خواهد كرد. در اين حالت اجرای دستور rm به شكل اصلی آن تا زمانی كه اين تعريف تغيير نكرده است ممكن نخواهد بود.
برای مشاهده ليست aliasهای تعريف شده در سيستم، بايد دستور alias را بدون هيچ پارامتری اجرا كرد. به طور مثال نتيجة اجرای اين دستور روی يك لينوكس RedHat 7.2 به اين شكل است:
$ alias
alias l.='ls -d .[a-zA-Z]* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
همانطور كه میبينيم، اين سيستم در هنگام نصب برخی دستورات را برای راحتی كاربران تعريف كرده است. به عنوان مثال دستور ls با پارامتر –color=tty اجرا میشود تا يك خروجی رنگی را برای كاربران نمايش دهد.
نكتة آخر در مورد اين دستور اين است كه برای حذف يك alias از تعاريف موجود، میتوان از دستور unalias استفاده كرد.
$ unalias l