نویسنده: fema co
29 مارس 2019
0 469
آموزش کار با ویرایشگر vi لینوکس

آموزش کار با ویرایشگر vi لینوکس

ویرایشگر vim یا vi , یکی از ویرایشگر های پیشفرض و قدیمی میباشد که در دیوایس های لینوکس و یونیکس بصورت پیشفرض فعال میباشد.

آموزش کار با ویرایشگر vi لینوکس

 

لینوکس دنیای لذت بخشی دارد که فقط یه مدیر شبکه و یا یک مدیر سایت و سرور میتواند این موضوع را درک کنم.از لذت کنترل متنی تا پرکاربرد و ساده بودن قدرت استفاده و …..

قبل از شروع مقاله به این موضوع اشاره کنیم که لینوکس ویرایشگر های متعددی دارن مثل لینوکس یا سیستم عامل مک که در تمامی نسخه های دسکتاپ و سرور و حتی دیتاسنتر این ابزار ها جز پرکاربردترین ابزارهای مورد استفاده در هر سیستم عاملی میباشد ولی مضمون امروز ما فقط لینوکس است.

ویرایشگر های لینوکس متعدد هستند مثل vi , nano , vim که البته نسخه vim نوع تکامل یافته و پیشرفته vi  است.

کاربران بسیاری که که آماتور هستند و یا تازه به جمع مدیران سرور افزوده شدند مشکلاتی را با ویرایشگر vi دارند که بر آن شدیم تا مقاله ای هرچند متعدد در دنیای اینترنت ولی مختصر و مفید برای شما تهیه کنیم.

این ویرایشگر دستوراتی را شامل میشود که متمایز و سخت تر از نسخه های مثل vim و مخصوصا nano دارد ولی به لحاظ اینکه این نسخه بصورت پیشفرض بر لینوکس سوار است در زمانهایی که سرور لینوکسی ایجاد میکنید و دسترسی به شبکه ندارید و نمیتوانید ویرایشگر های دیگری نصب کنید به ناچار باید از vi استفاده کنید.

مثل ویرایشگر notepad در ویندوز که بصورت پیشفرض نصب است ولی ویرایشگر های notpad++ و ده ها ویرایشگر دیگر میتوانیم نصب کنیم.

مثلا زمانی که در esxi یا ماشین مجازی وی پی اس را ایجاد میکنید اگر در زمان نصب کارت شبکه را تنظیم نکنید مجبورید بعد از نصب با استفاده از کنسول vmware و ویرایشگر قدرتمند vi اقدام به تغییر تنظیمات در فایل های مخصوص کارت شبکه کنید که در ادامه کار با این ویرایشگر را با هم مرور میکنیم.

در آمورش تغیر پورت SSH با ویرایشگر vi  بصورت مختصر آشنا شدیم که در این مقاله به توضیح کامل در این ضمینه اشاره میکنیم.

اگر با دستورات لینوکس آشنایی ندارید از طریق مقاله آموزش دستورات لینوکس به آگاهی خود بیافزایید.

شروع کار کردن با vi

با وارد نمودن دستور زیر میتوانید یک فایل را ایجاد کرده و به محیط ویرایش فایل ایجاد شده مراجعه کنید:

vi filename

 

مثل:

vi famaserver.txt

 

در مثال بالا ما فایلی با نام famaserver ساخته ایم و به محیط ویرایش آن وارد میشویم.

نکته: دقت کنید اگر در دایرکتوری که هستید مثلا در دایرکتوری اصلی یا شاخه اصلی / فایلی با نام famaserver داشته باشیم آن فایل را برای ویرایش باز میکند ولی اگر فایلی وجود نداشته باشد فایل جدید را ایجاد میکند.

نتیجه دستور بالا:

ویرایشگر vi لینوکس

 

در زیر مکان نما، در ابتدای هر خط کاراکتر “~” را مشاهده خواهید کرد. این کاراکتر نشان دهنده خط استفاده نشده است. اگر خطی با کاراکتر کاراکتر “~” شروع نشود و نوشته ای هم نداشته و خالی باشد، نشان دهنده این است که در آن خط از space ، tab و یا سایر کاراکترهای غیر قابل مشاهده استفاده شده است.

تا اینجا توانسته اید با این ویرایشگر فایلی را باز کنید. اما قبل از انجام هر اقدامی به توضیح مفاهیم جزئی ولی مهم زیر میپردازیم.

مد یا حالات اجرایی ویرایشگر vi در لینوکس

هنگام کار با این ویرایشگر با دو مد زیر روبرو خواهید شد:

مد Command یا مد دستوری: این مد شما را قادر خواهد کرد تا کارهای مدریتی مثل ذخیره فایل، اجرای دستورات، جابجا نمودن نشانگر، cut و paste کردن خطوط و کلمات و جستجو و جایگذاری را انجام دهید.

در مد Command هرچه که تایپ کنید بعنوان دستور تفسیر خواهد شد.

مد Insert یا مد درج: این مد شما را قادر خواهد کرد تا متنی را در فایل درج نمایید. هرچیزی که در این مد تایپ شود، بعنوان ورودی تلقی شده و در فایل درج میشود.

vi به صورت پیش فرض در مد دستوری یا Command باز میشود و برای وارد کردن متن در فایل باید وارد مد Insert شوید.

برای وارد شدن به مد Insert باید کلید i را فشار دهید. زمانی که در مد Insert هستید مطابق شکل زیر عبارت Insert در پایین صفحه نمایش داده میشود. برای خروج از مد Insert و ورود به مد Command باید کلید ESC را فشار دهید.

زمان حضور در مود insert با فشردن کلید i:

در تصویر بالا در حالت تایپ یا همان Insert می باشید.

 نکته: اگر نمیدانید که در کدام مد هستید کلید ESC را دوبار فشار دهید با این کار در مد Command خواهید بود. برای درک تفاوت دو مد یا حالت مذکور بهتر است فایلی را با vi باز کنید سپس شروع به تایپ چند کاراکتر نمایید و سپس به مد Command وارد شوید.

خارج شدن از vi

برای خروج از vi از دستور q: استفاده میشود.

به طوری که ابتدا کلید ESC را زده و پس از ورود به مد Command عبارت q: را تایپ کنید.

در صورتی که تغییراتی در فایل ایجاد کرده اید ولی می خواهید بدون درج تغییرات از فایل خارج شوید دستور !q: را وارد نمایید.

خروج از ویرایشگر

با دستور w: میتوانید تغییرات اعمال شده را ذخیره نمایید.

میتوانید فرمان ذخیره را با فرمان خروج ترکیب نموده و از دستور wq: برای ذخیره و خروج از ویرایشگر استفاده نمایید.

توجه: بعد از زدن دستورات خروج و ذخیره کلید اینتر را فشار دهید.

در نظر داشته باشید می توانید به جای دستور wq: برای ذخیره سازی و خروج؛ از دستور ZZ استفاده نمایید. ( باید از Z بزرگ استفاده شود. )

برای ذخیره فایل با نامی دیگر ، می توانید پس از وارد کردن دستور w: نام فایل جدید را وارد کنید به مانند زیر

w famaserver2.txt

 

حرکت در داخل ویرایشگر vi در لینوکس

برای اینکه بتوانید داخل فایل خود در بخش های مختلف حرکت کنید باید در مد Command باشید یعنی کلید ESC را دوبار فشار دهید.

در زیر تعدادی از دستورات برای حرکت در داخل یک فایل آورده شده است.

دستور k        نشانگر را از خط فعلی که نشانگر آنجا قرار دارد یک خط به بالا میبرد.

دستور j       نشانگر را از خط فعلی که نشانگر آنجا قرار دارد یک خط به پایین میبرد.

دستور h      نشانگر را موقعیت فعلی به اندازه یک کاراکتر به سمت چپ میبرد.

دستور l       نشانگر را از موقعیت فعلی به اندازه یک کاراکتر به سمت چپ میبرد.

به دو نکته مهم زیر توجه نمایید:

  • Vi به بزرگ و کوچک بودن حروف حساس هست. هنگام وارد کردن دستورات به بزرگ بودن حروف دقت نمایید.
  • اکثر دستورات در vi این قابلیت را دارند که مشخص نمایید دستور مورد نظر چند بار اجرا شود.

بعنوان مثال دستور ۲j نشانگر را از مکان فعلی آن دو خط پایین تر میبرد.

روشهای دیگر برای حرکت در داخل فایل در vi

بخاطر داشته باشید که برای استفاده از دستورات باید در مد Command یا همان اجرایی باشید.

از دستورات زیر نیز برای حرکت در داخل فایل میتوانید استفاده نمایید.

دستور | یا ۰      نشانگر را به ابتدای خط میبرد.

دستور $            نشانگر را به انتهای خط میبرد.

دستور w           نشانگر را به کلمه بعدی میبرد.

دستور b           نشانگر را به کلمه قبلی میبرد.

دستور (            نشانگر را به ابتدای جمله جاری میبرد.توجه داشته باشید که جملات با کاراکتر نقطه از هم جدا میشوند.

دستور )            نشانگر را به ابتدای جمله بعدی میبرد.

دستور }            نشانگر را به یک پاراگراف قبل میبرد.

دستور {            نشانگر را به پاراگراف بعدی میبرد.

دستور |n          نشانگر را به کاراکتر n ام از ابتدای خط، در خط جاری میبرد.

دستور ۱G         نشانگر را به اولین خط فایل میبرد.

دستور G           نشانگر را به آخرین خط فایل میبرد.

دستور nG         نشانگر را به nامین  خط فایل میبرد.

دستور n:          نشانگر را به nامین  خط فایل میبرد. بعد از نوشتن این دستور باید اینتر را بزنید.

دستور H           نشانگر را به اولین خط صفحه جاری مبرد.

دستور nH        نشانگر را به خط n ام از بالای صفحه میبرد.

دستور M         حرکت به وسط صفحه.

دستور L          حرکت به پایین صفحه.

دستور nL        نشانگر را به خط n ام از پایین صفحه میبرد.

دستور E          نشانگر را به کاراکتر قبل از کاراکتر space بعدی میبرد.

دستور fc         این دستور نشانگر را به کاراکتر c بعدی در خط جاری میبرد. بجای کاراکتر c میتوانید هر کاراکتری بنویسید.

دستور Fc       این دستور نشانگر را به کاراکتر c قبلی در خط جاری میبرد. بجای کاراکتر c میتوانید هر کاراکتری بنویسید.

ویرایش فایل در vi

برای ویرایش فایل باید در مد Insert باشید. برای رفتن به مد Insert روشهای مختلفی وجود دارد.

دستور i       متن را قبل از محل فعلی نشانگر وارد میکند.

دستور I       متن را در ابتدای خط جاری درج میکند.

دستور a      متن را بعد از مکان فعلی نشانگر وارد میکند.

دستور A     متن را در انتهای خط جاری درج میکند.

دستور o     زیر نشانگر خط جدیدی برای درج متن ایجاد میکند.

دستور O     بالای نشانگر خط جدیدی برای درج متن ایجاد میکند.

دستورات کنترلی ویرایشگر vi در لینوکس

دستورات مفید زیر را با کلید کنترل میتوانید استفاده نمایید:

CTRL+d     نشانگر را به اندازه نصف صفحه پایین میبرد.

CTRL+f      نشانگر را به اندازه یک صفحه کامل پایین میبرد.

CTRL+u     نشانگر را به اندازه نصف صفحه بطرف بالا میبرد.

CTRL+b      نشانگر را به اندازه یک صفحه کامل به بالا میبرد.

CTRL+e      صفحه را یک خط بالا میبرد.

CTRL+y      صفحه را یک خط پایین میبرد.

CTRL+u      صفحه را به اندازه نصف صفحه به بالا جابجا میکند.

CTRL+d      صفحه را به اندازه نصف صفحه به پایین جابجا میکند.

کاراکترهای حذف در vi

دستورات زیر برای حذف خط ها و کلمات در فایل باز شده مورد استفاده قرار میگیرند

دستور x       کاراکتر زیر مکان نما را حذف میکند.

دستور X       کاراکتر قبل از مکان نما را حذف میکند.

دستور dw     از مکان فعلی مکان نما تا کلمه بعد را حذف میکند.

دستور ^d      از مکان فعلی مکان نما تا ابتدای خط  را حذف میکند.

دستور $d      از مکان فعلی مکان نما تا انتهای خط  را حذف میکند.

دستور D       از مکان فعلی مکان نما تا انتهای خط  جاری را حذف میکند.

دستور dd     خطی را که مکان نما در آنجا قرار دارد را حذف میکند.

همانطور که در بالا اشاره کردیم میتوانید تعداد دفعات اجرای فرمانها را نیز مشخص نمایید.

مثلا دستور ۲x دو کاراکتر را از زیر مکان نما حذف میکند. و دستور ۲dd دو خط از محل فعلی مکان نما را حذف میکند.

دستورات copy و paste

شما میتوانید کلمات یا خطوطی را از مکانی کپی کرده و در محلی دیگر paste نمایید. نمونه ای از این دستورات:

دستور yy     خط جاری را کپی میکند.

دستور p       متن کپی شده را در مکان بعد از مکان نما پیست میکند.

دستور P      متن کپی شده را قبل از مکان نما میچسباند.

دستورات پیشرفته ویرایشگر vi در لینوکس

دستورات پیشرفته ای در vi وجود دارند که کار ویرایش را ساده تر میکنند و اجازه استفاده موثر از vi را میدهند.

دستور J        خط جاری را با خط بعدی به هم میچسباند. اگر عددی به دستور اضافه شود به تعداد آن عدد خط ها را به هم وصل میکند.

دستور u        نقش undo ر بازی میکند.

دستور ^G      اگر کلید کنترل را همزمان با کلید G بزنید، نام فایل جاری و وضعیت آن را نمایش میدهد.

دستور ~        تغییر بزرگ یا کوچک بودن کاراکتر زیر مکان نما.

دستور <<       خط جاری را به اندازه یک واحد به سمت راست شیفت میدهد.

دستور >>      خط جاری را به اندازه یک واحد به سمت چپ شیفت میدهد.

دستور f:        نمایش موقعیت شما در فایل برحسب % و نمایش نام فایل .

عبارت filename بعد از دستور f:    نام فایل را به filename تغییر میدهد.

عبارت filename بعد از دستور w:    فایل را در فایلی بنام  filename مینویسد.

عبارت filename بعد از دستور e:    فایل دیگری با نام  filename باز میکند.

عبارت direname بعد از دستور cd:  دایرکتوری جاری را به دایرکتوری نوشته شده تغییر میدهد.

دستور # e:     برای جابجایی بین دو فایل باز شده.

دستور n:        اگر چند فایل را با vi باز کرده اید با هربار زدن n: به فایل بعدی هدایت میشوید.

دستور p:        اگر چند فایل را با vi باز کرده اید با هربار زدن p: به فایل قبلی هدایت میشوید.

دستور N:        همان کار دستور p: را انجام میدهد.

دستور r:         اگر بعد از نوشتن این دستور نام فایل دیگری را که با vi باز کرده اید را بنویسید محتویات آن فایل را بعد از مکان نما درج میکند.

دستور nr:       اگر بعد از این دستور نام فایلی را بدهید آن فایل را خوانده و بعد از خط n ام در فایل درج میکند.

دستورات تغییر در ویرایشگر vi

دستور cc     محتویات خط جاری را پاک کرده و شما را در مد درج قرار میدهد.

دستور r       کاراکتر زیر مکان نما را با کاراکتر وارد شده بعد از دستور r جایگزین میکند و شما را در مد دستوری قرار میدهد.

دستور R       با زدن این دستور و کاراکتر مورد نظر بعد از آن، میتوانید از کاراکتر زیر مکان نما شروع کرده و هر کاراکتری را که بخواهید با کاراکتر وارد شده جایگزین نمایید.  برای توقف عمل جایگذاری باید کلید ESC را فشار دهید.

دستور S       خط جاری را پاک کرده و با متن تایپ شده جایگزین میکند سپس شما را در مد درج قرا میدهد.

دستورات جستجوی کلمه و کاراکتر در ویرایشگر vi

در ویرایشگر vi به ۲ شکل می توانید جسجتو کنید. جستجو یک رشته ، جستجو یک کاراکتر

برای جستجوی رشته از دو دستور / و ? استفاده میشود. هنگامی که دستورات فوق را تایپ میکنید در پایین صفحه ظاهر میشوند و در ادامه باید رشته مورد نظر را وارد نمایید.

تفاوت دو دستور فوق در جهت جستجو هست. دستور / جستجو را از محل مکان نما رو به جلو یا بطرف پایین فایل انجام میدهد. و دستور  ? رو به عقب یا بالای فایل جستجو میکند.

دستورات n و N جستجوهای قبلی را تکرار میکنند. فرض کنید با دستور / کلمه ای را جستجو کرده اید. بعد از اولین نتیجه هر بار کلید n را فشار دهید جستجو را در جهت جستجوی دستور / ادامه خواهد داد و اگر دستور N را وارد نمایید جستجو را در خلاف جهت جستجوی دستور / ادامه خواهد داد.

برخی کاراکترها مفهوم خاصی هنگام استفاده از دستورات جستجو دارند. و بعد از عبارت مورد نظر نوشته میشوند و بعنوان بخشی از عبارت مورد جستجو تلقی میشوند.

کاراکتر ^   جستجو را در ابتدای خط انجام دهد. این کاراکتر باید قبل از عبارت مورد جستجو قرار گیرد.

کاراکتر .    اگر عبارتی را بعد کاراکتر . بنویسید هر کلمه ای که دارای آن عبارت باشد را  برای شما نمایش خواهد داد.

کاراکتر *   بعد از دستور جستجو عبارت مورد جستجو را نوشته و سپس کاراکتر * را بنویسید هر کلمه ای که حداقل یک کاراکتر از عبارت نوشته شده قبل از * را داشته باشد بعنوان نتیجه جستجو ارائه خواهد داد.

کاراکتر $    به جستجوی عبارت نوشته شده در انتهای خط میپردازد. این کاراکتر را در انتهای عبارت مورد جستجو می نویسند.

دستورات set در ویرایشگر  vi در لینوکس

با این دستورات میتوانید ظاهر صفحه vi را تغییر بدهید.

برای استفاده از این دستور باید در مد دستوری بوده و بعد از تایپ دستور set: یکی از آپشن های زیر را بنویسید:

nu         در سمت چپ در ابتدای هر خط شماره خط آن را مینویسد.

ic          هنگام جستجو به بزرگی یا کوچک بودن حروف اهمیتی نمیدهد.

ro         فایل را تبدیل به فایل فقط خواندنی میکند.

term    نوع ترمینال را چاپ میکند.

bf        کاراکترهای کنترلی را از ورودی نادیده میگیرد.

اجرای دستورات لینوکس در داخل vi

ویرایشگر vi دارای این قابلیت است که بتوانید از داخل آن دستورات لینوکس را اجرا نمایید. برای این کار باید در مد دستوری عبارت!: را نوشته و سپس دستور مورد نظر را بنویسید.

برای مثال وقتی میخواهید فایل را با نام مورد نظر خود ذخیره نمایید با زدن دستور ls بعد از عبارت !: میتوانید که آیا فایلی با نام مورد نظر موجود هست یا خیر.

نتیجه دستور ls در صفحه به شما نمایش داده خواهد شد. برای خارج شدن از نتیجه دستور زده شده و برگشتن به محیط vi میتوانید کلیدی دلخواه از کیبورد را فشار دهید.

به عنوان مثال برای خروج از دستور top باید کلید q را فشار دهید با فشار دادن کلید های دیگر قادر به خروج نخواهید بود.

 نکات مهم کار با ویرایشگر vi در لینوکس

برای اینکه هنگام کار با ویرایشگر vi در لینوکس دچار مشکل نشوید به نکات زیر توجه فرمایید:

برای کار کردن با دستورات باید در مد دستوری باشید. برای اینکه مطمئن باشید در مد دستوری هستید دو بار کلید ESC را فشار دهید.

هنگام کار با دستورات باید به بزرگ و کوچک بودن حروف باید دقت کنید.

برای وارد کردن متن در فایل باید در مد درج باشید.

امیدواریم آموزش ویرایشگر vi در لینوکس برای شما مفید واقع شده باشد.

 

 

اشتراک گذاری

تفاوت ویرایشگر vi و nano در چیست؟

تفاوت های زیادی دارند ولی ویرایشگر vi قدرت بیشتری دارد علاوه بر اینکه کار کردن با آن دشوارتر از ویرایشگر نانو میباشد.

ایا میتوان ویراشگر دیگری در کنار vim داشته باشیم؟

بله , همانگونه که در ویندوز میتوانید تعداد زیادی ویرایشگر مثل نوت پد و نوت پد ++ را در کنار هم داشته باشیم در لینوکس و یونیکس هم به همین ترتیب است. مانند ویرایشگر nano و vi در کنار هم.

چگونه در لینوکس ویرایشگر پیشفرض را عوض کنیم مانند ویندوز؟

در لینکوس به دلیل ساختار رابط کاربر و ماشین اکثر موارد باید تنظیم شود مثل ویرایشگر پیشفرض ولی در لینوکس شما وقتی فایلی را قصد باز کردن و ادیت داشته باشید باید با دستور اینکار را انجام دهید مثل:

sudo vi filename.txt

sudo nano filename.txt

مقالات مرتبط این مطلب پیشنهاد می شود

خدمات فاما سرور

  • سرور مجازی

    سرور مجازی

    سرور مجازی یکی از سرویس های پر استفاده و مقرون بصرفه برای کسب و کارهای کوچک و خدمات سایر در ضمینه IT و شبکه میباشد که توان پشتیبانی از 128 هسته و 512 گیگ رم را دارد.

  • سرور اختصاصی

    سرور اختصاصی

    سرور های اختصاصی فاماسرور از دو گروه نسل جدید و پردازش سنگین استفاده میشود که میتوانید تا 155 گیگاهرتز پردازش و تا 1.5 ترابایت رم را در اختیار داشته باشید.

  • بیگ بلوباتن

    بیگ بلوباتن

    سرور بیگ بلوباتن اختصاصی و مجازی یکی از خدمات , برای استفاده از کلاس های آموزشی , جلسات و ... بصورت دوطرفه و با کیفیت تضمین شده میباشد.

  • هاست لینوکس

    هاست لینوکس

    در هاست لینوکس با منابع گوناگون امکان میزبانی از سایت های بزرگ و پر بازدید نیز وجود دارد و میتوان از مزایا و خدمات آن استفاده کرد.

  • هاست دانلود

    هاست دانلود

    هاست های دانلود فاماسرور میزبانی شده در دیتاسنتر های لول 1 ایران میباشد که با سخت افزار ها و استوریج های نسل جدید میزبانی و پشتیبانی میشوند.

  • ثبت دامنه

    ثبت دامنه

    ثبت دامنه های بین المللی , دامنه ir و دامنه های با پسوند های مختلف در فاماسرور پشتیبانی میشوند.