كيفية استخدام ملف .bashrc في Linux

في نقطة ما، بالتأكيد شعرت بأن تجربتك في لينكس قد تحتاج إلى لمسة إضافية. ربما واجهت مهاماً متكررة أو تمنيت واجهة سطر الأوامر أكثر سلاسة. حسنًا، تخمن ماذا؟ يحتوي نظامك على المفتاح: ملف .bashrc، موجود بصمت في دليل منزلك!

استكشف الجوانب الأساسية لملف ~/.bashrc في هذا البرنامج التعليمي لتحويل كيفية تفاعلك مع نظام لينكس الخاص بك. أنت في المسار الصحيح، من تخصيص سطر الأوامر الخاص بك إلى أتمتة المهام وإعداد اختصارات شخصية.

وداعاً للمهام المملة ومرحباً بتجربة لينكس أكثر كفاءة ومتعة!

المتطلبات الأساسية

قبل أن تلعب مع ملف ~/.bashrc، تأكد من وجود ما يلي لمتابعة الخطوات:

  • A Linux distribution is installed on your machine – This tutorial uses Ubuntu 20.04 LTS, but any other distribution works.
  • A non-root user with sudo privileges.

ما هو ملف تشغيل الأوامر Bash (.bashrc) في لينكس؟

تخيل ملف ~/.bashrc في لينكس مثل صندوق لعب سري في غرفتك. هذا الصندوق يمنحك ويعدد لك ألعابك المفضلة بالطريقة التي تحبها عندما تفتح الصندوق.

ولكن بما أن ~/.bashrc ملف سري، فإنه لا يظهر عند تشغيل الأمر ls. حسنًا، ليس ما لم تحدد عرض الأشياء المخفية أيضًا، باستخدام المعامل -la، كما هو موضح أدناه.

ls -la

أدناه، يتم سرد ملف .bashrc بالإضافة إلى غيره من الملفات التي تكون مخفية أيضًا.

Listing all files, including hidden ones, in the working directory (home)

تحديد الاختصارات المخصصة لتنفيذ الأوامر بسرعة

A short definition wouldn’t cut into realizing the ~/.bashrc file’s role in customizing your Linux experience. So, how does this file work exactly? When you crack open that ~/.bashrc file, one of the powerful tricks it lets you achieve is defining custom aliases for your favorite commands.

على سبيل المثال، بدلاً من كتابة sudo apt-get update لتحديث فهرس الحزم المحلي للنظام، قم بتعريف اختصار في ملف .bashrc يعمل بنفس الطريقة.

? ملاحظة: يستخدم هذا البرنامج التعليمي حساب الجذر لتشغيل الأوامر (غير مستحسن) لتوضيح المهام الإدارية، مثل تكوين النظام. ولكن، لأسباب أمان، تأكد من استخدام مستخدم غير جذري مع امتيازات sudo عند تنفيذ إجراءات مماثلة على النظام الخاص بك.

لتعريف اختصارات للأوامر، اتبع هذه الخطوات:

1. افتح ملف .bashrc في دليل منزلك (~/) عبر محررك المفضل، مثل nano أو vim.

? إذا كنت تستخدم حسابًا غير جذري، فضع sudo قبل تشغيل الأوامر التي تتطلب امتيازات مرتفعة.

nano ~/.bashrc

2. بعد ذلك، انتقل إلى نهاية الملف وقم بتعريف alias (مثل update) للأمر الهدف الخاص بك (مثل sudo apt-get update)، كما هو موضح أدناه.

alias update='sudo apt-get update'

حفظ التغييرات على الملف وأغلق المحرر.

Defining an alias in the .bashrc file

3. بمجرد الحفظ، قم بتنفيذ الأمر التالي في الطرفية الخاصة بك لتنفيذ مصدر الملف ~/.bashrc. هذا الأمر لا يعطي أي إخراج للطرفية ولكنه يطبق التغييرات الخاصة بك.

source ~/.bashrc

4. الآن، قم بتشغيل الاسم المستعار update الذي قمت بتعريفه وتأكد من تنفيذ الأمر المقابل (sudo apt-get update).

update

الإخراج أدناه يؤكد على عمل اسم المستعار الخاص بك update مثل تشغيل أمر sudo apt-get update ولكن بمجرد الضغط على أقل مفاتيح.

Testing the newly defined alias (update)

صياغة الوظائف لتعزيز الإنتاجية

تعثر تحديد الاسم المستعار عندما تكون هناك عمليات معقدة لتنفيذها مرارًا وتكرارًا. ولكن لا تقلق؛ الوظائف هنا لتحل المشكلة حيث قد تتعثر الأسماء المستعارة.

على عكس الأسماء المستعارة التي تخدم فقط كاختصار لأمر واحد، تضم الوظائف سلسلة معقدة من الأوامر مصممة لأداء عمليات معقدة.

لفهم كيفية عمل الوظيفة، قم باتباع الخطوات التالية:

1. في الملف ~/.bashrc، قم بإلحاق الوظيفة أدناه بالاسم manage_package (تعسفي).

عند التنفيذ، تقوم هذه الوظيفة بالتحقق مما إذا كان الحزمة المعطاة مثبتة، وبناءً على تلك المعلومات، فإنها إما تحدث أو تقوم بتثبيت الحزمة.

تذكر، هذه الوظيفة تأخذ وسيطة واحدة فقط، وهي اسم الحزمة التي تهتم بها.

manage_package() {
  # يتحقق مما إذا كان الحزمة مثبتة عن طريق استعلام حالة الحزمة باستخدام dpkg. 
  # $1 هو العنصر النائب لأول argument ممرر إلى الدالة (اسم الحزمة).
  # يتم تحويل الإخراج إلى /dev/null لإخفائه في الطرفية.
  # يتحقق عبارة if من حالة الخروج لأمر dpkg -s. 
  # إذا كانت الحالة هي 0 (الحزمة مثبتة)، 
  # يتم المضي قدماً إلى الكتلة الأولى، لتحديث الحزمة.
  if dpkg -s "$1" &> /dev/null; then
    echo "Package '$1' is already installed. Updating..."
    sudo apt-get update && sudo apt-get install --only-upgrade "$1"
  # إذا لم تكن الحزمة مثبتة، يتم طباعة رسالة
  # وتشغيل sudo apt-get install "$1" لتثبيت الحزمة.
  else
    echo "Package '$1' is not installed. Installing..."
    sudo apt-get update && sudo apt-get install "$1"
  fi
}

2. بعد إضافة الدالة، قم بحفظ التغييرات، أغلق المحرر، ثم source الملف ~/.bashrc لتطبيق التغييرات.

source ~/.bashrc

3. بمجرد تنفيذه، ادعو الدالة (manage_package)، تتبعها بـ اسم-الحزمة الذي ترغب في التحقق منه، تحديثه، أو تثبيته في الطرفية الخاصة بك، كما هو موضح أدناه.

اختيار الحزمة في هذا البرنامج التعليمي هو NGINX، ولكن تأكد من استبدال اسم-الحزمة بالحزمة المفضلة لديك.

manage_package package-name

كما يمكنك أن ترى في الإخراج، تجعل الوظائف مثل هذه إدارة الحزمة سهلة عن طريق القيام بالعمل الشاق بدلاً منك. إنها تحدد تلقائيًا ما إذا كانت الحزمة التي تريدها موجودة، حتى لا تضطر إلى ذلك.

Executing the newly defined function

تخصيص واجهة سطر أوامر Linux وشاشة البدء (PS1)

فكر في واجهة سطر أوامر Linux الخاصة بك كمساحة عمل شخصية. يحول تخصيص واجهة سطر الأوامر الخاصة بك إلى بيئة أكثر جاذبية بصريًا وإخبارية.

عند تحسين واجهة سطر أوامر Linux الخاصة بك، لا يوجد حد للسماء. يمكنك تزيين واجهة السطر الخاصة بك برسالة ترحيب رائعة أو تعديل موجه الشل الخاص بك للحصول على مظهر إضافي.

لتخصيص واجهة سطر أوامر Linux الخاصة بك، قم باتباع الخطوات التالية:

1. أضف السطر التالي في نهاية ملف ~/.bashrc الخاص بك. يقوم هذا السطر بطباعة رسالة ترحيبية في كل مرة تبدأ فيها جلسة واجهة سطر الأوامر.

echo "Welcome to your terminal, $USER!

2. بعد ذلك، قم بتعديل متغير سلسلة التعليمات الأولى (PS1) إذا كان موجودًا، أو أضف السطر التالي إلى ملف ~/.bashrc الخاص بك. يتحكم متغير PS1 بشكل دقيق في سلسلة التعليمات الأولية للموجه، وهي السلسلة الرئيسية التي يتم عرضها (أي user@linux:~#) عندما يكون الموجه جاهزًا لقبول الأوامر.

تعديل المتغير PS1 يتيح لك تغيير مظهر موجه الشل الخاص بك، بما في ذلك لونه وتنسيقه وعرض المعلومات. تعبير التالي:

  • يجعل اسم المستخدم (\u) واسم الجهاز (\h) يظهران باللون الأخضر الزاهي (32m).
  • يسبب ظهور الدليل الحالي للعمل (\w) باللون الأزرق الزاهي (34m).
  • يعيد سمات اللون إلى اللون الافتراضي (عادة الأبيض) (\[\033[00m\]) للنص الذي يتبع البرومبت. يضمن هذا الإعادة تأثير النص الباقي في الطرفية.
PS1='\[\033[01;32m\]\u@\h:\[\033[01;34m\]\w\$ \[\033[00m\]'

3. بعد ذلك، احفظ الملف وأغلقه، ثم قم بتنفيذ source لملف ~/.bashrc لتطبيق التغييرات.

source ~/.bashrc

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

Applying the shell prompt changes

تشغيل النصوص الخاصة بك: لا مشكلة في المسار؟ لا مشكلة!

تعزيز نظامك للاعتراف بالمجلدات الإضافية لأوامر التنفيذ يمكن أن يبسط سير العمل الخاص بك. خذ تشغيل النصوص مثلاً – لا مزيد من الصراع مع مسارات طويلة، بل ملاءمة فقط.

لتشغيل النصوص الخاصة بك دون حفظ كل مسار، أكمل الخطوات التالية:

1. قم بتنفيذ الأمر التالي لإنشاء مجلد (mkdir) يسمى ~/scripts (اختياري)) مخصص لتخزين النصوص الخاصة بك.

mkdir -p ~/scripts

2. بعد ذلك، افتح الملف ~/.bashrc وأضف السطر التالي في النهاية، الذي يعدل مسار البحث في الأوامر للنظام. يقوم هذا السطر بإضافة الدليل ~/scripts إلى المتغير PATH الموجود حاليًا لديك.

هذا السلوك يضمن أن الشيل يعطي أولوية لنصوصك على البرامج التنفيذية الأخرى التي تحمل نفس الأسماء في مواقع أخرى ضمن PATH النظام.

export PATH="$HOME/scripts:$PATH"

3. احفظ وأغلق الملف، ثم source لتطبيق التغييرات دون إعادة تشغيل الطرفية.

source ~/.bashrc

4. بعد ذلك، قم بتشغيل كل أمر أدناه لإنشاء نصوص مسماة testscript (عشوائي) في الدليل ~/scripts الخاص بك.

هذه الأوامر لا تعطي أي إخراج، ولكن يتم جعل هذا النص قابلاً للتنفيذ (chmod)، والذي يقوم بطباعة رسالة (echo) إلى الطرفية.

# إنشاء نص Bash جديد يُسمى 'testscript' في الدليل ~/scripts
echo '#!/bin/bash' > ~/scripts/testscript

# إلحاق سطر في 'testscript' يطبع "تشغيل النص!" عند التنفيذ
echo 'echo "Script is running!"' >> ~/scripts/testscript

# جعل 'testscript' قابل للتنفيذ عن طريق تغيير أذوناته
chmod +x ~/scripts/testscript

5. في النهاية، قم بتنفيذ النص الخاص بك (testscript) بتسمية اسمه في الطرفية.

يقوم النظام بتنفيذ النص الخاص بك من الدليل المخصص ~/scripts بغض النظر عن دليل العمل الحالي في الطرفية.

testscript

الناتج أدناه يؤكد عمل البرنامج النصي الخاص بك، وأن مسار البحث المعدل للأوامر في النظام يعمل كما هو متوقع.

Executing the new script to confirm it’s functioning as expected

الاستنتاج

في عالم ملف ~/.bashrc، لقد سافرت من خلال أساسيات دوره وكيفية عمل تخصيص الأوامر المختصرة والوظائف. حتى تخصيص مظهر محطة Linux الخاصة بك الآن في متناول يديك.

بالإضافة إلى المظهر، لقد فتحت راحة تنفيذ النصوص بدون تحديد مساراتها الكاملة في كل مرة عن طريق توسيع المتغير PATH البيئي. توفير هذه التعديلات الوقت وتعزيز واجهة المستخدم، مما يجعل تفاعلك مع Linux أكثر كفاءة وأكثر متعة في نفس الوقت.

بينما تغلق هذا الفصل على ملف ~/.bashrc، تذكر أن جوهر Linux الحقيقي هو مرونته والتحكم الذي يقدمه لك. الرحلة مستمرة، فلماذا لا تشعر بالعطش لتجربة مخصصة من خلال استكشاف تحسينات ZSH؟

استعراض المحيط من السمات والإضافات التي توفرها ZSH والأطر مثل Oh My Zsh. شاهد محطتك تتحول إلى مساحة عمل أكثر إنتاجية وجاذبية بصرية!

Source:
https://adamtheautomator.com/bashrc/