پایپ لاین در دستورات لینوکس

منتشر شده در دسته : خط فرمان لینوکس

پایپ لاین در خط فرمان !؟ چه معنایی دارند ؟ پایپ لاین در خط فرمان چگونه استفاده می شوند  ؟ پاسخ این سوالها را در این آموزش دریافت می کنید .

پایپ لاین در خط فرمان

توانایی خواندن اطلاعات از ورودی استاندارد و ارسال آن به خروجی استاندارد با یک ویژگی شل (Shell) به نام پایپ لاین در خط فرمان Pipelines یا همان کاراکتر خط عمودی | ایجاد شده است . با استفاده از عملگر خط عمودی | خروجی استاندارد یک دستور به داخل ورودی استاندارد دستوری دیگر ریخته می شود . چگونه ؟ به این شکل : command1 | command2 با این کار دستور اول هر خروجی که داشته باشد به داخل ورودی دستور دوم ریخته می شود . برای توضیح کامل آن از دستور less استفاده می کنیم . دستور less دستوری است که ورودی استاندارد را قبول می کند . بسیار عالی . ما می توانیم از دستور less برای نمایش صفحه به صفحه خروجی هر دستوری استفاده کنیم . به مثال زیر توجه کنید :

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

می بینید در اینجا با استفاده از علامت پایپ لاین در خط فرمان | خروجی دستور ls -l /usr/bin را به داخل ورودی دستور less ریختیم . پس از این دستور برای مثال های بعدی استفاده می کنیم .

فیلترها

پایپ لاین در خط فرمان اغلب برای انجام عملیات های پیچیده بر روی داده استفاده می شود . ممکن است که چندین دستور را با استفاده از پایپلاین به هم متصل کنیم . دستوراتی که به این شیوه استفاده می شوند را فیلتر می نامند . فیلترها ورودی را دریافت کرده آن را تغییر داده و سپس آن در خروجی نشان می دهند . اولین فیلتری که امتحان خواهیم کرد sort می باشد . تصور کنید می خواهیم یک لیست ترکیبی از برنامه های اجرایی /bin و /usr/bin ایجاد کرده و آنها را مرتب کنیم و لیست را نمایش دهیم .

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

از آنجایی که ما دو پوشه /bin و /usr/bin را تعیین کرده ایم خروجی دستور ls از دو لیست مرتب شده تشکیل شده , یکی برای هر شاخه . ولی با اضافه کردن فیلتر sort با استفاده از پایپلاین , داده در یک لیست مرتب شده نمایش داده می شود .

دستور uniq – گزارش یا حذف خطوط تکراری

دستور uniq همانطور که از نامش بر میاد (به معنی یگانه و منحصر به فرد) با خطوط تکراری مشکل دارد . دستور uniq اغلب در کنار sort به کار می رود . دستور uniq یک لیست مرتب شده از داده ها را از ورودی استاندارد یا یک آرگومان نام فایل قبول می کند , و به صورت پیش فرض هر خط تکراری موجود در لیست را حذف می کند . پس برای اینکه مطمئن شویم لیست ما هیچ مورد تکراری ندارد (که در این مورد که مثال می زنیم اسم برنامه هاست که در هر دو پوشه /bin و /usr/bin وجود دارد ) بایستی دستور uniq را به پایپلاین های خود اضافه کنیم . همانند مثال زیر :

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

در این مثال , از uniq برای حذف هر مورد اضافی از خروجی دستور sort استفاده کردیم . اگر به جای حذف بخواهیم لیست موارد تکراری را ببنیم میتوانیم از گزینه d- استفاده کنیم :

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

دستور wc نمایش تعداد بایت , کلمه و خط

دستور wc مخفف word count به معنی تعداد کلمات است . این دستور به منظور نمایش تعداد خطوط , کلمات و بایت های موجود در فایل ها به کار می رود . همیشه مثال بهتر توضیح می دهد :

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

در این مثال دستور سه شماره را نمایش می دهد : تعداد خطوط (1) , تعداد کلمات (9) و تعداد بایت های موجود (54) در لیست ls-output.txt . همانند دستورات قبلی اگر بدون آرگومان های خط فرمان به کار رود , استاندارد ورودی را دریافت می کند . گزینه l- خروجی را محدود می کند و فقط تعداد خطوط را نشان می دهد . اضافه کردن آن به یک پایپلاین ها می تواند راه خوبی برای شمارش موارد باشد . برای مشاهده تعداد آیتم هایی که ما در لیست مرتب خود داریم می توانیم دستور زیر را بکار بریم :

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

دستور grep نمایش خطوطی که یک الگوی خاصی دارند

grep یک برنامه قدرتمند است که به منظور پیدا کردن الگوی خاص متن در داخل فایل ها به کار می رود . به این صورت به کار می رود : grep pattern [file…]
وقتیکه grep با یک الگو در فایل مواجه می شود , خطی که آن الگو در داخل آن وجود دارد را در صفحه نمایش چاپ می کند . الگوهایی که grep می توانند داشته باشند ممکن بسیاری پیچیده باشند ولی برای الان چون می خواهیم تمرکز را بر روی آموزش بگذاریم , از موارد ساده استفاده می کنیم . الگوهای پیشرفته را در درس های آینده خواهیم گفت .
فرض کنید که می خواهیم همه فایل هایی که در داخل لیست برنامه ها وجود دارند و دارای کلمه zip در نام خود هستند را پیدا کنیم . چنین جستجویی می تواند برای یافتن فایل های فشرده کاربردی باشد . مثال زیر گویای مطلب است :

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

گزینه های کاربردی خوبی برای دستور grep وجود دارد . مثلا -i که باعث می شود grep هنگام اجرا بزرگی و کوچکی حروف را نادیده بگیرد . (معمولا جستجوها حساس به بزرگی و کوچکی هستند) . همچنین گزینه -v به grep می گوید که فقط خطوطی را چاپ کن که با الگو مطابقت ندارند .

head/tail بخش اول و اخر فایل ها را چاپ می کند

برخی اوقات شما همه خروجی یک دستور را نمی خواهید . شاید فقط چند خط اول و یا چند خط آخر خروجی را بخواهید . دستور head ده خط اول و دستور tail ده خط آخر از خروجی های دستور را چاپ می کند . به صورت پیش فرض هر دو دستور ده خط از متن را چاپ می کنند ولی با استفاده از گزینه -n می توانید این مقدار را تغییر دهید .

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

این دستور را می توان همچنین به همراه پایپ لاین در خط فرمان به کار برد به صورت زیر :

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس
Tail گزینه ای دارد که به شما اجازه می دهد تا فایل ها را به صورت زنده و در زمان واقعی (real time) مشاهده کنید . این ویژگی برای مشاهده پیشرفت و روند فایل های لاگ بسیار مفید است . در مثال زیر نگاهی به فایل های پیام در مسیر /var/log می اندازیم . به این منظور دسترسی Super User نیاز است . چرا زیرا /var/log/messages دارای برخی اطلاعات امنیتی می باشد .

پایپ لاین Pipelines خطوط عمودی در دستورات لینوکس

با استفاده از گزینه f- , دستور tail مانیتور فایل را ادامه داده و زمانیکه خطوط جدید اضافه گردد به صورت خودکار در لحظه نمایش داده می شوند . برای خروج از این حالت Ctrl+C را فشار دهید .

لیست دروس

خوشحال می شویم دیدگاههای خود را در میان بگذارید * فرصت پاسخگویی به سوالات در بلاگ وجود ندارد

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *