شرح الأمر cat

من أحد أهم الأوامر المستخدمة في لينيكس هو الأمر cat. هذا الأمر سوف تستخدمه في قراءة كل شيء تقريبا. ولكن هل تعلم بأنه يقوم بما هو أكثر من مجرد القراءة؟

مقدمة تاريخية

ظهر الأمر cat للمرة الأولى في العام 1971 قبل أكثر من 50 عام!

الأمر توفر للمرة الأولى في النسخة الأولى من من نظام يونكس وقد قام وقتها باستبدال الأمر pr. بعدها توفرت بعض الأدوات التي جاءت لاستبدال أو تحسين عمل cat مثل bat و tac ولكن يبقى cat مستخدم بقوة وكأنه محفور في ذاكرة مستخدمي لينيكس.

التسمية لمن يتساءل جاءت من الكلمة اللاتينية “concatenate” ومعناها الأقرب للفهم هو “تسلسل” والتسمية هي لأن الأمر يقوم بالقراءة والكتابة بشكل تسلسلي.

استخدام الأمر cat

كتابة الملفات النصية

الأمر cat بدون أي إضافات، لا يقوم بعمل بعمل أي شيئ. يمكنك كتابة الأمر في الطرفية والضغط على Enter وسترى بأنه لا يقوم بعمل أي شيء. الآن البرنامج يقوم بالاستماع على مدخلاتك في الطرفية لا أكثر. يمكنك كتابه أي شيء في الطرفية والضغط على Enter وسترى أن البرنامج يقوم بتكرار ما تقوم بكتابته.

لكتابة ملف باستخدام الأمر cat، يمكنك تنفيذ الأمر التالي:

cat > file.txt

يمكنك كتابة ما تشاء، وبعدها قم بالضغط على Ctrl+D لإنهاء البرنامج.

يمكنك أيضا استخدام صيغة مستندات Here في الكتابة. هذا يعني أنه يمكنك تنفيذ الأمر التالي:

cat > file.txt << EOF

ومن ثم كتابة ما تشاء. عند الانتهاء من الكتابة، يمكنك كتابة EOF في نهاية المستند والضغط على Enter وسيتم إنهاء البرنامج بشكل تلقائي وحفظ المستند.

إضافة نص لملف قائم

يمكنك من خلال الأمر cat إضافة نص إلى مستند نصي موجود بالفعل. يمكنك تنفيذ الأمر التالي على الملفات النصية والبدء بكتابة ما تشاء ثم اضغط على Ctrl+D للإنهاء:

cat >> readme.txt

قراءة ملف

من أهم الأمور التي سوف تستخدم الأمر cat بها هو قراءة ملف ما. من خلال هذه الخاصية يمكنك وبكل سهولة عرض الملف على الشاشة:

cat file.txt

ولكن بشكل عام هذه الخاصية مفيده للملفات الصغيرة التي يمكن عرضها على الشاشة. ولكن ماذا لو كان لديك ملف فيه 50 ألف سطر؟

هنا يمكنك استخدم أوامر مثل head أو less أو tail لعرض جزء أو كامل أجزاء الملف. ولكن فائدة الأمر cat هنا هو إمكانية تمرير المخرجات إلى برنامج مثل grep لقراءة جزء من الملف. مثلا، عند بحثي عن محاولات اختراق أو دخول خبيث إلى لينيكس العرب، أستخدم الأمر التالي:

cat access.log | grep POST

دمج ملفين معاً

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

 cat file1.txt file2.txt file3.txt > file4.txt

في حالات أخرى، قد تحتاج إلى دمج وترتيب محتوى الملفات أبجدياً، يمكنك استغلال الأمر sort للترتيب كما في الأمر التالي:

cat file1.txt file2.txt file3.txt | sort > file4.txt