السلام عليكم ورحمة الله وبركاتة

بسم الله الرحمن الرحيم

كل عام وانتم بخير ورمضان كريم على الجميع

رمز PHP:
<code style="white-space:nowrap"> <code> محرر النصوص vi فى بيئة عمل لينوكس
</code> </code>

من أقوى محررات النصوص التى قد تقابلها فى أى نظام تشغيل تتعامل معه وبالنسبة ل Linux فهو يعد الأفضل بلا منازع

فهو أداة advanced text editor فهو يختلف عن كل محررات النصوص فى نظام تشغيل لينوكس مثل ( nano-pico-Emax ) فهو يعد الأفضل وذلك للعديد من المميزات ولكن لماذا نهتم بمجرد محرر نصوص ؟؟؟
لأن كما ذكرنا من قبل أن اللينوكس يعامل الخدمات والإعدادات الخاصة بالسيرفر SERVER ( الخادم server ) والsystem على أنها text files ولهذا فهو مفيد بحيث سيسهل عليك التعامل مع ال text files يمكنك التعديل فى سطر معين فى ملف مثلا به الآف الأسطر ؟؟
هل يمكنك التعديل على الملف بتنفيذ أمر لينوكس داخل المحرر مثل الأمر sed ؟؟؟

نبدأ بالتعارف على محرر النصوص vi او vim ؟
ما الفرق بينهم ؟؟؟

هما نفس المحرر ونفس الخواص ولكن ال vim = vi modified
به العديد من الإضافات الرائعة

ال vi يتكون من أكثر من mode بمعنى أكثر من وضع للتعامل مع البرنامج والنص المكتوب وهم كالتالى :
رمز PHP:
<code style="white-space:nowrap"> <code> 1- Command Mode (default): Move cursor, cut/paste text change mode
2
- Insert Mode: Modify text
3
- Ex Mode: Save, quit, etc
</code> </code>

نبدأ بالوضع الأول وهوا وضع الأوامر فى المحرر
فكل حرف يعنى للمحرر أمرا فمثلا الحرف u يعنى undo او خطوة للخلف أو محو آخر تعديل قمت به للملف وتستطيع فيه عمل copy و paste وتأمر المحرر بما يحلو لك لتنفيذه

الوضع الثانى وهوا Insert Mode: Modify text
وهنا تستطيع التعديل على الملف بكتابة ما يحلو لك ويمكن دخول هذا الوضع عن طريق الضغط على حرف i فى الكيبورد

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

الأوضاع هذه بمعنى أنها أوضاع انتقالية تنتقل بينهم أثناء عملك وتعديلك فى الملف فهى متتابعة وتنتقل بينها بكل سلاسة

نبدأ ببساطة التعامل مع المحرر : إكتب الأمر التالى فى الشل ( terminal )

رمز PHP:
<code style="white-space:nowrap"> <code> #vi linux.txt
</code> </code>

طبعا لا يوجد ملف بهذا الأسم فكل ما سيفعله ال vi هوا أنه سيقوم بعمل ملف جديد بهذا الأسم وتبدأ بالكتابه والتعديل فيه
ولكن أين يتم حفظ الملف ؟؟؟
يتم حفظ الملف فى المكان الحالى الذى توجد به وهو ( pwd )

والآن لديك ملف لا يوجد به أى شىء ...( لا يصلح التحرك بالأسهم الان )

الآن انته فى وضع ال command وهوا الأمر للبرنامج ستضغط i لعمل تحرير فى الملف أو تعديل او كتابه سطور جديدة
اكتب مثلا

رمز PHP:
<code style="white-space:nowrap"> <code> linux is freedom
</code> </code>

ثم إضغط على الزر EsC للخروج من الوضع التحريرى
ثم إضغط : لدخول وضع الحفظ والإغلاق
إكتب wq ومن ثم إضغط Enter يغلق بعد أن تم حفظ الملف

إكتب فى الشل الأمر التالى :

رمز PHP:
<code style="white-space:nowrap"> <code> #cat linux.txt
</code> </code>

تجد أنه تم عرض محتويات الملف وهى linux is freedom

والان نعود للمحرر مرة أخرى :

رمز PHP:
<code style="white-space:nowrap"> <code> #vi linux.txt
</code> </code>

إدخل إضغط i ثم إبدأ بالتعديل وكتابة التالى

رمز PHP:
<code style="white-space:nowrap"> <code> dklj$%^vdz345fgnvasd#sdfg#$%$^ASDFGasef654652
</code> </code>

ثم إضغط EsC
فلنفرض أننا أفسدنا الملف مثلما حدث الآن ولنفترض أنه ملف مهم جدا فى ال system
نقوم بعمل إحدى خطوتين :
الأولى : إضغط EsC ثم قم بعمل خروج كالتالى اولا : ثم q! حرف الq يأتى أولا وبهذا كأننى أقول للبرنامج لا تحفظ ما قمت به من عمل



الثانية : أن أقوم بالضغط EsC ثم أعطى الأمر u فى وضع الأوامر الخاص بالمحرر وحينها سيقوم بإلغاء آخر تعديل قمت به

والآن نجرب شىء آخر
لو أردت عمل edit لاخر السطر إضغط الحرف A لاحظ حرف كبير
لو أردت تحت السطر o ( حرف ضغير )
فوق السطر الحالى : O ( حرف oكبير )


ننتقل للوضع الآخر وهوا الوضع الأول وضع الأوامر :
اضغط اى رقم ثم سهم يمين أو يسار سيقوم بنقلك خمس او اى عدد من الحروف
عند الضغط على G تنزل لآخر سطر فى الملف
عند الضغط على g تصعد لأول سطر فى الملف
عند الضغط على w تتحرك بالكلمة للأمان
عند الضغط على p يقوم بنقلك كلمة للخلف
عند الضغط على ) shift+9 تنقلك بالجملة joomla بمعنى جملة joomla للامام او جملة joomla للخلف وهكذا
عند الضغط على }أو { تنقلك بالبرجراف paragraph
عند كتابة فى وضع الأوامر العلامة : يتبعها رقم تنقلك للسطر رقم الذى قمت بكتابة رقمه
عند كتابة :$ تنقلك إلى نهاية الملف او السطر الأخير

ويمكنك داخل ال VI تستخدم نفس الخواص الخاصة ب sed
مثلا :

ادخل على الملف كالتالى

رمز PHP:
<code style="white-space:nowrap"> <code> #vi linux.txt
</code> </code>

ثم تكتب

رمز PHP:
<code style="white-space:nowrap"> <code> # :1,3s/KAREEM/abdullah
</code> </code>

وهنا طلبت منه عملت search & replace من السطر الأول وحتى التالت عن كلمة kareem واستبدالها ب mostafa

ماذا لم لم اكن اعلم عدد سطور الملف ؟؟؟

اكتب التالى :

رمز PHP:
<code style="white-space:nowrap"> <code> #%s/abdullah/karim
</code> </code>

وبهكذا سيقوم بعمل بحث وإستبدال داخل كل سطور الملف

ننتقل إلى جزئية أخرى وهى :التعامل مع الأسطر

فمثلا أردت عمل copy من مجموعة سطور أو من سطر معين

أنته الان داخل وضع الأوامر command فى المحرر

إضغط على رقم يكون هوا عدد الأسطر المراد عملها copy ثم حرف yy
بالتتالى تلاحظ ظهور عبارة أسفل المحرر تقول :
رمز PHP:
<code style="white-space:nowrap"> <code> 3 lines yanked
</code> </code>

ايا كان عدد السطور

ولعمل paste إضغط الحرف p

ولو أردت عمل delet لسطر معين dd
ولو أردت عمل مسح للكلمة وأن تكتب مكانها cc
لو اردت عمل undo نقوم بالضغط u حرف صغير
وال U حرف كبير تقوم بعمل unde لكل التغييرات ولكن حتى مكان وقوف السهم او مؤشر الكتابة
وعند عمل Ctrl +r يقوم بعمل redo او
يقوم بإلغاء ال undo او يأخذك خطوة للأمام

لو اردت عمل تحديد للجمل والسطور اقوم بالضغط على v بالاضافة الى الأسهم
بينما حرف ال V كبير يقوم بعمل تحديد ولكن للسطر الواحد سطر سطر

ماذا لو أردت فتح أكتر من vi مع بعض فى الشل فى نفس الوقت

إضغط CtrL + w + s او Ctrl +w +v
وهنا يقسم الشاشة الى إتنين من محررى ال vi
وعند الضغط على Ctrl + w+ سهم لأسفل
ينقلك إلى النافذة السفلى من ال vi
لاحظ انك تفتح الملف فى اكثر من نافذة

ماذا لو اردت فتح اكثر من ملف فى أكثر من نافذة ؟؟ فى نفس الشل

افتح الان ملف بنفس النافذتين كما وضحنا الان ثم قم بعمل الزر EsC فى احداهما ثم
:e /etc/passwd
هنا قمنا بكتابه احدى خيارات الأمر sed وقام بفتح الملف فى النافذة الأخرى

والانتقال بينهم Ctrl + w+ سهم

والان نأتى لأهم أصعب جزء بالشرح طريقة :
لدينا نوعين من عمل الاعدادات ال configuration للvi وذلك من خلال إما أريد عمل إعداد run time بمعنى انه ينفذ فى الملف الحالى وبعد الاغلاق ينتهى هذا الإعداد ويعود ال vi لاعداداته الأساسية
أو
عمل إعداد بشكل دائم داخل ال vi بحيث كلما أردت فتح اى ملف يظل الإعدادت
ويتم تخزين هذه الاعدادات داخل ملف الاعدادات الخاص بال vi لكل يوزر وهوا فى المسار الخاص به كالتالى
رمز PHP:
<code style="white-space:nowrap"> <code> # ~/.vimrc
or
# ~/.exrc
</code> </code>

وليكن من هذه الإعدادات مثلا :
عند البحث عن اى كلمة بال small اعطنى النتائج أيا كانت أشكالها ( حروف كبيرة أو صغيرة )

والعديد

لنحاول الطريقة الأولى وهى إعداد ال run time او on The Fly

يتم التحكم من خلال الوضع الأوامر فى ال vi
ثم تقوم بكتابة الأوامر التى تريدها مثلا :

رمز PHP:
<code style="white-space:nowrap"> <code> #set ignorecase
</code> </code>

بمعنى انى عند عمل سيرش يعيطنى كافة النتايج كبيرة او صغيرة ( الحروف )
والان اغلق الملف :q
ثم إفتحه مرة أخرى وحاول البحث عن اى كلمة captal سيعطى لك النتائج الكابتل فقط ولا يعطيك الحروف ال small لان الاعدادات طارت أو اختفت مع الإغلاق


للمزيد عليك بالدخول على ال
رمز PHP:
<code style="white-space:nowrap"> <code> vi linux.txt
</code> </code>

ثم فى وضع الأوامر ضع التالى :
رمز PHP:
<code style="white-space:nowrap"> <code> :help ignorecase
</code> </code>

او من سطر الاوامر فى الterminal
#vimtutor
الدروس الخاصة ب vi ,vim

إقرأ أكثر وجرب بيديك وستستفيد أكثر

ولا تنسى أن ال vi مهما كانت الصعوبة التى تراه بها فهوا الأفضل ويجب عليك إحترافه

نعود للسؤال الملح لكل من يقرأ فى التحكم فى ال text files
اقول له أن لكى تصبح مدير نظام ناجح عليك بأن تعرف التعديل السريع والفعال فى كل للنصوص لأنها هى إعدادت الجهاز وإعدادت الخادم server

وقريبا نكمل ما تبقى لنا من محاضرات بشكل مكتوب وترقبوا المزيد والمزيد

تقبلوا تحياتى ولا تنسونى من خالص دعائكم لى ولجميع المسلمين

فى أمان الله

فريق عمل مؤسسة الوكالة العربية لتقنية المعلومات






©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى©