اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

10 دستور مفید در Chaining Operators (عملگرهای زنجیره ای) در لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    10 دستور مفید در Chaining Operators (عملگرهای زنجیره ای) در لینوکس

    Chaining دستورات لینوکس به معنی، ترکیب چند دستور و اجرایی کردن آنها بر اساس رفتار عملگر مورد استفاده در بین آنها می باشد. Chaining دستورات لینوکسی در حقیقت همانند این است که شما اسکریپت های کوتاه shell را در خود آن شل بنویسید، و آنها را مستقیما از طریق ترمینال اجرا کنید. chaining ممکن است باعث اتوماتیک شدن process شود. علاوه بر این، یک سیستمی که کمتر مورد توجه قرار میگیرد در حقیقت با کمک عملگرهای زنجیره ای (chaining operators) میتواند به شیوه ای systematic بسیار کاربردی شود.


    همچنین توصیه میشود مطالعه کنید:

    آموزش دستور AWK بخش اول


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



    1. عملگر Ampersand (&)

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

    یک دستور را در پس زمینه اجرا کنید:
    کد PHP:
    tecmint@localhost:~$ ping *c5 linux-zone.org 
    دو دستور را با هم و همزمان در پس زمینه اجرا کنید:
    کد PHP:
    root@localhost:/home/tecmint# apt-get update & apt-get upgrade & 


    2. عملگر semi-colon (;)

    عملگر semi-colon امکان اجرای چندین دستور تنها در یک خط را فراهم می کند و اجرای دستورات به ترتیب خواهد بود.
    کد PHP:
    root@localhost:/home/tecmint# apt-get update ; apt-get upgrade ; mkdir test 
    دستور ترکیبی بالا ابتدا دستورالعمل update را اجرا خواهد کرد و سپس upgrade و در نهایت دایرکتوری test را تحت دایرکتوری جاری ایجاد خواهد کرد.



    3. عملگر AND (&&)

    عملگر AND (&&) دستور دوم را به شرطی اجرا خواهد کرد که اجرای اولین دستور با موفقیت بوده باشد، وضعیت exit دستور اول 0 (صفر) باشد. این دستور در بررسی وضعیت اجرایی آخرین command بسیار مفید خواهد بود.

    برای مثال، من می خواهم سایت linux-zone.org را با استفاده از دستور links در ترمینال مشاهده کنم، اما قبل از آن با استفاده از دستور ping باید بررسی کنم که آیا هاست مورد نظر در دسترس هست یا نیست.
    کد PHP:
    root@localhost:/home/tecmint# ping -c3 linux-zone.org && links linux-zone.org 


    4. عملگر OR (||)

    عملگر OR (||) بسیار شبیه به عبارت ‘else‘ در برنامه نویسی است. عملگر بالا امکان اجرا شدن دستور دوم را تنها به شرط fail شدن دستور اول میسر خواهد کرد. وضعیت خروجی دستور اول '1' خواهد بود.

    برای مثال، من می خواهم دستور ‘apt-get update‘ را از طریق اکانت non-root (یوزر غیر root) اجرا کنم و اگر دستور اول شکست خورد، سپس دستور دوم "links linux-zone.org" اجرا خواهد شد.
    کد PHP:
    tecmint@localhost:~$ apt-get update || links linux-zone.org 
    در دستور بالا، به دلیل اینکه کاربر اجازه ی آپدیت سیستم را ندارد، وضعیت و کد خروجی دستور اول '1' خواهد بود و بنابراین دستور آخر ‘links linux-zone.org‘ اجرا خواهد شد.

    چه می شود اگر دستور اول با موفقیت و با یک exit status (وضعیت خروجی) '0' اجرا شود؟ بدیهی است! دستور دوم اجرا نخواهد شد.
    کد PHP:
    tecmint@localhost:~$ mkdir test || links linux-zone.org 
    در اینجا با توجه به اینکه کاربر امکان و اجازه ایجاد فولدر test در دایرکتوری home خود را دارد، قسمت اول دستور با موفقیت اجرا شده و یک وضعیت خروجی '0' بر می گرداند و بنابراین قسمت آخر دستور اجرا نمی شود.



    5. عملگر NOT (!)

    عملگر NOT (!) بیشتر شبیه به عبارت ‘except‘ است. این دستور همه موارد به جز شرط ها را اجرا خواهد کرد. برای فهم این مورد، یک دایرکتوری با نام ‘tecmint‘ در دایرکتوری home خود ایجاد کنید و به آن cd کنید.
    کد PHP:
    tecmint@localhost:~$ mkdir tecmint
    tecmint
    @localhost:~$ cd tecmint 
    سپس، چندین نوع فایل در فولدر ‘tecmint‘ ایجاد کنید.
    کد PHP:
    tecmint@localhost:~/tecminttouch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html 
    تمام فایل هایی که ما در فولدر ‘tecmint‘ ایجاد کرده ایم را ببینید.
    کد PHP:
    tecmint@localhost:~/tecmintls

    a
    .doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml 
    حالا تمام فایل ها بجز فایل html را به یکباره حذف کنید.
    کد PHP:
    tecmint@localhost:~/tecmintrm -!(*.html
    اکنون برای بررسی صحت عملکرد دستور بالا با استفاده از دستور ls فایل های موجود را لیست کنید.
    کد PHP:
    tecmint@localhost:~/tecmintls

    a
    .html  b.html 


    6. عملگر AND – OR (&& – ||)

    عملگر بالا ترکیبی از عملگر های ‘AND‘ و ‘OR‘ می باشد و بیشتر شبیه عبارت ‘if-else‘ می باشد.

    به عنوان مثال linux-zone.org را ping کرده و اگر با موفقیت بود عبارت ‘Verified‘ را چاپ کنیم و در غیر اینصورت عبارت ‘Host Down‘ را چاپ کنیم.
    کد PHP:
    tecmint@localhost:~/tecmintping -c3 linux-zone.org && echo "Verified" || echo "Host Down" 
    نمونه خروجی

    کد PHP:
    PING linux-zone.org (212.71.234.6156(84bytes of data.
    64 bytes from linux-zone.org (212.71.234.61): icmp_req=1 ttl=55 time=216 ms
    64 bytes from linux
    -zone.org (212.71.234.61): icmp_req=2 ttl=55 time=224 ms
    64 bytes from linux
    -zone.org (212.71.234.61): icmp_req=3 ttl=55 time=226 ms

    --- linux-zone.org ping statistics ---
    3 packets transmitted3 received0packet losstime 2001ms
    rtt min
    /avg/max/mdev 216.960/222.789/226.423/4.199 ms
    Verified 
    حالا، ارتباط اینترنت خود را قطع کرده و مجددا همان دستور را اجرا کنید.
    کد PHP:
    tecmint@localhost:~/tecmintping -c3 linux-zone.org && echo "verified" || echo "Host Down" 
    نمونه خروجی
    کد PHP:
    pingunknown host linux-zone.org
    Host Down 


    7. عملگر PIPE (|)

    عملگر PIPE بسیار مفید است در جایی که خروجی اولین دستور به عنوان یک ورودی برای دستور دوم عمل می کند. به عنوان مثال pipeline خروجی دستور ‘ls -l‘ را به ‘less‘ می دهد و خروجی دستور را می توانید ببینید.
    کد PHP:
    tecmint@localhost:~$ ls -less 


    8. عملگر Command Combination {}

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

    به عنوان مثال، بررسی کنید آیا دایرکتوری ‘bin‘ در دسترس است یا خیر، و خروجی مربوطه را چاپ کند.
    کد PHP:
    tecmint@localhost:~$ [ -d bin ] || { echo Directory does not existcreating directory now.; mkdir bin; } && echo Directory exists


    9. عملگر پرانتز Precedence ()

    عملگر پرانتز (Precedence) این امکان را ایجاد می کند که دستور در پرانتز در اولویت اجرا شود.
    کد PHP:
    Command_x1 &&Command_x2 || Command_x3 && Command_x4
    در syntax بالا، اگر Command_x1 به درستی انجام نشود چه اتفاقی خواهد افتاد؟ هیچ یک از دستورات Command_x2، Command_x3،Command_x4 اجرا نخواهد شد، به همین دلیل ما از عملگر پرانتز استفاده می کنیم:
    کد PHP:
    (Command_x1 &&Command_x2) || (Command_x3 && Command_x4
    در syntax بالا، اگر Command_x1 به درستی انجام نشد (fail شد)، Command_x2 نیز همچنین fail خواهد شد، اما هنوز دستور Command_x3 و Command_x4 با توجه به وضعیت خروجی Command_x3 اجرا می شود.


    10. عملگر الحاق Concatenation (\)

    عملگر Concatenation (\) همانطور که از نامش مشخص است برای الحاق دستورات بزرگ در چندین خط در شل استفاده می شود. به عنوان مثال دستور زیر فایل متنی test(1).txt را باز خواهد کرد.
    کد PHP:
    tecmint@localhost:~/Downloadsnano test\(1\).txt 
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 07-14-2019, 02:50 PM.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X