---
title: "اختصروا كل شيء بالـ Aliases لتحسين تجربة التطوير"
description: "إن كنتم تنوون البقاء في البرمجة طويلًا، فأنشئوا aliases لكل شيء. صدقوني، سيوفر ذلك على أصابعكم الكثير ويحسّن حياتكم اليومية كمطوّرين."
canonical: https://oozou.com/ar/blog/aliasing-all-the-things-to-improve-your-development-experience-76
locale: ar
date: 2020-07-29
author: "OOZOU Team"
---

# اختصروا كل شيء بالـ Aliases لتحسين تجربة التطوير

> إن كنتم تنوون البقاء في البرمجة طويلًا، فأنشئوا aliases لكل شيء. صدقوني، سيوفر ذلك على أصابعكم الكثير ويحسّن حياتكم اليومية كمطوّرين.

Published: 2020-07-29 · Author: OOZOU Team (Engineering) · 4 min read

أعمل في تطوير الويب منذ نحو 15 عامًا، وما زلت أتفاجأ بقلة استخدام الناس للأسماء المستعارة (aliases). أنا أستخدمها لكل شيء، بل لدي دالة bash لإنشاء aliases جديدة في لحظتها.
بصفتكم مطوّرين، ستكتبون على لوحة المفاتيح... كثيرًا. ساعدوا أنفسكم بإنشاء aliases لكل الأوامر التي تكتبونها مرارًا وتكرارًا. دعوا الحاسوب يعمل من أجلكم، فلهذا صنعناه أصلًا، أليس كذلك؟

# ما هو الـ alias؟

أتحدث هنا تحديدًا عن أوامر الطرفية (terminal)، سواء في bash أو zsh أو حتى git. إعداد الـ aliases بسيط جدًا، وسيوفر عليكم أيامًا من الكتابة على مدى مسيرتكم المهنية، وستشكركم أصابعكم.

# كيف أُعدّ الـ aliases؟

شخصيًا لدي ملف واحد لكل الـ aliases الخاصة بـ zsh (والأمر نفسه ينطبق على bash)، أحفظ فيه كل ما يتعلق بها. وفي ملف إعدادات zsh أستدعي هذا الملف بالأمر source، فتصبح الـ aliases متاحة كلما فتحت جلسة طرفية جديدة.
لنبدأ أولًا بإنشاء ملف الـ aliases واستدعائه في ملف ._zshrc_ أو ._bashrc_.

```bash
touch ~/.aliases
```
```bash
source $HOME/.aliases
```

أنصح أيضًا بضبط متغير EDITOR إن لم تكونوا قد فعلتم ذلك بعد. أستخدم macvim على جهازي وvi عند الاتصال عبر ssh، لذلك أضع المقطع التالي في أعلى ملف _.zshrc_

```bash
# ~/.zshrc
if [[ -n $SSH_CONNECTION ]]; then
  export EDITOR=vi
else
  # the -c flag will run the following command when opening the new macvim window
  # the command will return us to iTerm after we close the macvim window
  export EDITOR='mvim -f -c "au VimLeave * !open -a iTerm"'
fi
```

والآن بعد أن أعددنا ذلك، لننشئ بعض الـ aliases!
أول ما أقترحه هو إضافة دالة لإنشاء aliases في لحظتها

```bash
# ~/.aliases
addalias() {
  echo 'alias '$1'="'$2'"' >> ~/.aliases
  source ~/.aliases
}
```

هذه دالة بسيطة جدًا، تأخذ معاملين، وتضيفهما إلى ملف الـ aliases، ثم تستدعي الملف لتضمين الـ alias الجديد في جلسة الطرفية الحالية. على سبيل المثال:

```bash
addalias rr "bin/rails routes"
```

والآن يمكننا تنفيذ

```bash
rr | grep users
```

وهو ما سيجد كل المسارات (routes) التي تحتوي على النص users.
استخدام _addalias_ بعد كتابة الأمر نفسه مرارًا أثناء تتبع خطأ أو أداء مهمة متكررة أمر مُرضٍ للغاية

# بعض الـ aliases التي أستخدمها أكثر من غيرها

```bash
# ~/.aliases
alias la='ls -a'
alias ll='ls -al'

alias zshconfig="$EDITOR ~/.zshrc"
alias ohmyzsh="$EDITOR ~/.oh-my-zsh"
alias vimconfig="$EDITOR ~/.vimrc"
alias sshconfig="$EDITOR ~/.ssh/config"
alias aliases="$EDITOR ~/.aliases"

alias g='git'
alias gx="gitx"

alias push="git push origin HEAD"
alias ppr="push && git pull-request -c"
alias pprm="push && git pull-request -c -m"
alias pr="git pull-request -c"
alias prm="git pull-request -c -m"

alias b='bundle'
alias bi='b install'
alias bu='b update'
alias be='b exec'

alias spring="be spring"
alias sidekiq="bundle exec sidekiq"
alias rspec='be rspec --no-profile'
alias rspecp='be rspec'
alias wds='bin/webpack-dev-server'
alias guard='be guard'
```

# إنشاء aliases لأوامر git

من تجربتي، يعرف معظم المطوّرين إمكانات Git، لكنهم لسبب ما يغفلون عن قدرته على إنشاء الـ aliases. ربما لأن معظم الناس يستخدمون واجهة رسومية، لا أدري، لكن الـ aliases في Git بالنسبة لي أمر لا غنى عنه. وإليكم بعضًا منها

```bash
# ~/.gitconfig
[alias]
	a  = add
	aliases = !git config --get-regexp 'alias.*' | colrm 1 6 | sed 's/[ ]/ = /' | sort
	b  = branch
	c  = commit
	cm = commit -m
	ca = commit -C HEAD --amend
	co = checkout
	cp = cherry-pick
	dt = difftool
	l = log
	mt = mergetool
	p  = push
	pr = pull-request -m
	ra = rebase --abort
	rc = rebase --continue
	ri = rebase -i
	rs = rebase --skip
	s  = status
```

# استخدام الـ aliases

أستخدم معظم هذه الاختصارات يوميًا، وبعد فترة تصبح جزءًا من ذاكرة العضلات. وبصفتي مطوّر Ruby، أقضي وقتًا طويلًا في الطرفية، سواء في rails console أو عند عمل commit لعملي. ومع الـ aliases تصبح أوامري أقصر بكثير، مثلًا:

```bash
git check-out -b chore/new_branch
g co -b chore/new_branch

bin/rails c
r c

git status
g s

gitx
gx
```

أستخدمها أيضًا لتعويض معلومات يصعب علي حفظها. لسبب ما لا أتذكر أبدًا مكان ملف إعدادات ssh، لكنني أتذكر الـ alias بسهولة، لذلك أنشأت _sshconfig_، ولم أعد أحتاج إلى البحث عنه في كل مرة أريد فيها تعديل الملف.

```bash
alias sshconfig="$EDITOR ~/.ssh/config"
```

إن كان هذا الموضوع يثير اهتمامكم، فأنصحكم بشدة بتعلّم شيء من كتابة سكربتات bash أيضًا، فمن المدهش إلى أي مدى يمكنكم الوصول بقليل من المعرفة.

---

Contact OOZOU: hello@oozou.com · +66 2544 0000 · https://oozou.com/ar/contact

More for AI agents: https://oozou.com/llms.txt · every page has a markdown twin at its URL plus ".md"
