في هذا المقال، RHCSA الجزء 2: إدارة الملفات والمجلدات، سنستعرض بعض المهارات الأساسية التي يتطلبها المهام اليومية لمسؤول النظام.

إنشاء، حذف، نسخ، ونقل الملفات والمجلدات
إدارة الملفات والمجلدات هي كفاءة حاسمة يجب أن يمتلكها كل مسؤول نظام. ويشمل ذلك القدرة على إنشاء / حذف ملفات نصية من البداية (نواة تكوين كل برنامج) ومجلدات (حيث ستنظم الملفات والمجلدات الأخرى)، ومعرفة نوع الملفات الموجودة.
يمكن استخدام أمر touch ليس فقط لإنشاء ملفات فارغة، ولكن أيضًا لتحديث أوقات الوصول والتعديل للملفات الموجودة.

يمكنك استخدام file [اسم الملف]
لتحديد نوع الملف (سيكون هذا مفيدًا قبل تشغيل محرر النص المفضل لديك لتحريره).

و rm [اسم الملف]
لحذفه.

أما بالنسبة للمجلدات، يمكنك إنشاء مجلدات داخل مسارات موجودة باستخدام mkdir [اسم المجلد]
أو إنشاء مسار كامل باستخدام mkdir -p [/المسار/الكامل/إلى/المجلد]
.

عندما يتعلق الأمر بإزالة المجلدات، يجب التأكد من أنها فارغة قبل إصدار أمر rmdir [المجلد]
، أو استخدام الخيار الأكثر قوة (تعامل بحذر!) rm -rf [المجلد]
. سيقوم هذا الخيار الأخير بإزالة [المجلد]
بشكل تكراري وجميع محتوياته – لذا استخدمه على مسؤوليتك الخاصة.
توجيه الإدخال والإخراج والأنابيب
البيئة سطر الأوامر توفر ميزتين مفيدتين جدًا تسمح بإعادة توجيه المدخلات والمخرجات للأوامر من وإلى الملفات، وإرسال مخرجات الأمر إلى آخر، تُعرف على التوالي بالتحويل والأنابيب.
لفهم هذين المفهومين المهمين، يجب أولاً فهم الأنواع الثلاثة الأكثر أهمية من تدفقات الإدخال والإخراج (أو التسلسلات) من الأحرف، والتي في الواقع تعتبر ملفات خاصة، بمعنى *نيكس* للكلمة.
- المدخل القياسي (المعروف أيضًا باسم stdin) مرتبط بشكل افتراضي بلوحة المفاتيح. بعبارة أخرى، لوحة المفاتيح هي جهاز الإدخال القياسي لإدخال الأوامر إلى سطر الأوامر.
- المخرج القياسي (المعروف أيضًا باسم stdout) مرتبط بشكل افتراضي بالشاشة، الجهاز الذي “يستقبل” مخرجات الأوامر ويعرضها على الشاشة.
- الخطأ القياسي (المعروف أيضًا باسم stderr)، هو المكان الذي يتم إرسال رسائل الحالة للأمر إليه بشكل افتراضي، وهو أيضًا الشاشة.
في المثال التالي، ترسل مخرجات ls /var
إلى stdout (الشاشة)، فضلاً عن نتيجة ls /tecmint. ولكن في الحالة الأخيرة، يُعرض stderr.

لتحديد هذه الملفات الخاصة بسهولة أكبر، يتم تعيين معرف ملف لكل منها، وهو تمثيل مجرد يُستخدم للوصول إليها. الشيء الأساسي لفهمه هو أن هذه الملفات، مثل غيرها، يمكن تحويلها. ما يعنيه ذلك هو أنه يمكنك التقاط الناتج من ملف أو سكريبت وإرساله كإدخال إلى ملف آخر، أو أمر، أو سكريبت. سيسمح لك هذا بتخزين الإخراج على القرص، على سبيل المثال، لمعالجته لاحقًا أو تحليله.
لتحويل stdin (معرف الملف 0)، stdout (معرف الملف 1)، أو stderr (معرف الملف 2)، تتوفر العمليات التالية.
Redirection Operator | Effect |
> | Redirects standard output to a file containing standard output. If the destination file exists, it will be overwritten. |
>> | Appends standard output to a file. |
2> | Redirects standard error to a file containing standard output. If the destination file exists, it will be overwritten. |
2>> | Appends standard error to the existing file. |
&> | Redirects both standard output and standard error to a file; if the specified file exists, it will be overwritten. |
< | Uses the specified file as standard input. |
<> | The specified file is used for both standard input and standard output. |
على عكس التوجيه، يتم إجراء تركيب الأنابيب عن طريق إضافة شريط عمودي (|)
بعد أمر وقبل آخر.
تذكر:
- التوجيه يُستخدم لإرسال إخراج أمر إلى ملف، أو لإرسال ملف كإدخال لأمر.
- التركيب يُستخدم لإرسال إخراج أمر إلى أمر آخر كإدخال.
أمثلة على التوجيه والتركيب
المثال 1: توجيه إخراج أمر إلى ملف
ستكون هناك أوقات عندما تحتاج إلى تكرار قائمة من الملفات. للقيام بذلك، يمكنك أولاً حفظ تلك القائمة في ملف ثم قراءة ذلك الملف سطراً بسطر. بالرغم من أنه من الصحيح أنه يمكنك تكرار إخراج ls مباشرة، إلا أن هذا المثال يخدم لتوضيح التوجيه.
# ls -1 /var/mail > mail.txt

المثال 2: توجيه كل من stdout و stderr إلى /dev/null
في حال رغبنا في منع ظهور كل من stdout و stderr على الشاشة، يمكننا توجيه كل من وصفي الملف إلى /dev/null
. لاحظ كيف تتغير الناتج عند تنفيذ التوجيه لنفس الأمر.
# ls /var /tecmint # ls /var/ /tecmint &> /dev/null

المثال 3: استخدام ملف كإدخال لأمر
بينما يكون الصيغة الكلاسيكية لأمر cat كما يلي.
# cat [file(s)]
يمكنك أيضًا إرسال ملف كإدخال، باستخدام عامل التوجيه الصحيح.
# cat < mail.txt

المثال 4: إرسال ناتج أمر كإدخال لآخر
إذا كان لديك دليل كبير أو قائمة عمليات وترغب في القدرة على تحديد ملف معين أو عملية بنظرة سريعة، سترغب في توجيه القائمة إلى grep.
لاحظ أننا نستخدم الأنابيب في المثال التالي. الأول يبحث عن الكلمة المطلوبة، بينما الثاني سيقوم بإزالة الأمر grep
الفعلي من النتائج. يقوم هذا المثال بسرد جميع العمليات المرتبطة بمستخدم apache.
# ps -ef | grep apache | grep -v grep

Source:
https://www.tecmint.com/file-and-directory-management-in-linux/