تا %60 تخفیف خرید برای 2 نفر با صدور مدرک فقط تا
00 00 00

آموزش لینوکس : مدیریت سیستم : قسمت 3 : Shell سفارشی : Aliases

سید محمد باقر موسوی
سید محمد باقر موسوی
3 پسند
314 بازدید
3 نظر
50 ماه قبل

سلام و وفت بخیر. یکی از مهم ترین feature های shell شاید alias باشد. alias نشان دهنده دستور است. برای اینکه یک دستور طولانی و یا پیچیده را بصورت کوتاه تر استفاده کنیم، برای آن یک alias نعریف میکنیم. alias مثل یک نام مستعار است. یک نام مستعار کوتاه تر و قابل یادآوری که به جای دستور طولانی یا پیچیده مینشیند. alias در حافظه موقت سیستم ذخیره میشود و با هر بار reboot سیستم مجبوریم آن را دوباره تعریف کنیم مگر اینکه آنرا ذخیره دائمی کرده باشیم. alias قبل از اینکه مسیر PATH برای هر کاربر پردازش شود، چک میشود. یکی از alias های پیش فرض سیستم، دستور ls است. در ترمینال خود type ls را وارد کنید. میبینید که دستور ls در حقیقت یک alias از دستور ls با سویچ اضافه است. به کد های زیر دقت کنید (اگه کد رو کپی میکردم رنگش نمی افتاد.)

در خط اول از دستور ls استفاده کردیم. محتویات درون مسیری که هستیم را نشان میدهد. رنگ آبی نشان دهنده مسیر است. رنگ سیاه یعنی فایل است. اگر هم فایل exe میداشتم سبز نشون میداد. سویچ F- نشان میدهد که جنس خروجی چیست. مثلا اگر directory باشد یک / میگذارد. اگر بخواهیم که دستور در حالت عادی اجرا شود و از alias استفاده نشود، قبل دستور یک \ میگذاریم. میبینید که وقتی \ گذاشتنم دیگه رنگی نشون نمیده. برای دیدن alias ها در ترمینال واژه alias را وارد کنید. لیستی مانند زیر نمایش داده خواهد شد.

آموزش لینوکس : مدیریت سیستم : قسمت 3 : Shell سفارشی : Aliases

حال میخواهم خودم یک alias ایجاد کنم. کلمه alias را مینویسم، سپس کلمه ای که به عنوان alias در نظر دارم. بعد از آن مساوی و درون ' ' دستور اصلی را وارد میکنم.

[root@CentOS6 /]# alias la='ls -al --color=auto'
[root@CentOS6 /]# type la
la is aliased to `ls -al --color=auto'

توجه داشته باشید که بصورت پیش فرض در همین ترمینال که هستم فقط این la تعریف شده است. برای از بین بردن alias هم از دستور unalias و نام alias استفاده کنید.

[root@CentOS6 ~]# alias la='ls -al --color=auto'
[root@CentOS6 ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias la='ls -al --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@CentOS6 ~]# unalias la
[root@CentOS6 ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@CentOS6 ~]# 

حاا این تنظیمات alias کجا ذخیره میشود؟؟ اگر شما هم مثل من از centos و یا یکی از توزیع های Red Hat استفاده میکنید، در مسیر home directory هر کاربر ( حتی root ) یک فایل به نام bashrc. وجود دارد. این فایل را باز کنید (با دستور cat) تا alias های دائمی را ببینید. برای اینکه یک alias همیشگی شود، آنرا در این فایل بنویسید. میتوانید از vim و یا gedit برای ویرایش این فایل استفاده کنید. با دستور ( vim .bashrc یا gedit .bashrc )

[root@CentOS6 ~]# whoami
root
[root@CentOS6 ~]# pwd
/root
[root@CentOS6 ~]# cat .bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
[root@CentOS6 ~]# 
[root@CentOS6 ~]# cd /home/mohammad/
[root@CentOS6 mohammad]# cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# User specific aliases and functions
[root@CentOS6 mohammad]# 

همانطور که در شکل مشخص است برای root سه تا alias پیش فرض وجود دارد ولی برای کاربر mohammad هنوز هیچ alias ثبت نشده است. ( فایل هایی مثل bashrc. که قبلشان نقطه است، اصطلاحا فایل های سیستمی هستند. ) تمرین : برای یک کاربر غیر از root یک alias درست کرده و برای همیشه آنرا ذخیره کنید. میتوانید از دستور << برای اضافه کردن ( append کردن) به انتهای فایل bashrc. استفاده کنید.

پایان قسمت سوم از بخش اول

نویسنده : سید محمد باقر موسوی

منبع : جزیره لینوکس و سیستم های متن باز وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

نظر شما
برای ارسال نظر باید وارد شوید.
3 نظر