قد يبدو تعلم سطر الأوامر Command Line مهمة شاقة، ولكنه مهارة يمكن أن تزيد من إنتاجيتك وكفاءتك في إدارة جهاز الكمبيوتر والخوادم بشكل كبير. في هذا الدليل الشامل، سنغطي كل شيء من الأساسيات إلى التقنيات المتقدمة، مما يضمن لك أن تصبح محترفًا في سطر الأوامر Command Line.
فهرس المحتويات
- مقدمة إلى سطر الأوامر Command Line
- الأوامر الأساسية
- عرض الملفات وتحريرها
- إدارة العمليات
- أوامر الشبكة
- الأذونات والملكية
- البحث عن الملفات والنصوص
- الأرشفة والضغط
- استخدام مديري الحزم
- الأوامر المتقدمة
- البرمجة النصية باستخدام Bash
- عمليات الملفات المتقدمة
- مراقبة النظام والإدارة
- تكوين الشبكة والاتصالات
- التحكم في الإصدار باستخدام Git
- استخدام
cron
للمهام المجدولة - إدارة المستخدمين والمجموعات
- التعددية الطرفية باستخدام
tmux
- الأمان والتشفير
- الحاويات باستخدام Docker
- معالجة النصوص
- مراقبة الأداء
- التعلم المستمر والممارسة
١. مقدمة إلى سطر الأوامر Command Line
سطر الأوامر Command Line هو واجهة نصية لجهاز الكمبيوتر الخاص بك. يسمح لك بالتفاعل مع نظام التشغيل عن طريق كتابة الأوامر. سواء كنت تستخدم Windows أو Mac أو Linux، فإن إتقان سطر الأوامر يمكن أن يفتح عالمًا من الإمكانيات.
فتح سطر الأوامر
- Windows: افتح
Command Prompt
عن طريق كتابةcmd
في قائمة البدء. - Mac/Linux: افتح
Terminal
من مجلد التطبيقات / الأدوات أو بالضغط علىCtrl + Alt + T
.
٢. الأوامر الأساسية
التنقل في الأدلة
pwd
: يعرض الدليل الحالي الخاص بك.
pwd
ls
: يعرض الملفات والأدلة في الدليل الحالي.
ls
cd
: يغير الدليل الحالي.
cd directory_name
- انتقل إلى دليل مستوى سابق:
cd ..
- انتقل إلى الدليل الرئيسي:
cd ~
إدارة الملفات والأدلة
mkdir
: ينشئ دليلًا جديدًا.
mkdir new_directory
touch
: ينشئ ملفًا فارغًا جديدًا.
touch new_file.txt
cp
: ينسخ الملفات أو الأدلة.
cp source_file destination
mv
: ينقل أو يعيد تسمية الملفات أو الأدلة.
mv source_file destination
rm
: يحذف الملفات أو الأدلة.
rm file_name
- إزالة دليل ومحتوياته:
rm -r directory_name
٣. عرض الملفات وتحريرها
cat
: يعرض محتويات الملف.
cat file_name
nano
: يفتح محرر نصوص لتحرير الملفات (شائع في Mac وLinux).
nano file_name
type
(Windows): يعرض محتويات الملف.
type file_name
٤. إدارة العمليات
ps
: يسرد العمليات الجارية.
ps
top
: يعرض معلومات النظام في الوقت الحقيقي، بما في ذلك العمليات الجارية (Linux/Mac).
top
tasklist
: يسرد العمليات الجارية (Windows).
tasklist
٥. أوامر الشبكة
ping
: يتحقق من الاتصال بمضيف الشبكة.
ping example.com
ifconfig
(Linux/Mac) /ipconfig
(Windows): يعرض تكوين الشبكة.
ifconfig
ipconfig
٦. الأذونات والملكية
chmod
: يغير أذونات الملفات.
chmod 755 file_name
chown
: يغير ملكية الملفات (Linux/Mac).
chown user:group file_name
٧. البحث عن الملفات والنصوص
find
: يبحث عن الملفات في تسلسل الدليل.
find . -name file_name
grep
: يبحث عن النص داخل الملفات.
grep 'search_text' file_name
٨. الأرشفة والضغط
tar
: يؤرشف الملفات.
tar -czvf archive_name.tar.gz directory_name
gzip
: يضغط الملفات.
gzip file_name
٩. استخدام مديري الحزم
apt-get
(Debian/Ubuntu): يثبت ويحدث ويزيل الحزم.
sudo apt-get install package_name
yum
(RHEL/CentOS): يثبت ويحدث ويزيل الحزم.
sudo yum install package_name
brew
(Mac): يثبت ويحدث ويزيل الحزم.
brew install package_name
١٠. الأوامر المتقدمة
ssh
: يتصل بخادم بعيد.
ssh user@hostname
curl
: ينقل البيانات من أو إلى خادم.
curl -O http://example.com/file
wget
: ينزل الملفات من الويب.
wget http://example.com/file
١١. البرمجة النصية باستخدام Bash
إنشاء نص برمجي
- أنشئ ملفًا جديدًا بامتداد
.sh
:
touch script.sh
- افتح الملف في محرر نصوص (مثل
nano
):
nano script.sh
- أضف السطر الأول واكتب النص البرمجي:
#!/bin/bash
echo "Hello, World!"
- احفظ وأغلق المحرر. اجعل النص البرمجي قابلاً للتنفيذ:
chmod +x script.sh
- شغل النص البرمجي:
./script.sh
مثال: نص احتياطي
#!/bin/bash
# تعريف المتغيرات
SOURCE="/path/to/source"
DESTINATION="/path/to/destination/backup-$(date +%F).tar.gz"
# إنشاء النسخة الاحتياطية
tar -czvf $DESTINATION $SOURCE
# طباعة الرسالة
echo "Backup created at $DESTINATION"
١٢. عمليات الملفات المتقدمة
البحث عن الملفات
find
: يجد الملفات بناءً على معايير مختلفة.
find /path/to/search -name "file_name"
find /path/to/search -type d # الأدلة
find /path/to/search -type f # الملفات
find /path/to/search -mtime -7 # تم التعديل في آخر 7 أيام
البحث داخل الملفات
grep
: يبحث عن الأنماط داخل الملفات.
grep "pattern" file_name
grep -r "pattern" /path/to/search # بشكل متكرر
grep -i "pattern"
file_name # غير حساس لحالة الأحرف
grep -n "pattern" file_name # عرض أرقام السطور
١٣. مراقبة النظام والإدارة
استخدام القرص
df
: يعرض استخدام مساحة القرص.
df -h # تنسيق قابل للقراءة البشرية
du
: يقدر استخدام مساحة الملفات.
du -sh /path/to/directory # تلخيص للدليل
إدارة العمليات
ps
: يعرض لقطة من العمليات الجارية.
ps aux # عرض مفصل
kill
: ينهي عملية.
kill process_id
kill -9 process_id # قتل بالقوة
سجلات النظام
tail
: يعرض نهاية الملف.
tail -f /var/log/syslog # مراقبة السجل في الوقت الحقيقي
dmesg
: يعرض سجل رسائل النواة.
dmesg | less
١٤. تكوين الشبكة والاتصالات
تكوين الشبكة
ifconfig
: يعرض أو يضبط واجهة الشبكة (Linux/Mac).
ifconfig
ip
: بديل حديث لـifconfig
.
ip addr show
اتصالات الشبكة
netstat
: يعرض اتصالات الشبكة، جداول التوجيه، إحصاءات الواجهة، اتصالات التنكر، وعضويات البث المتعدد.
netstat -tuln # عرض جميع المنافذ المستمعة
تنزيل الملفات
wget
: ينزل الملفات من الويب.
wget http://example.com/file
curl
: ينقل البيانات من أو إلى خادم.
curl -O http://example.com/file
١٥. التحكم في الإصدار باستخدام Git
تهيئة مستودع
- تهيئة مستودع Git جديد:
git init
- إضافة الملفات إلى منطقة التحضير:
git add file_name
- الالتزام بالملفات في المستودع:
git commit -m "Initial commit"
استنساخ مستودع
- استنساخ مستودع من خادم بعيد:
git clone https://github.com/user/repository.git
التشعب والدمج
- إنشاء فرع جديد:
git checkout -b new_branch
- دمج فرع في الفرع الحالي:
git merge branch_name
١٦. استخدام cron
للمهام المجدولة
cron
: جدولة المهام المستندة إلى الوقت في أنظمة التشغيل الشبيهة بـ Unix.
تحرير وظائف cron
- افتح محرر crontab:
crontab -e
- أضف وظيفة جديدة:
* * * * * /path/to/command # تشغيل كل دقيقة
0 0 * * * /path/to/command # تشغيل يوميًا عند منتصف الليل
١٧. إدارة المستخدمين والمجموعات
إدارة المستخدمين
useradd
: يضيف مستخدمًا جديدًا.
sudo useradd username
passwd
: يغير كلمة مرور المستخدم.
sudo passwd username
إدارة المجموعات
groupadd
: يضيف مجموعة جديدة.
sudo groupadd groupname
usermod
: يعدل عضوية المستخدم في مجموعة.
sudo usermod -aG groupname username
١٨. التعددية الطرفية باستخدام tmux
tmux
: مكرّر طرفية يتيح لك التبديل بين عدة برامج في طرفية واحدة، فصلها، وإعادة توصيلها لاحقًا.
أوامر tmux
الأساسية
- بدء جلسة جديدة:
tmux
- فصل من الجلسة:
Ctrl+b, d
- قائمة الجلسات:
tmux ls
- إعادة الاتصال بجلسة:
tmux attach-session -t session_name
١٩. الأمان والتشفير
استخدام gpg
للتشفير
gpg
: أداة للاتصالات الآمنة وتخزين البيانات.
# تشفير ملف
gpg -c file_name
# فك تشفير ملف
gpg file_name.gpg
استخدام ssh-keygen
لمفاتيح SSH
ssh-keygen
: ينشئ مفاتيح SSH.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- نسخ المفتاح العام إلى خادم بعيد:
ssh-copy-id user@hostname
٢٠. الحاويات باستخدام Docker
أوامر Docker الأساسية
docker
: أداة لإنشاء، نشر، وتشغيل التطبيقات باستخدام الحاويات.
# تشغيل حاوية
docker run -it ubuntu
# قائمة الحاويات الجارية
docker ps
# إيقاف حاوية
docker stop container_id
# إزالة حاوية
docker rm container_id
# قائمة الصور
docker images
# سحب صورة
docker pull image_name
٢١. معالجة النصوص
استخدام sort
, uniq
, و wc
sort
: يفرز سطور ملفات النص.
sort file_name
sort -r file_name # ترتيب عكسي
uniq
: يزيل السطور المكررة من ملف مرتب.
sort file_name | uniq
wc
: يعرض عدد الأسطر، الكلمات، والبايتات لكل ملف.
wc file_name
wc -l file_name # عدد الأسطر
wc -w file_name # عدد الكلمات
wc -c file_name # عدد البايتات
٢٢. مراقبة الأداء
استخدام htop
htop
: عارض العمليات التفاعلي.
htop
تحليل استخدام القرص باستخدام du
du
: يحلل استخدام القرص للملفات والأدلة.
du -h --max-depth=1 # تنسيق قابل للقراءة البشرية، مستوى واحد فقط
٢٣. التعلم المستمر والممارسة
لتصبح محترفًا في استخدام سطر الأوامر Command Line، عليك بالممارسة المنتظمة واستكشاف الأوامر والخيارات المختلفة المتاحة. استخدم أمر man
لقراءة الكتيبات والتعرف على مزيد من التفاصيل حول كل أمر.
- الممارسة: استخدم هذه الأوامر بانتظام وحاول أتمتة المهام باستخدام النصوص البرمجية.
- الاستكشاف: استخدم أمر
man
لقراءة الكتيبات والتعرف على مزيد من التفاصيل حول كل أمر.
man command_name
الخاتمة
إتقان سطر الأوامر Command Line يمكن أن يزيد بشكل كبير من إنتاجيتك ويسمح لك بتنفيذ مهام معقدة بسهولة. هذا الدليل يوفر نظرة شاملة على الأوامر والتقنيات الأساسية. ابدأ بالممارسة اليوم، وسرعان ما ستكون تتنقل في سطر الأوامر كالمحترف!