محرر النصوص vim من كورس rhce

Wekala.Com.Sa

عضو جديد
2 يونيو 2012
15
0
0
35
بسم الله الرحمن الرحيم

اليوم وبحمد الله نكمل المحاضرة الساسة أو ما تبقى منها وهوا الجزء الثانى


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

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

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

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

ال vi يتكون من أكثر من mode بمعنى أكثر من وضع للتعامل مع البرنامج والنص المكتوب وهم كالتالى :
PHP:
1-  Command Mode (default): Move cursor, cut/paste text change mode
2-  Insert Mode: Modify text
3-  Ex Mode: Save, quit, etc
نبدأ بالوضع الأول وهوا وضع الأوامر فى المحرر
فكل حرف يعنى للمحرر أمرا فمثلا الحرف u يعنى undo او خطوة للخلف أو محو آخر تعديل قمت به للملف وتستطيع فيه عمل copy و paste وتأمر المحرر بما يحلو لك لتنفيذه

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

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

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

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

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

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

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

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

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

PHP:
#cat linux.txt
تجد أنه تم عرض محتويات الملف وهى linux is freedom

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

PHP:
#vi linux.txt
إدخل إضغط i ثم إبدأ بالتعديل وكتابة التالى

PHP:
dklj$%^vdz345fgnvasd#sdfg#$%$^ASDFGasef654652
ثم إضغط EsC
فلنفرض أننا أفسدنا الملف مثلما حدث الآن ولنفترض أنه ملف مهم جدا فى ال system
نقوم بعمل إحدى خطوتين :
الأولى : إضغط EsC ثم قم بعمل خروج كالتالى اولا : ثم q! حرف الq يأتى أولا وبهذا كأننى أقول للبرنامج لا تحفظ ما قمت به من عمل
الثانية : أن أقوم بالضغط EsC ثم أعطى الأمر u فى وضع الأوامر الخاص بالمحرر وحينها سيقوم بإلغاء آخر تعديل قمت به

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


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

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

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

PHP:
#vi linux.txt
ثم تكتب

PHP:
# :1,3s/KAREEM/abdullah
وهنا طلبت منه عملت search & replace من السطر الأول وحتى التالت عن كلمة kareem واستبدالها ب mostafa

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

اكتب التالى :

PHP:
#%s/abdullah/karim
وبهكذا سيقوم بعمل بحث وإستبدال داخل كل سطور الملف

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

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

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

إضغط على رقم يكون هوا عدد الأسطر المراد عملها copy ثم حرف yy
بالتتالى تلاحظ ظهور عبارة أسفل المحرر تقول :
PHP:
 3 lines yanked

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

ولعمل 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:
#  ~/.vimrc 
or
# ~/.exrc
وليكن من هذه الإعدادات مثلا :
عند البحث عن اى كلمة بال small اعطنى النتائج أيا كانت أشكالها ( حروف كبيرة أو صغيرة )

والعديد

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

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

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


للمزيد عليك بالدخول على ال
PHP:
vi linux.txt
ثم فى وضع الأوامر ضع التالى :
PHP:
:help ignorecase
او من سطر الاوامر فى الterminal
#vimtutor
الدروس الخاصة ب vi ,vim

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

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

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

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

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

فى أمان الله
 

سرمد الكتلوني

عضو جديد
13 يوليو 2012
75
0
0
30
jzakalah.gif