CAT Command

هذا شرح أمر cat بشكل شامل وموسع للمبتدئين وبنفس الطريقة، مع أمثلة كثيرة داخل بلوكات كود + استخداماته الواقعية + أخطاء شائعة ونصائح.

1) ما هو أمر cat ولماذا نستخدمه؟

أمر cat اختصار لـ Concatenate
واستخدامه الأساسي:

  1. عرض محتوى ملف نصي في الطرفية (Terminal)
  2. دمج/تجميع عدة ملفات وعرضهم معًا
  3. إنشاء ملف أو إضافة نص لملف باستخدام إعادة التوجيه > و >>

ملاحظة: cat ممتاز للملفات الصغيرة والمتوسطة.
للملفات الكبيرة يُفضّل less لأنّه يسمح بالتمرير.

2) الصيغة العامة (Syntax)
cat [OPTIONS] [FILE...]
Bash
  • إذا أعطيته ملفًا → يعرضه
  • إذا أعطيته ملفات متعددة → يعرضها واحدًا بعد الآخر بالترتيب
  • إذا لم تعطِه ملفًا → ينتظر إدخال من لوحة المفاتيح (stdin)
3) عرض محتوى ملف واحد
إنشاء ملف للتجربة ثم عرضه
cd ~/project
echo "This is the first line."  > sample.txt
echo "This is the second line." >> sample.txt
echo "This is the third line."  >> sample.txt

cat sample.txt
Bash
4) عرض عدة ملفات (Concatenate)
إنشاء ملفين ثم عرضهم
echo "Line 1 in file1" > file1.txt
echo "Line 2 in file1" >> file1.txt

echo "Line 1 in file2" > file2.txt
echo "Line 2 in file2" >> file2.txt
Bash

عرض كل ملف:

cat file1.txt
cat file2.txt
Bash

دمج العرض (يعرض محتوى الملفين وراء بعض):

cat file1.txt file2.txt
Bash
5) دمج ملفات في ملف جديد (استخدام مهم جدًا)

بدل عرضهم على الشاشة، نجمعهم في ملف:

cat file1.txt file2.txt > merged.txt
Bash

تأكد:

cat merged.txt
Bash

> يعني: اكتب في ملف واستبدل محتواه بالكامل إذا كان موجودًا.

6) إضافة (Append) محتوى ملف لآخر
إضافة ملف كامل لآخر بدون مسح القديم
cat file2.txt >> file1.txt
Bash

تأكد:

cat file1.txt
Bash

>> يعني: أضف في نهاية الملف بدون حذف المحتوى القديم.

7) إنشاء ملف من الكتابة المباشرة باستخدام cat

هذه طريقة مفيدة لتكتب عدة أسطر بسرعة.

cat > notes.txt
Bash

الآن اكتب سطورًا (أنت تكتب داخل الطرفية)، مثل:

First line
Second line
Third line
Bash

ثم للخروج والحفظ اضغط:

  • Ctrl + D

تحقق:

cat notes.txt
Bash
8) إضافة نص لآخر ملف (Append) بطريقة تفاعلية
cat >> notes.txt
Bash

اكتب أسطر جديدة ثم:

  • Ctrl + D
9) خيارات مهمة في cat للمبتدئ
أ) ترقيم الأسطر: -n
cat -n sample.txt
Bash
ب) إظهار نهاية السطر بعلامة $: -E

مفيد لمعرفة الأسطر الفارغة أو المسافات:

cat -E sample.txt
Bash
ج) دمج الأسطر الفارغة المتكررة: -s
cat -s sample.txt
Bash
د) إظهار tab كـ ^I وبعض الرموز: -T و -A (اختياري)
cat -T sample.txt
cat -A sample.txt
Bash

-A غالبًا يعرض رموز غير مرئية (Tabs/Line endings) حسب النظام.

10) استخدامات عملية شائعة جدًا
أ) عرض ملف إعدادات بسرعة
cat ~/.bashrc
Bash
ب) عرض آخر/أول سطور؟ (هنا الأفضل head/tail)

لكن ممكن مع cat + pipe:

cat sample.txt | head
cat sample.txt | tail
Bash

الأفضل مباشرة:

head sample.txt
tail sample.txt
Bash
ج) دمج ملفات لعمل ملف واحد (Logs/Configs)
cat part1.log part2.log part3.log > full.log
Bash
11) أخطاء شائعة ونصائح مهمة
أ) استخدام cat لملف كبير جدًا

سيملأ الشاشة بسرعة. الأفضل:

less bigfile.log
Bash
ب) خطأ: “No such file or directory”

يعني الملف غير موجود أو الاسم خطأ:

ls
pwd
Bash
ج) خطر كبير: إعادة توجيه على نفس الملف

هذا خطأ يقع فيه كثير:

cat file1.txt file2.txt > file1.txt
Bash

هذا قد يفرغ file1.txt قبل القراءة منه.

✅ الحل: اكتب لملف جديد:

cat file1.txt file2.txt > merged.txt
mv merged.txt file1.txt
Bash
12) تدريب سريع (Practice)

نفّذ هذا التدريب:

cd ~/project
mkdir -p cat_practice
cd cat_practice

echo "A1" > a.txt
echo "A2" >> a.txt

echo "B1" > b.txt
echo "B2" >> b.txt

# 1) عرض ملف
cat a.txt

# 2) عرض ملفين معًا
cat a.txt b.txt

# 3) دمجهم في ملف جديد
cat a.txt b.txt > merged.txt
cat merged.txt

# 4) إضافة سطرين بطريقة تفاعلية
cat >> merged.txt
# اكتب سطرين ثم Ctrl+D

# 5) عرض مع ترقيم
cat -n merged.txt
Bash
هل الشرح الأصلي كافي؟

نعم كبداية، لكنه يحتاج توسعة للمبتدئ في نقاط مهمة مثل:

  • الفرق بين > و >>
  • إنشاء ملف من الطرفية بـ cat > file
  • التحذير من دمج ملفات داخل نفس الملف
  • متى تستخدم less بدل cat
  • خيارات مفيدة مثل -n و -E و -s