هذا شرح أمر cat بشكل شامل وموسع للمبتدئين وبنفس الطريقة، مع أمثلة كثيرة داخل بلوكات كود + استخداماته الواقعية + أخطاء شائعة ونصائح.
1) ما هو أمر cat ولماذا نستخدمه؟
أمر cat اختصار لـ Concatenate
واستخدامه الأساسي:
- عرض محتوى ملف نصي في الطرفية (Terminal)
- دمج/تجميع عدة ملفات وعرضهم معًا
- إنشاء ملف أو إضافة نص لملف باستخدام إعادة التوجيه
>و>>
ملاحظة:
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.txtBash4) عرض عدة ملفات (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.txtBashعرض كل ملف:
cat file1.txt
cat file2.txtBashدمج العرض (يعرض محتوى الملفين وراء بعض):
cat file1.txt file2.txtBash5) دمج ملفات في ملف جديد (استخدام مهم جدًا)
بدل عرضهم على الشاشة، نجمعهم في ملف:
cat file1.txt file2.txt > merged.txtBashتأكد:
cat merged.txtBash
>يعني: اكتب في ملف واستبدل محتواه بالكامل إذا كان موجودًا.
6) إضافة (Append) محتوى ملف لآخر
إضافة ملف كامل لآخر بدون مسح القديم
cat file2.txt >> file1.txtBashتأكد:
cat file1.txt
Bash
>>يعني: أضف في نهاية الملف بدون حذف المحتوى القديم.
7) إنشاء ملف من الكتابة المباشرة باستخدام cat
هذه طريقة مفيدة لتكتب عدة أسطر بسرعة.
cat > notes.txtBashالآن اكتب سطورًا (أنت تكتب داخل الطرفية)، مثل:
First line
Second line
Third line
Bashثم للخروج والحفظ اضغط:
- Ctrl + D
تحقق:
cat notes.txt
Bash8) إضافة نص لآخر ملف (Append) بطريقة تفاعلية
cat >> notes.txtBashاكتب أسطر جديدة ثم:
- Ctrl + D
9) خيارات مهمة في cat للمبتدئ
أ) ترقيم الأسطر: -n
cat -n sample.txtBashب) إظهار نهاية السطر بعلامة $: -E
مفيد لمعرفة الأسطر الفارغة أو المسافات:
cat -E sample.txtBashج) دمج الأسطر الفارغة المتكررة: -s
cat -s sample.txtBashد) إظهار tab كـ ^I وبعض الرموز: -T و -A (اختياري)
cat -T sample.txt
cat -A sample.txtBash
-Aغالبًا يعرض رموز غير مرئية (Tabs/Line endings) حسب النظام.
10) استخدامات عملية شائعة جدًا
أ) عرض ملف إعدادات بسرعة
cat ~/.bashrcBashب) عرض آخر/أول سطور؟ (هنا الأفضل head/tail)
لكن ممكن مع cat + pipe:
cat sample.txt | head
cat sample.txt | tailBashالأفضل مباشرة:
head sample.txt
tail sample.txtBashج) دمج ملفات لعمل ملف واحد (Logs/Configs)
cat part1.log part2.log part3.log > full.logBash11) أخطاء شائعة ونصائح مهمة
أ) استخدام cat لملف كبير جدًا
سيملأ الشاشة بسرعة. الأفضل:
less bigfile.logBashب) خطأ: “No such file or directory”
يعني الملف غير موجود أو الاسم خطأ:
ls
pwdBashج) خطر كبير: إعادة توجيه على نفس الملف
هذا خطأ يقع فيه كثير:
cat file1.txt file2.txt > file1.txtBashهذا قد يفرغ file1.txt قبل القراءة منه.
✅ الحل: اكتب لملف جديد:
cat file1.txt file2.txt > merged.txt
mv merged.txt file1.txtBash12) تدريب سريع (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.txtBashهل الشرح الأصلي كافي؟
نعم كبداية، لكنه يحتاج توسعة للمبتدئ في نقاط مهمة مثل:
- الفرق بين
>و>> - إنشاء ملف من الطرفية بـ
cat > file - التحذير من دمج ملفات داخل نفس الملف
- متى تستخدم
lessبدلcat - خيارات مفيدة مثل
-nو-Eو-s