# ساخت Alias (میانبر) در لینوکس
### اجرای دستورات با نامهای کوتاه و سفارشی
یکی از ابزارهای بسیار مفید در لینوکس برای سادهتر کردن کار با ترمینال، استفاده از **alias** است. با alias میتوانید برای دستورات طولانی، نامهای کوتاه و قابلحفظ تعریف کنید تا سرعت کارتان بالا برود و خطاها کمتر شوند.
---
## 🧠 Alias چیست؟
Alias در واقع یک **میانبر** برای یک دستور یا مجموعهای از دستورات است. با تعریف alias میتوانید بهجای تایپ یک دستور طولانی، فقط یک کلمه کوتاه تایپ کرده و همان خروجی را بگیرید.
---
## ✅ تعریف Alias موقتی
برای تعریف alias موقتی (تا زمانی که ترمینال بسته شود)، کافی است از دستور زیر استفاده کنید:
```bash
alias shortname='command here'
```
### مثالها:
```bash
alias ll='ls -alF'
alias gs='git status'
alias update='sudo apt update && sudo apt upgrade'
```
اکنون وقتی بنویسید `ll`، همان دستور `ls -alF` اجرا میشود.
---
## ♻️ تعریف Alias دائمی
برای اینکه aliasها پس از ریستارت یا بستن ترمینال باقی بمانند، باید آنها را به فایل تنظیمات شل اضافه کنید.
### 1. اگر از **bash** استفاده میکنید:
فایل زیر را ویرایش کنید:
```bash
nano ~/.bashrc
```
و aliasها را به انتهای آن اضافه کنید:
```bash
alias ll='ls -alF'
alias gs='git status'
```
سپس فایل را ذخیره کرده و تنظیمات را بارگذاری کنید:
```bash
source ~/.bashrc
```
### 2. اگر از **zsh** استفاده میکنید:
فایل زیر را ویرایش کنید:
```bash
nano ~/.zshrc
```
و سپس:
```bash
source ~/.zshrc
```
---
## 🧪 بررسی aliasهای فعال
برای دیدن همه aliasهای تعریفشده:
```bash
alias
```
---
## ❌ حذف alias
برای حذف موقتی یک alias در همان جلسه ترمینال:
```bash
unalias shortname
```
مثال:
```bash
unalias ll
```
اگر میخواهید آن را بهطور دائمی حذف کنید، باید آن را از فایل `~/.bashrc` یا `~/.zshrc` پاک کرده و مجدد `source` کنید.
---
## 🔄 تعریف alias با پارامتر (کمی پیشرفتهتر)
Alias به صورت پیشفرض پارامتر نمیپذیرد، اما برای این کار میتوانید از **function** در فایل `~/.bashrc` یا `~/.zshrc` استفاده کنید:
```bash
mygrep() {
grep --color=auto "$@" *.txt
}
alias myg='mygrep'
```
با این کار وقتی بنویسید:
```bash
myg error
```
در تمام فایلهای متنی، دنبال "error" میگردد.
---
## جمعبندی
| مزایا | توضیح |
|------|--------|
| صرفهجویی در زمان | دستورات پیچیده را ساده میکند |
| کاهش خطا | نیاز به تایپ دستی کمتر |
| سفارشیسازی ترمینال | محیط کاری شخصیتر و سریعتر |