## الوصول إلى سطر الأوامر في نظام macOS: دليل شامل للمبتدئين والمحترفين
سطر الأوامر، أو الطرفية (Terminal)، هو أداة قوية ومرنة تتيح لك التفاعل مباشرة مع نظام التشغيل macOS. سواء كنت مطور برامج، مسؤول نظام، أو مجرد مستخدم فضولي، فإن فهم كيفية استخدام سطر الأوامر يمكن أن يعزز بشكل كبير إنتاجيتك وقدرتك على التحكم في جهاز Mac الخاص بك.
هذا الدليل الشامل يهدف إلى تزويدك بكل ما تحتاج معرفته للبدء في استخدام سطر الأوامر على نظام macOS، بدءًا من كيفية الوصول إليه، مرورًا بالأوامر الأساسية، وصولًا إلى بعض الاستخدامات المتقدمة. سنتناول أيضًا كيفية تخصيص الطرفية لتناسب احتياجاتك وتفضيلاتك.
### ما هو سطر الأوامر (Terminal)؟
سطر الأوامر هو واجهة مستخدم نصية تتيح لك إدخال الأوامر مباشرة إلى نظام التشغيل. بدلاً من النقر على الأيقونات واستخدام واجهات المستخدم الرسومية (GUI)، يمكنك كتابة الأوامر النصية لتنفيذ المهام، وإدارة الملفات، وتشغيل البرامج، وأكثر من ذلك بكثير.
يعتمد سطر الأوامر في macOS على بيئة UNIX، مما يعني أنه يشترك في الكثير من الأوامر والمفاهيم مع أنظمة التشغيل الأخرى المستندة إلى UNIX مثل Linux. هذا يوفر لك ميزة كبيرة، حيث أن تعلم سطر الأوامر في macOS يمكن أن يكون له قيمة كبيرة في بيئات تطوير أخرى.
### لماذا يجب أن تستخدم سطر الأوامر؟
قد تتساءل لماذا تحتاج إلى استخدام سطر الأوامر بينما يمكنك القيام بمعظم المهام باستخدام واجهة المستخدم الرسومية. إليك بعض الأسباب المقنعة:
* **الكفاءة:** يمكن أن تكون بعض المهام أسرع بكثير باستخدام سطر الأوامر. على سبيل المثال، البحث عن ملفات متعددة أو تغيير أسماء مجموعة كبيرة من الملفات يمكن أن يتم بسرعة باستخدام أوامر بسيطة.
* **التحكم:** يمنحك سطر الأوامر تحكمًا دقيقًا في نظام التشغيل. يمكنك الوصول إلى الإعدادات والوظائف التي لا تتوفر عادةً في واجهة المستخدم الرسومية.
* **الأتمتة:** يمكنك كتابة البرامج النصية (Scripts) لأتمتة المهام المتكررة. هذا يمكن أن يوفر لك الكثير من الوقت والجهد.
* **التطوير:** سطر الأوامر ضروري لتطوير البرمجيات. العديد من الأدوات والمكتبات المستخدمة في التطوير تتطلب استخدام سطر الأوامر.
* **استكشاف الأخطاء وإصلاحها:** يمكن أن يكون سطر الأوامر مفيدًا جدًا في استكشاف الأخطاء وإصلاحها. يمكنك استخدامه للحصول على معلومات تفصيلية حول النظام والعمليات الجارية.
### الوصول إلى الطرفية (Terminal) في macOS
هناك عدة طرق للوصول إلى الطرفية في macOS:
1. **عن طريق Finder:**
* افتح Finder (أيقونة الوجه المبتسم في Dock).
* انقر على “Applications” (التطبيقات) في الشريط الجانبي.
* ابحث عن مجلد “Utilities” (الأدوات المساعدة) وافتحه.
* ستجد تطبيق “Terminal” (الطرفية) بداخله. انقر عليه لفتحه.
2. **عن طريق Spotlight:**
* اضغط على Command (⌘) + Space Bar (شريط المسافة) لفتح Spotlight.
* اكتب “Terminal” (الطرفية) في مربع البحث.
* اضغط على Enter لفتح التطبيق.
3. **عن طريق Launchpad:**
* افتح Launchpad (أيقونة الصاروخ في Dock).
* ابحث عن تطبيق “Terminal” (الطرفية) في Launchpad.
* انقر عليه لفتحه.
### واجهة الطرفية (Terminal) في macOS
عندما تفتح الطرفية، سترى نافذة تحتوي على مؤشر الأوامر. يبدو المؤشر عادةً كالتالي:
bash
computer-name:~ username$
* `computer-name`: اسم جهاز Mac الخاص بك.
* `~`: يشير إلى الدليل الرئيسي (Home Directory) الخاص بك. يمكنك التفكير فيه على أنه مجلد المستخدم الخاص بك.
* `username`: اسم المستخدم الخاص بك.
* `$`: يشير إلى أنك مستخدم عادي (غير مسؤول). إذا كنت مسؤولًا، فقد ترى `#` بدلاً من ذلك.
بعد المؤشر، يمكنك كتابة الأوامر والضغط على Enter لتنفيذها.
### الأوامر الأساسية في سطر الأوامر
إليك بعض الأوامر الأساسية التي يجب أن تعرفها للبدء:
* **`pwd` (Print Working Directory):** يعرض الدليل الحالي الذي تتواجد فيه.
bash
pwd
سيظهر لك مسار الدليل الحالي، مثل: `/Users/username`
* **`ls` (List):** يعرض قائمة بالملفات والمجلدات الموجودة في الدليل الحالي.
bash
ls
يمكنك استخدام خيارات مختلفة مع `ls` للحصول على معلومات إضافية:
* `ls -l`: يعرض قائمة تفصيلية بالملفات والمجلدات، بما في ذلك الأذونات، الحجم، وتاريخ التعديل.
* `ls -a`: يعرض جميع الملفات والمجلدات، بما في ذلك الملفات المخفية (التي تبدأ بنقطة).
* `ls -t`: يرتب الملفات والمجلدات حسب تاريخ التعديل (الأحدث أولاً).
* `ls -R`: يعرض قائمة بالملفات والمجلدات بشكل متكرر (Recursive)، أي يعرض محتويات جميع المجلدات الفرعية.
* **`cd` (Change Directory):** يغير الدليل الحالي إلى دليل آخر.
* `cd directory_name`: ينتقل إلى الدليل المحدد. على سبيل المثال، `cd Documents` سينتقلك إلى مجلد المستندات.
* `cd ..`: ينتقل إلى الدليل الأصل (الدليل الذي يحتوي على الدليل الحالي).
* `cd ~`: يعود إلى الدليل الرئيسي الخاص بك.
* `cd /`: ينتقل إلى الدليل الجذر (Root Directory) وهو أعلى مستوى في نظام الملفات.
* **`mkdir` (Make Directory):** ينشئ مجلدًا جديدًا.
bash
mkdir new_directory
سيقوم هذا الأمر بإنشاء مجلد جديد باسم `new_directory` في الدليل الحالي.
* **`rmdir` (Remove Directory):** يحذف مجلدًا فارغًا.
bash
rmdir empty_directory
**ملاحظة:** لا يمكن استخدام `rmdir` لحذف مجلدات غير فارغة. لحذف مجلد يحتوي على ملفات، استخدم الأمر `rm -r` (انظر أدناه).
* **`touch`:** ينشئ ملفًا فارغًا.
bash
touch new_file.txt
سيقوم هذا الأمر بإنشاء ملف جديد باسم `new_file.txt` في الدليل الحالي.
* **`rm` (Remove):** يحذف ملفًا أو مجلدًا.
* `rm file.txt`: يحذف الملف `file.txt`.
* `rm -r directory_name`: يحذف المجلد `directory_name` ومحتوياته بشكل متكرر. **تحذير: هذا الأمر لا رجعة فيه، لذا كن حذرًا عند استخدامه!**
* `rm -f file.txt`: يحذف الملف `file.txt` بالقوة، دون طلب تأكيد. **كن حذرًا جدًا عند استخدام `-f` لأنه يمكن أن يؤدي إلى فقدان البيانات.**
* **`cp` (Copy):** ينسخ ملفًا أو مجلدًا.
* `cp file.txt new_file.txt`: ينسخ الملف `file.txt` إلى ملف جديد باسم `new_file.txt`.
* `cp -r directory_name new_directory_name`: ينسخ المجلد `directory_name` ومحتوياته بشكل متكرر إلى مجلد جديد باسم `new_directory_name`.
* **`mv` (Move):** ينقل ملفًا أو مجلدًا، أو يعيد تسميته.
* `mv file.txt new_location/file.txt`: ينقل الملف `file.txt` إلى المجلد `new_location`.
* `mv file.txt new_name.txt`: يعيد تسمية الملف `file.txt` إلى `new_name.txt`.
* **`cat` (Concatenate):** يعرض محتويات ملف نصي.
bash
cat file.txt
سيظهر محتوى الملف `file.txt` في الطرفية.
* **`less`:** يعرض محتويات ملف نصي صفحة بصفحة. مفيد لعرض الملفات الكبيرة.
bash
less large_file.txt
يمكنك استخدام مفاتيح الأسهم للتنقل عبر الملف. اضغط على `q` للخروج من `less`.
* **`head`:** يعرض الأسطر القليلة الأولى من ملف نصي (عادةً 10 أسطر).
bash
head file.txt
* **`tail`:** يعرض الأسطر القليلة الأخيرة من ملف نصي (عادةً 10 أسطر).
bash
tail file.txt
يمكن استخدام `tail -f` لمراقبة ملف في الوقت الحقيقي. هذا مفيد لمراقبة سجلات النظام.
* **`man` (Manual):** يعرض دليل المستخدم لأي أمر.
bash
man ls
سيظهر دليل المستخدم للأمر `ls`. يمكنك استخدام مفاتيح الأسهم للتنقل عبر الدليل. اضغط على `q` للخروج.
* **`open`:** يفتح ملفًا أو تطبيقًا باستخدام التطبيق الافتراضي المرتبط به.
bash
open file.txt
open application.app
سيفتح `open file.txt` الملف `file.txt` باستخدام التطبيق الافتراضي لمعالجة الملفات النصية. `open application.app` سيفتح التطبيق المحدد.
* **`clear`:** يمسح شاشة الطرفية.
bash
clear
* **`history`:** يعرض قائمة بالأوامر التي تم تنفيذها سابقًا.
bash
history
يمكنك استخدام مفاتيح الأسهم للتنقل عبر قائمة الأوامر. يمكنك أيضًا استخدام `!` متبوعة برقم الأمر لتنفيذ الأمر المحدد مرة أخرى. على سبيل المثال، `!10` سينفذ الأمر العاشر في قائمة التاريخ.
### أوامر مهمة لإدارة النظام
* **`ps` (Process Status):** يعرض قائمة بالعمليات الجارية.
bash
ps aux
سيظهر لك قائمة مفصلة بالعمليات الجارية، بما في ذلك معرف العملية (PID)، المستخدم، استهلاك الذاكرة، والمزيد.
* **`kill`:** ينهي عملية. تحتاج إلى معرفة معرف العملية (PID) لإنهاء العملية.
bash
kill PID
استبدل `PID` بمعرف العملية التي تريد إنهائها. إذا لم يتم إنهاء العملية باستخدام `kill`، يمكنك استخدام `kill -9 PID` لفرض الإنهاء. **كن حذرًا عند استخدام `kill -9` لأنه يمكن أن يؤدي إلى فقدان البيانات أو مشاكل في النظام.**
* **`top`:** يعرض قائمة بالعمليات الجارية ويقوم بتحديثها في الوقت الفعلي. مفيد لمراقبة استخدام وحدة المعالجة المركزية (CPU) والذاكرة.
bash
top
اضغط على `q` للخروج من `top`.
* **`sudo` (Superuser Do):** يسمح لك بتنفيذ الأوامر كمسؤول النظام. تحتاج إلى إدخال كلمة مرور المسؤول لتنفيذ الأوامر باستخدام `sudo`.
bash
sudo command
استبدل `command` بالأمر الذي تريد تنفيذه كمسؤول. **كن حذرًا جدًا عند استخدام `sudo` لأنه يمكن أن يؤدي إلى تلف النظام إذا تم استخدامه بشكل غير صحيح.**
* **`ifconfig` (Interface Configuration):** يعرض معلومات حول واجهات الشبكة.
bash
ifconfig
سيظهر لك معلومات مثل عنوان IP، عنوان MAC، وواجهات الشبكة النشطة.
* **`netstat` (Network Statistics):** يعرض إحصائيات الشبكة.
bash
netstat -an
سيظهر لك قائمة بالاتصالات الشبكية النشطة.
### الاختصارات الهامة في الطرفية
* **Tab (إكمال تلقائي):** اضغط على Tab لإكمال اسم الملف أو الأمر الذي تكتبه. إذا كان هناك عدة خيارات ممكنة، فسيظهر لك قائمة بالخيارات.
* **Ctrl + A:** ينتقل إلى بداية السطر.
* **Ctrl + E:** ينتقل إلى نهاية السطر.
* **Ctrl + K:** يحذف النص من المؤشر إلى نهاية السطر.
* **Ctrl + U:** يحذف النص من المؤشر إلى بداية السطر.
* **Ctrl + W:** يحذف الكلمة السابقة.
* **Ctrl + R:** يبحث في تاريخ الأوامر عن أمر معين.
* **Ctrl + C:** يوقف العملية الجارية.
* **Up Arrow (السهم العلوي):** يعرض الأمر السابق في تاريخ الأوامر.
* **Down Arrow (السهم السفلي):** يعرض الأمر التالي في تاريخ الأوامر.
### تخصيص الطرفية (Terminal)
يمكنك تخصيص الطرفية لتناسب تفضيلاتك الشخصية. إليك بعض الخيارات:
* **تغيير المظهر:** يمكنك تغيير لون الخلفية، لون النص، والخط.
* افتح Terminal.
* انتقل إلى Terminal > Preferences (أو اضغط Command + ,).
* انقر على Profiles.
* اختر ملف تعريف (Profile) أو أنشئ ملفًا جديدًا.
* في علامة التبويب Colors، يمكنك تغيير ألوان النص والخلفية.
* في علامة التبويب Text، يمكنك تغيير الخط وحجمه.
* **تغيير المؤشر:** يمكنك تغيير شكل المؤشر.
* افتح Terminal.
* انتقل إلى Terminal > Preferences (أو اضغط Command + ,).
* انقر على Profiles.
* اختر ملف تعريف (Profile) أو أنشئ ملفًا جديدًا.
* في علامة التبويب Advanced، يمكنك تغيير شكل المؤشر.
* **تغيير سلوك الطرفية:** يمكنك تغيير سلوك الطرفية، مثل ما إذا كان سيتم إغلاق النافذة عند انتهاء العملية.
* افتح Terminal.
* انتقل إلى Terminal > Preferences (أو اضغط Command + ,).
* انقر على Profiles.
* اختر ملف تعريف (Profile) أو أنشئ ملفًا جديدًا.
* في علامة التبويب Shell، يمكنك تغيير سلوك الطرفية.
* **تخصيص بيئة العمل (Environment Variables):** يمكنك تخصيص بيئة العمل عن طريق تعيين متغيرات البيئة. متغيرات البيئة هي قيم تخزن معلومات حول النظام والبيئة التي يعمل فيها البرنامج. يمكنك استخدام الأمر `export` لتعيين متغير بيئة.
bash
export VARIABLE_NAME=value
على سبيل المثال، لتعيين متغير بيئة باسم `EDITOR` يشير إلى محرر النصوص `nano`، يمكنك استخدام الأمر:
bash
export EDITOR=nano
لتجعل هذه التغييرات دائمة، يمكنك إضافتها إلى ملف `~/.bash_profile` أو `~/.zshrc` (إذا كنت تستخدم Zsh).
### استخدامات متقدمة لسطر الأوامر
* **البرمجة النصية (Scripting):** يمكنك كتابة البرامج النصية لأتمتة المهام المتكررة. يمكنك استخدام لغات البرمجة النصية مثل Bash أو Python.
* **إدارة الخوادم:** يمكنك استخدام سطر الأوامر لإدارة الخوادم عن بعد عبر SSH (Secure Shell).
* **تطوير البرمجيات:** سطر الأوامر ضروري لتطوير البرمجيات. يمكنك استخدامه لتجميع الشفرة المصدرية، تشغيل الاختبارات، وإدارة الإصدارات.
* **تحليل البيانات:** يمكنك استخدام سطر الأوامر لتحليل البيانات. يمكنك استخدام أدوات مثل `awk` و `sed` و `grep` لمعالجة البيانات.
### نصائح وحيل
* **استخدم `man` لمعرفة المزيد عن أي أمر.**
* **لا تخف من التجربة. جرب الأوامر المختلفة لترى ما الذي تفعل.**
* **كن حذرًا عند استخدام الأوامر التي تتطلب `sudo`.**
* **احذر من حذف الملفات والمجلدات. تأكد من أنك تحذف ما تريد حذفه بالفعل.**
* **استخدم الاختصارات لتوفير الوقت.**
* **ابحث عن دروس وبرامج تعليمية عبر الإنترنت لتعلم المزيد.**
* **شارك في منتديات ومجتمعات سطر الأوامر لطرح الأسئلة وتبادل المعرفة.**
### الخلاصة
سطر الأوامر هو أداة قوية ومرنة يمكن أن تعزز بشكل كبير إنتاجيتك وقدرتك على التحكم في جهاز Mac الخاص بك. تعلم الأوامر الأساسية، استخدم الاختصارات، وقم بتخصيص الطرفية لتناسب احتياجاتك. مع الممارسة، ستصبح ماهرًا في استخدام سطر الأوامر وستتمكن من القيام بالعديد من المهام بسرعة وكفاءة.
نتمنى أن يكون هذا الدليل الشامل قد زودك بالمعرفة اللازمة للبدء في استخدام سطر الأوامر على نظام macOS. حظًا سعيدًا في مغامرتك في عالم سطر الأوامر!
**ملاحظة هامة:** هذا الدليل يهدف إلى توفير معلومات عامة. قد تختلف بعض الأوامر والخيارات قليلاً اعتمادًا على إصدار macOS الذي تستخدمه. دائمًا ما يكون من الأفضل الرجوع إلى دليل المستخدم الخاص بنظام التشغيل الخاص بك للحصول على معلومات دقيقة ومحدثة.