التعامل مع الملفات والمجلدات (Navigation, CRUD Operations)


التعامل مع الملفات والمجلدات (Navigation, CRUD Operations)

يا هلا فيك! بما إنك هنا، غالباً ودك تتعمق شوي في أساسيات التعامل مع الملفات والمجلدات في Linux. الموضوع بسيط ومهم جداً، وهو مفتاحك لأي شغل جاد على السيرفرات أو حتى جهازك الشخصي اللي شغال بـ Linux. بنغطي كيف تتنقل بين المجلدات، وكيف تسوي، تقرأ، تعدل، وتحذف (CRUD) الملفات والمجلدات.

التنقل بين الملفات والمجلدات (Navigation)

هذي الأوامر هي خبزك اليومي على الطرفية.

أين أنا؟ pwd

أول شي لازم تعرف وين أنت بالضبط في شجرة المجلدات.

pwd

pwd اختصار لـ "Print Working Directory". بيوريك المسار الكامل للمجلد اللي أنت فيه.

شوف اللي حولك! ls

عشان تشوف محتويات المجلد اللي أنت فيه، استخدم ls.

ls

خيارات مفيدة مع ls:

  • ls -l: عرض تفاصيل أكثر (permissions, owner, size, date).
  • ls -a: عرض كل الملفات والمجلدات، بما فيها المخفية (اللي تبدأ بنقطة .).
  • ls -lh: نفس -l بس يخلي حجم الملفات مقروء أكثر (Human-readable).
  • ls -R: عرض محتويات المجلد والمجلدات الفرعية بشكل متكرر (Recursive).
ls -lah

الملفات والمجلدات اللي تبدأ بنقطة (مثل .bashrc) تعتبر مخفية بشكل افتراضي.

غير مكانك! cd

عشان تتنقل بين المجلدات، استخدم cd (Change Directory).

  • cd /var/www/html: الانتقال لمسار مطلق (Absolute Path).
  • cd my_project: الانتقال لمسار نسبي (Relative Path) داخل المجلد الحالي.
  • cd ..: الرجوع للمجلد الأب (Parent Directory).
  • cd .: البقاء في نفس المجلد (ما يسوي شي، بس حلو تعرفه).
  • cd ~: الرجوع لمجلد المستخدم الرئيسي (Home Directory). تقدر تكتب cd لحالها بتعطيك نفس النتيجة.
  • cd -: الرجوع للمجلد اللي كنت فيه قبل الأمر الأخير cd. مفيد جداً!
cd /etc
pwd
cd -
pwd

عمليات CRUD على الملفات والمجلدات

هنا الشغل الجد!

إنشاء (Create)

كيف تسوي ملفات ومجلدات جديدة.

إنشاء ملف: touch

لإنشاء ملف فارغ جديد، أو لتحديث وقت آخر تعديل لملف موجود.

touch new_file.txt
touch another_file.sh
إنشاء مجلد: mkdir

لإنشاء مجلد (Directory).

mkdir my_new_folder

لو حبيت تسوي مجلدات فرعية مرة وحدة:

mkdir -p projects/web/frontend

mkdir -p بينشئ أي مجلدات أب غير موجودة في المسار المحدد.

قراءة (Read)

كيف تشوف محتوى الملفات.

عرض محتوى ملف: cat

لعرض محتوى ملف كامل على الشاشة. مفيد للملفات الصغيرة.

cat /etc/os-release
عرض محتوى ملف بصفحات: less و more

للملفات الكبيرة، cat بيخلي النص يطير فوق بسرعة. less و more يخلونك تتصفح المحتوى صفحة صفحة.

less /var/log/syslog

في less، اضغط Space للأسفل، b للأعلى، و q للخروج.

عرض بداية أو نهاية ملف: head و tail

تبغى تشوف أول 10 أسطر؟ أو آخر 10 أسطر؟

head /etc/passwd
tail /var/log/auth.log

تقدر تحدد عدد الأسطر اللي تبغاها باستخدام -n:

head -n 5 /etc/passwd
tail -n 20 /var/log/auth.log

tail -f (follow) مفيد جداً لمراقبة سجلات (logs) الملفات في الوقت الفعلي.

تعديل (Update) / نقل (Move) / نسخ (Copy)

هنا نقصد التعديل على موقع أو اسم الملف/المجلد، أو نسخه.

نسخ ملفات ومجلدات: cp

لنسخ ملف أو مجلد. الملف الأصلي يبقى مكانه.

cp source_file.txt destination_file.txt
cp /etc/hosts ~/my_hosts_backup

لنسخ مجلد ومحتوياته، لازم تستخدم -r (recursive):

cp -r my_folder new_location/

cp -i يسألك قبل ما ينسخ فوق ملف موجود بنفس الاسم.

نقل أو إعادة تسمية ملفات ومجلدات: mv

لتحريك (نقل) ملف أو مجلد من مكان لآخر، أو لإعادة تسميته. الملف الأصلي بيختفي من مكانه القديم.

إعادة تسمية ملف:

mv old_name.txt new_name.txt

نقل ملف لمجلد آخر:

mv file.txt my_new_folder/

نقل مجلد لمكان آخر:

mv my_old_folder /var/backup/

mv -i يسألك قبل ما ينقل فوق ملف موجود بنفس الاسم.

حذف (Delete)

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

حذف ملفات: rm

لحذف ملفات. انتبه! الملفات المحذوفة بـ rm ما تروح لسلة المحذوفات، يعني ما تقدر ترجعها بسهولة!

rm unwanted_file.txt

خيارات مفيدة:

  • rm -i: يسألك تأكيد قبل الحذف.
  • rm -f: يحذف الملف بالقوة بدون سؤال (Force). استخدمها بحذر شديد!
rm -i important_file.txt
حذف مجلدات فارغة: rmdir

لإزالة مجلدات فارغة فقط.

rmdir empty_folder
حذف مجلدات غير فارغة: rm -r

لإزالة مجلد ومحتوياته (ملفات ومجلدات فرعية). هذا الأمر خطير جداً لو استخدمته بالغلط!

rm -r my_project_folder

لزيادة الأمان، استخدم -i معها:

rm -ri my_project_folder

الجملة الشهيرة "Never run rm -rf /" ليست مجرد مزحة، بل تحذير جاد جداً. هذا الأمر يحذف كل شيء على نظامك!

لمسة بسيطة على الصلاحيات (Permissions)

صحيح إنها مو جزء من CRUD المباشر، بس مهم تعرف إن لكل ملف ومجلد صلاحيات تحدد مين يقدر يسوي إيش عليه.

  • chmod: لتغيير صلاحيات الملفات والمجلدات.
  • chown: لتغيير مالك الملف أو المجموعة المالكة.

هذي يبغالها درس لحالها، بس حلو تكون عارف بوجودها.

خاتمة

كدا تكون غطيت أساسيات التعامل مع الملفات والمجلدات في Linux. تدرب على هذي الأوامر كثير، وبتصير جزء من طبيعتك. السر في Linux هو الممارسة. بالتوفيق!