0%
ملف .bashrc: دليل شامل لتخصيص شل Bash

ملف .bashrc: دليل شامل لتخصيص شل Bash

اكتشف كيف تخصّص بيئة الشل لديك باستخدام ملف .bashrc. دليل شامل مع أمثلة عملية.

I

InSkillCoach

· دقيقة

ملف .bashrc: دليل شامل لتخصيص شل Bash

يُعد ملف .bashrc ملف إعدادات أساسيًا لمستخدمي Bash. فهو يتيح لك تخصيص بيئة الشل وأتمتة المهام الشائعة. سنستعرض في هذه المقالة هذا الملف وإمكاناته العديدة بالتفصيل.

ما هو ملف .bashrc؟

ملف .bashrc هو سكربت شل يُنفَّذ في كل مرة يُفتح فيها طرفية Bash جديدة. يُخزَّن في دليلك الشخصي (~/.bashrc) ويحتوي على أوامر وإعدادات تخصّص بيئة عملك.

البنية الأساسية

فيما يلي البنية النموذجية لملف .bashrc:

# ~/.bashrc

# إذا لم يكن الشل تفاعليًا، لا تفعل شيئًا
case $- in
    *i*) ;;
      *) return;;
esac

# عدم إضافة الأسطر المكررة أو التي تبدأ بمسافة إلى السجل
HISTCONTROL=ignoreboth

# الإضافة إلى السجل بدلًا من استبداله
shopt -s histappend

# السجل
HISTSIZE=1000
HISTFILESIZE=2000

# التحقق من حجم النافذة بعد كل أمر
shopt -s checkwinsize

# تعريف متغيرات البيئة
export EDITOR=vim
export VISUAL=vim
export PATH=$PATH:$HOME/bin

# الاختصارات (Alias)
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'

تخصيص موجه الأوامر

من أكثر أنواع التخصيص شيوعًا تعديل موجه الأوامر (prompt):

# تخصيص الموجه
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

# أو نسخة أكثر تفصيلًا
PS1='\[\033[38;5;82m\]\u\[\033[00m\]@\[\033[38;5;226m\]\h\[\033[00m\]:\[\033[38;5;39m\]\w\[\033[00m\]\[\033[38;5;196m\]$(git branch 2>/dev/null | grep "^*" | colrm 1 2)\[\033[00m\]\$ '

دوال مفيدة

يمكنك تعريف دوال مخصصة لأتمتة المهام المتكررة:

# إنشاء دليل والانتقال إليه
function mkcd() {
    mkdir -p "$1" && cd "$1"
}

# البحث في السجل
function h() {
    history | grep "$1"
}

# حفظ نسخة احتياطية من دليل
function save() {
    tar -czf "$1.tar.gz" "$1"
}

اختصارات عملية

الاختصارات (alias) هي طرق مختصرة للأوامر كثيرة الاستخدام:

# التنقل
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'

# إدارة الملفات
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Git
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'

# النظام
alias update='sudo apt update'
alias upgrade='sudo apt upgrade'
alias reboot='sudo reboot'

إدارة متغيرات البيئة

يُعد ملف .bashrc مكانًا ممتازًا لتعريف متغيرات البيئة:

# متغيرات بيئة مخصصة
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

# متغيرات للتطبيقات
export EDITOR=vim
export VISUAL=vim
export BROWSER=firefox

أفضل الممارسات

  1. التنظيم

    • علّق على إعداداتك
    • اجمع الإعدادات المتشابهة معًا
    • استخدم أقسامًا محددة بوضوح
  2. الأمان

    • لا تخزّن كلمات المرور
    • استخدم أذونات مناسبة
    • تحقق من السكربتات الخارجية
  3. الصيانة

    • أنشئ نسخًا احتياطية بانتظام
    • وثّق تعديلاتك
    • اختبر التغييرات في طرفية جديدة

مثال كامل

فيما يلي مثال كامل لملف .bashrc منظَّم جيدًا:

# ~/.bashrc

# عدم التنفيذ إذا لم يكن الشل تفاعليًا
case $- in
    *i*) ;;
      *) return;;
esac

# إعداد السجل
HISTCONTROL=ignoreboth
shopt -s histappend
HISTSIZE=1000
HISTFILESIZE=2000

# التحقق من حجم النافذة
shopt -s checkwinsize

# تخصيص الموجه
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

# متغيرات البيئة
export EDITOR=vim
export VISUAL=vim
export PATH=$PATH:$HOME/bin

# الاختصارات (Alias)
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'
alias ..='cd ..'
alias ...='cd ../..'
alias update='sudo apt update'
alias upgrade='sudo apt upgrade'

# الدوال
function mkcd() {
    mkdir -p "$1" && cd "$1"
}

function h() {
    history | grep "$1"
}

# تحميل الإعدادات الإضافية إن وُجدت
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

if [ -f ~/.bash_functions ]; then
    . ~/.bash_functions
fi

الخاتمة

يُعد ملف .bashrc أداة قوية لتخصيص بيئة عملك على Linux. وعند إعداده بالشكل الصحيح، يمكنك:

  • توفير الوقت باستخدام الاختصارات والدوال
  • تحسين إنتاجيتك
  • تخصيص بيئة عملك
  • أتمتة المهام الشائعة

لا تنسَ أخذ نسخة احتياطية من ملف .bashrc قبل تعديله، واختبار التغييرات في طرفية جديدة لتجنب المشكلات.

InSkillCoach

نبذة عن InSkillCoach

خبير في التدريب والتقنيات

مدرّب متخصص في التقنيات المتقدمة والذكاء الاصطناعي، تدعمه شركة GNeurone Inc.

الشهادات:

  • AWS Certified Solutions Architect – Professional
  • شهادات Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
1.0k
156

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!