Linux Tutorial for Beginners: Introduction to Linux Operating System
جدول المحتويات:
diff
هي أداة مساعدة لسطر الأوامر تتيح لك مقارنة ملفين بسطر. ويمكن أيضا مقارنة محتويات الدلائل.
يتم استخدام الأمر
diff
بشكل شائع لإنشاء تصحيح يحتوي على الاختلافات بين ملف واحد أو أكثر يمكن تطبيقه باستخدام أمر
patch
.
كيفية استخدام
diff
القيادة
يكون بناء جملة الأمر
diff
كما يلي:
diff… FILES
يمكن للأمر
diff
عرض الإخراج بتنسيقات متعددة بالتنسيق العادي والسياق والموحد الأكثر شيوعًا. يتضمن الإخراج معلومات حول الخطوط التي يجب تغييرها في الملفات بحيث تصبح متطابقة. إذا تطابقت الملفات ، فلن يتم إنتاج أي إخراج.
لحفظ مخرجات الأمر في ملف ، استخدم عامل إعادة التوجيه:
diff file1 file2 > patch
، سنستخدم الملفين التاليين لشرح كيفية عمل الأمر
diff
:
Ubuntu Arch Linux Debian CentOS Fedora
FILE2
Kubuntu Ubuntu Debian Arch Linux Centos Fedora
تنسيق عادي
في أبسط أشكاله عندما يتم تشغيل الأمر
diff
على ملفين نصيين دون أي خيار ، فإنه ينتج إخراج بالتنسيق العادي:
diff file1 file2
سيظهر الإخراج بشيء من هذا القبيل:
0a1 > Kubuntu 2d2 < Arch Linux 4c4, 5 < CentOS --- > Arch Linux > Centos
يتكون تنسيق الإخراج العادي من قسم واحد أو أكثر يصف الاختلافات. كل قسم يشبه هذا:
change-command < from-file-line… --- > to-file-line…
0a1
،
2d2
و 4
2d2
،
4c4, 5
هي أوامر التغيير. يحتوي كل أمر تغيير على ما يلي ، من اليسار إلى اليمين:
- رقم السطر أو نطاق الأسطر في الملف الأول. حرف تغيير خاص. رقم السطر أو نطاق الأسطر في الملف الثاني.
يمكن أن يكون حرف التغيير أحد الإجراءات التالية:
-
a
- أضف السطور.c
- تغيير الخطوط.d
- حذف الخطوط.
يتبع أمر التغيير الأسطر الكاملة التي تمت إزالتها (
<
) وإضافتها إلى الملف (
>
).
دعونا شرح الإخراج:
-
0a1
- إضافة السطر1
من الملف الثاني في بداية file1 (بعد السطر0
).-
> Kubuntu
- السطر من السطر الثاني الذي يتم إضافته إلى الملف الأول كما هو موضح أعلاه.
2d2
- حذف السطر2
في الملف الأول. يعني الرمز2
بعد الرمزd
أنه إذا لم يتم حذف السطر ، فسيظهر على السطر2
في الملف الثاني.-
< Arch Linux
- الخط المحذوف.
4c4, 5
- استبدال (تغيير) السطر5
في الملف الأول مع الأسطر4-5
من الملف الثاني.-
< CentOS
- السطر في الملف الأول المراد استبداله.---
- فاصل.> Arch Linux
و> Centos
- خطوط من الملف الثاني تحل محل السطر في الملف الأول.
-
تنسيق السياق
عند استخدام تنسيق إخراج السياق ، يعرض الأمر
diff
عدة أسطر من السياق حول الخطوط التي تختلف بين الملفات.
يخبر الخيار
-c
diff
بإنتاج الإخراج بتنسيق السياق:
diff -c file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 6 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 7 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
يبدأ الإخراج بالأسماء والطوابع الزمنية إذا كانت الملفات التي تمت مقارنتها ، وقسمًا واحدًا أو أكثر يصف الاختلافات. كل قسم يشبه هذا:
*************** *** from-file-line-numbers **** from-file-line… --- to-file-line-numbers ---- to-file-line…
-
from-file-line-numbers
to-file-line-numbers
الأسطر أو نطاق الخطوط المفصولة بفواصل في الملف الأول والثاني ، على التوالي.from-file-line
ومنto-file-line
- الخطوط التي تختلف وخطوط السياق:- الأسطر التي تبدأ بمسافة اثنين هي خطوط السياق ، والخطوط المتشابهة في كلا الملفين. الأسطر التي تبدأ برمز ناقص (
-
) هي الخطوط التي لا تتوافق مع أي شيء في الملف الثاني. الأسطر المفقودة في الملف الثاني. الأسطر التي تبدأ برمز الجمع (+
) هي الخطوط التي تتوافق مع أي شيء في الملف الأول. الأسطر المفقودة في الملف الأول. الأسطر التي تبدأ بعلامة التعجب (!
) هي الأسطر التي يتم تغييرها بين ملفين. كل مجموعة من الخطوط تبدأ ب!
من الملف الأول لديه تطابق المقابلة في الملف الثاني.
- الأسطر التي تبدأ بمسافة اثنين هي خطوط السياق ، والخطوط المتشابهة في كلا الملفين. الأسطر التي تبدأ برمز ناقص (
دعنا نوضح أهم أجزاء الإخراج:
- في هذا المثال ، لدينا قسم واحد فقط يصف الاختلافات.
*** 1, 6 ****
و--- 1, 7 ----
يخبرنا عن نطاق الأسطر من الملفات الأولى والثانية المضمنة في هذا القسم. خطوطUbuntu
وDebian
وFedora
و آخر سطر فارغ هو نفسه في كلا الملفين. تبدأ هذه الأسطر بمساحة مزدوجة. لا يتوافق- Arch Linux
من الملف الأول مع أي شيء في الملف الثاني. على الرغم من وجود هذا السطر أيضًا في الملف الثاني ، إلا أن المواضع مختلفة. لا يتوافق سطر+ Kubuntu
من الملف الثاني مع أي شيء في الملف الأول. سطر! CentOS
! CentOS
من الملف الأول والخطوط! Arch Linux
! Arch Linux
و! CentOS
يتم تغيير! CentOS
من الملف الثاني بين الملفات.
افتراضيًا ، يكون عدد أسطر السياق افتراضيًا إلى ثلاثة. لتحديد رقم آخر ، استخدم الخيار
-C
(-
--contexts
):
diff -C 1 file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 5 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 6 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
تنسيق موحد
تنسيق الإخراج الموحد هو نسخة محسنة من تنسيق السياق وينتج مخرجات أصغر.
استخدم الخيار
-u
diff
لطباعة الإخراج بالتنسيق الموحد:
diff -u file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian -CentOS +Arch Linux +Centos Fedora
يبدأ الإخراج مع أسماء الطوابع الزمنية للملفات وقسم واحد أو أكثر يصف الاختلافات. يأخذ كل قسم الشكل التالي:
*************** @@ from-file-line-numbers to-file-line-numbers @@ line-from-files…
-
@@ from-file-line-numbers to-file-line-numbers @@
of@@ from-file-line-numbers to-file-line-numbers @@
رقم السطر أو نطاق الأسطر من الملفين الأول والثاني المتضمنين في هذا القسم.line-from-files
- الخطوط التي تختلف وخطوط السياق:- الأسطر التي تبدأ بمسافة اثنين هي خطوط للسياق ، والخطوط المتشابهة في كلا الملفين. الأسطر التي تبدأ برمز ناقص (
-
) هي السطور التي تمت إزالتها من الملف الأول. الأسطر التي تبدأ برمز الإضافة (+
) هي الخطوط التي تمت إضافتها من الملف الأول.
- الأسطر التي تبدأ بمسافة اثنين هي خطوط للسياق ، والخطوط المتشابهة في كلا الملفين. الأسطر التي تبدأ برمز ناقص (
تجاهل القضية
كما قد تلاحظ في الأمثلة أعلاه ، يكون الأمر
diff
حساسًا لحالة الأحرف افتراضيًا.
استخدم الخيار
-i
لإخبار
diff
لتجاهل الحالة:
diff -ui file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian +Arch Linux CentOS Fedora
استنتاج
تعد مقارنة الملفات النصية للاختلافات إحدى المهام الأكثر شيوعًا لمسؤولي أنظمة Linux.
يقارن الأمر
diff
الملفات بسطر. لمزيد من المعلومات ، اكتب
man diff
في محطة الخاص بك.
قيادة دو في لينكس
يقوم الأمر du ، وهو اختصار لاستخدام القرص ، بالإبلاغ عن المقدار المقدر لمساحة القرص المستخدمة بواسطة الملفات أو الدلائل المعطاة. إنه مفيد عمليًا للعثور على الملفات والدلائل التي تتناول كميات كبيرة من مساحة القرص.
قيادة لينكس
يقوم الأمر head بطباعة الأسطر الأولى (10 سطور افتراضيًا) لملف واحد أو أكثر من البيانات أو البيانات المنقولة إلى الإخراج القياسي. في هذا البرنامج التعليمي ، سنشرح كيفية استخدام الأداة المساعدة لرئيس Linux من خلال أمثلة عملية وشروحات مفصلة لخيارات الرؤوس الأكثر شيوعًا.
قيادة لينكس nohup
ينفذ أمر nohup برنامجًا آخر محددًا كوسيطة ويتجاهل جميع إشارات SIGHUP (hangup).