الوحدة 1: الأوامر الأساسية في لينكس

تعلم الأوامر الأساسية للتعامل مع نظام لينكس والتنقل بين المجلدات وإدارة الملفات

الوقت المقدر: 3-4 ساعات 12 أمر أساسي مستوى: مبتدئ
تقدم الوحدة 0%

مقدمة

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

ملاحظة: في أمثلة الأوامر أدناه، يشير الرمز $ إلى موجه الأوامر (prompt) ولا يجب كتابته عند تنفيذ الأوامر.

ما ستتعلمه في هذه الوحدة:

عرض المسار الحالي: pwd

يعرض المسار الكامل للمجلد الحالي (Print Working Directory).

Terminal
pwd
شرح الأمر:

يعرض pwd المسار الكامل للمجلد الحالي الذي تعمل فيه، بدءاً من المجلد الجذر (/).

user@server:~$
pwd
/home/user
  • عرض محتويات المجلد: ls

    يعرض قائمة بالملفات والمجلدات الموجودة في المجلد الحالي أو المجلد المحدد.

    Terminal
    ls
    شرح الأمر:

    يعرض ls قائمة بالمحتويات الموجودة في المجلد الحالي. يمكن استخدامه مع مسارات محددة لعرض محتويات مجلدات أخرى.

    user@server:~$
    ls
    Documents Downloads Music Pictures Videos file1.txt file2.pdf
    أمثلة أخرى:
    Terminal
    # عرض المحتويات بتفاصيل أكثر (الأذونات، المالك، الحجم، etc.)
    ls -l
    
    # عرض جميع الملفات بما فيها الملفات المخفية
    ls -a
    
    # دمج الخيارين السابقين لعرض جميع الملفات مع التفاصيل
    ls -la
    
    # عرض محتويات مجلد معين
    ls /var/www
    
    # عرض المحتويات حسب حجم الملف (من الأكبر إلى الأصغر)
    ls -lS
    
    # عرض المحتويات حسب وقت التعديل (من الأحدث إلى الأقدم)
    ls -lt
  • تغيير المجلد الحالي: cd

    يستخدم لتغيير المجلد الحالي (الدليل الحالي) في الطرفية.

    Terminal
    cd Documents
    شرح الأمر:

    يغير cd المجلد الحالي إلى المسار المحدد. بدون تحديد مسار، يعود إلى المجلد الرئيسي للمستخدم.

    user@server:~$
    cd Documents
    user@server:~/Documents$
    أمثلة أخرى:
    Terminal
    # الانتقال إلى المجلد الأب (المستوى الأعلى)
    cd ..
    
    # الانتقال إلى المجلد الرئيسي للمستخدم
    cd ~
    
    # الانتقال إلى مسار مطلق
    cd /var/www
    
    # العودة إلى المجلد السابق
    cd -
    
    # الانتقال إلى مجلد root
    cd /
  • إنشاء مجلد جديد: mkdir

    ينشئ مجلداً (دليل) جديداً.

    Terminal
    mkdir new_folder
    شرح الأمر:

    ينشئ mkdir مجلداً جديداً بالاسم المحدد. يمكن استخدام الخيار -p لإنشاء مجلدات متداخلة.

    user@server:~$
    mkdir my_project
    user@server:~$
    ls
    Documents Downloads Music my_project Pictures Videos
    أمثلة أخرى:
    Terminal
    # إنشاء هيكل مجلدات متداخل
    mkdir -p project/{src,doc,test}
    
    # إنشاء مجلدات متعددة في وقت واحد
    mkdir folder1 folder2 folder3
    
    # إنشاء مجلد بأذونات محددة
    mkdir -m 755 shared_folder
  • إنشاء ملف جديد: touch

    ينشئ ملفاً جديداً فارغاً أو يحدث وقت التعديل لملف موجود.

    Terminal
    touch new_file.txt
    شرح الأمر:

    ينشئ touch ملفاً جديداً فارغاً إذا لم يكن الملف موجوداً. إذا كان الملف موجوداً، يقوم بتحديث وقت التعديل إلى الوقت الحالي.

    user@server:~$
    touch new_file.txt
    user@server:~$
    ls -l new_file.txt
    -rw-r--r-- 1 user user 0 Sep 13 10:30 new_file.txt
    أمثلة أخرى:
    Terminal
    # إنشاء عدة ملفات في وقت واحد
    touch file1.txt file2.txt file3.txt
    
    # إنشاء ملف بوقت محدد
    touch -t 202301011200 file.txt
    
    # تغيير وقت الوصول فقط (بدون وقت التعديل)
    touch -a file.txt
  • نسخ الملفات والمجلدات: cp

    ينسخ الملفات أو المجلدات من مكان إلى آخر.

    Terminal
    cp file.txt copy_of_file.txt
    شرح الأمر:

    ينسخ cp الملفات أو المجلدات من المصدر إلى الوجهة. لنسخ المجلدات، يجب استخدام الخيار -r.

    user@server:~$
    cp document.txt document_backup.txt
    user@server:~$
    cp -r my_project my_project_backup
    أمثلة أخرى:
    Terminal
    # نسخ مجلد بشكل متكرر (بما فيه المحتويات)
    cp -r source_dir destination_dir
    
    # نسخ مع الحفاظ على أذونات الملف
    cp -p file.txt backup/
    
    # نسخ عدة ملفات إلى مجلد
    cp file1.txt file2.txt file3.txt destination_folder/
    
    # النسخ التفاعلي (يسأل قبل استبدال الملفات)
    cp -i file.txt destination/
  • نقل/إعادة تسمية الملفات: mv

    ينقل الملفات أو المجلدات من مكان إلى آخر أو يعيد تسميتها.

    Terminal
    mv oldname.txt newname.txt
    شرح الأمر:

    ينقل mv الملفات أو المجلدات من مكان إلى آخر. إذا كان المصدر والوجهة في نفس المجلد، فإنه يعيد تسمية الملف أو المجلد.

    user@server:~$
    mv document.txt renamed_document.txt
    user@server:~$
    mv file.txt Documents/
    أمثلة أخرى:
    Terminal
    # نقل عدة ملفات إلى مجلد
    mv file1.txt file2.txt file3.txt destination_folder/
    
    # إعادة تسمية مجلد
    mv old_dir new_dir
    
    # النقل التفاعلي (يسأل قبل استبدال الملفات)
    mv -i file.txt destination/
    
    # النقل مع النسخ الاحتياطي للملفات المستبدلة
    mv -b file.txt destination/
  • حذف الملفات والمجلدات: rm

    يحذف الملفات أو المجلدات.

    Terminal
    rm file.txt
    شرح الأمر:

    يحذف rm الملفات أو المجلدات. لحذف المجلدات، يجب استخدام الخيار -r. كن حذراً لأن الحذف نهائي ولا يمكن استعادته.

    user@server:~$
    rm temporary_file.txt
    user@server:~$
    rm -r old_directory
    تحذير: كن حذرًا عند استخدام rm خاصة مع الخيار -r (للمجلدات) لأنه يحذف الملفات والمجلدات بشكل دائم ولا يمكن استعادتها من سلة المهملات.
    أمثلة أخرى:
    Terminal
    # حذف مجلد ومحتوياته بشكل متكرر
    rm -r directory_name
    
    # حذف ملف مع طلب تأكيد
    rm -i important_file.txt
    
    # حذف قسري بدون طلب تأكيد
    rm -f file.txt
    
    # حذف عدة ملفات في وقت واحد
    rm file1.txt file2.txt file3.txt
    
    # حذف جميع الملفات بنمط معين
    rm *.tmp
  • عرض محتويات الملف: cat

    يعرض محتويات الملف (أو الملفات) في الطرفية.

    Terminal
    cat file.txt
    شرح الأمر:

    يعرض cat محتويات الملف (أو الملفات) المحددة مباشرة في الطرفية. يمكن استخدامه أيضًا لدمج محتويات عدة ملفات.

    user@server:~$
    cat file1.txt
    This is the content of file1.txt This is the second line of the file And this is the third and final line
    أمثلة أخرى:
    Terminal
    # عرض محتويات عدة ملفات بالتسلسل
    cat file1.txt file2.txt
    
    # دمج محتويات ملفين في ملف جديد
    cat file1.txt file2.txt > combined.txt
    
    # إنشاء ملف جديد وإدخال محتواه من الطرفية (اضغط Ctrl+D لحفظ الملف)
    cat > newfile.txt
    
    # إضافة محتوى إلى نهاية ملف موجود
    cat >> existingfile.txt
    
    # عرض محتويات الملف مع ترقيم الأسطر
    cat -n file.txt
  • عرض الملفات صفحة بصفحة: more و less

    يعرض محتويات الملف صفحة بصفحة للتمكن من قراءة الملفات الكبيرة.

    Terminal
    less large_file.txt
    شرح الأمر:

    يعرض less محتويات الملف صفحة بصفحة، مما يسمح بالتنقل خلال الملف بسهولة. more هو أمر مشابه ولكن بأقل ميزات.

    user@server:~$
    less /var/log/syslog
    (محتويات الملف تعرض صفحة بصفحة - استخدم الأسهم للتنقل، زر 'q' للخروج)
    أمثلة أخرى:
    Terminal
    # عرض الملف مع إمكانية البحث
    less +F /var/log/syslog
    
    # فتح الملف من سطر محدد
    less +50 /var/log/syslog
    
    # عرض الملف مع عرض الأرقام
    less -N /var/log/syslog
    
    # استخدام more لعرض الملف (واجهة أبسط)
    more /var/log/syslog
    ملاحظة: less أكثر تطوراً من more ويوصى باستخدامه. أثناء عرض الملف بـ less، يمكنك استخدام:
    • زر Space للانتقال للصفحة التالية
    • زر B للعودة للصفحة السابقة
    • زر / للبحث داخل الملف
    • زر Q للخروج
  • عرض بداية الملف: head

    يعرض السطور الأولى من الملف.

    Terminal
    head file.txt
    شرح الأمر:

    يعرض head السطور الأولى من الملف (10 سطور افتراضيًا). مفيد لعرض بداية الملفات الكبيرة.

    user@server:~$
    head -5 largefile.log
    2023-09-13 08:00:01 - System started 2023-09-13 08:00:05 - Services initialized 2023-09-13 08:00:10 - Network configured 2023-09-13 08:00:15 - User session started 2023-09-13 08:00:20 - Applications loaded
    أمثلة أخرى:
    Terminal
    # عرض أول 20 سطر من الملف
    head -n 20 file.txt
    
    # عرض أول 5 سطور من عدة ملفات
    head -n 5 file1.txt file2.txt
    
    # عرض أول 1 كيلوبايت من الملف
    head -c 1k file.txt
  • عرض نهاية الملف: tail

    يعرض السطور الأخيرة من الملف.

    Terminal
    tail file.txt
    شرح الأمر:

    يعرض tail السطور الأخيرة من الملف (10 سطور افتراضيًا). مفيد جدًا لعرض نهاية الملفات ومراقبة السجلات.

    user@server:~$
    tail -3 largefile.log
    2023-09-13 23:59:55 - User session ended 2023-09-13 23:59:58 - Services stopped 2023-09-13 23:59:59 - System shutdown
    أمثلة أخرى:
    Terminal
    # متابعة الملف في الوقت الحقيقي (مفيد لمراقبة السجلات)
    tail -f /var/log/syslog
    
    # عرض آخر 15 سطر من الملف
    tail -n 15 file.txt
    
    # متابعة الملف مع عرض 10 أسطر أولاً ثم المتابعة
    tail -f -n 10 file.log
    
    # عرض آخر 500 بايت من الملف
    tail -c 500 file.txt
  • اختبر فهمك

    1. أي أمر تستخدم لعرض المحتويات المخفية في مجلد مع التفاصيل الكاملة؟

    2. ما هو الأمر المناسب للعودة إلى المجلد الرئيسي للمستخدم؟

    3. كيف يمكنك متابعة تحديثات ملف السجل في الوقت الحقيقي؟