منبع اصلی نوشتار زیر در این لینک قرار دارد

انواع دستورات

ادامه یادداشت قبلی


راهنمای آموزشی  BashGuide   مؤلف  Lhunath


انواع دستورات

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

  • مستعارها: مستعارها روشی برای کوتاه نمودن دستورات است. اینها فقط در پوسته‌های محاوره‌ای به کار می‌روند، نه در اسکریپت‌ها. ( این یکی از معدود تفاوتهای یک اسکریپت و یک پوسته محاوره‌ای می‌باشد.) مستعار یک نام کوتاه شده برای یک رشته معین است. موقعی که آن نام به عنوان یک دستور استفاده شود، قبل از اینکه فرمان اجرا گردد، نام با رشته جایگزین می‌گردد. بنابراین به جای آن اجرا می‌گردد:

      $ nmap -P0 -A --osscan_limit 192.168.0.1

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

      $ alias nmapp=\'nmap -P0 -A --osscan_limit\'
      $ nmapp 192.168.0.1

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

  • توابع: توابع در BASH چیزی مشابه مستعارها هستند، اما قدرتمندتر. بر خلاف مستعارها، توابع می‌توانند در اسکریپت‌ها به کار بروند. یک تابع محتوی فرمان‌های پوسته است، بسیار زیاد مانند یک اسکریپت کوچک، حتی می‌توانند شناسه‌ها را قبول کنند و متغیرهای محلی ایجاد کنند. وقتی یک تابع فراخوانده می‌شود، دستورات داخل آن اجرا می‌شوند. توابع به طور کامل‌تری بعداً در این راهنما پوشش داده می‌شوند.

  • دستورات داخلی: BASH تعدادی دستور اصلی در ساختمان خودش دارد، از قبیل cd (تغییر دایرکتوری)، echo (نوشتن خروجی)، وغیره. می‌توانید آنها را به عنوان توابعی که از قبل فراهم شده‌اند در نظر بگیرید.

  • کلمات کلیدی: کلمه‌های کلیدی کاملاً مانند دستورات داخلی می‌باشند، فقط اختلاف اصلی آنها درقواعد تجزیه ویژه در نظر گرفته شده برای آنها می‌باشد. برای مثال، ‎[‎ یک دستور داخلی است، در حالیکه ‎ [[‎ یک کلمه کلیدی است. هر دو برای بررسی موضوعات به کار می‌روند، اما چون ‎[[‎ یک کلمه کلیدی است تا فرمان داخلی، این کلمه کلیدی از چند قاعده ویژه تجزیه سود می‌برد که کاربرد آن را آسانتر می‌سازد:

      $ [ a < b ]
     -bash: b: No such file or directory
      $ [[ a < b ]]

    مثال اول یک خطا باز می‌گرداند، زیرا bash سعی می‌کند فایل b را به دستور [ a ] تغییر مسیر بدهد(بخش تغییر مسیر فایل را ملاحظه کنید) مثال دوم به طور واقعی آنچه شما انتظار دارید انجام می‌دهد. کاراکتر ‎<‎ وقتی که با یک فرمان ‎[[‎ به کار می‌رود، دیگر معنی خاص عملگرتغییر مسیر را ندارد.

  • اجرایی‌ها: آخرین نوع دستوری که می‌تواند توسط bash اجرا بشود، یک دستور اجرایی است، که همچنین یک دستور خارجی یا برنامه‌کاربردی نیز نامیده می‌شود. اجرایی‌ها با استفاده از نام مسیر فراخوانی می‌شوند. اگر فایل اجرایی در دایرکتوری جاری است، به صورت ‎ ./myprogram‎ به کار ببرید. اگر در دایرکتوری ‎ /usr/local/bin‎ است، از ‎/usr/local/bin/myprogram‎ استفاده کنید.

    برای اندکی آسان‌تر نمودن زندگی شما، به‌هرحال، BASH از متغیری استفاده می‌کند، که بگوید در مواقعی که شما فقط نام برنامه کاربردی را می‌دانید و نه نام مسیرکامل آنرا، در کجا برنامه را پیدا کند. این متغیر PATH نام دارد، ومجموعه‌ای از نام مسیرهای دایرکتوری است که با کاراکتر کولن از هم جدا شده‌اند-- به عنوان مثال ‎ /bin:/usr/bin‎ موقعی که یک فرمان بدون نام مسیر در BASH مشخص می‌شود ( مثل myprgram، یا ls)، و یک مستعار، تابع، کلمه کلیدی یا دستور داخلی نباشد BASH در میان دایرکتوری‌های PATH به ترتیب از چپ به راست آنرا جستجو می‌کند، که ببیند آیا آنها دارای فایل اجرایی با نامی که تایپ کرده‌اید، هستند.


  • نکته:
    می‌توانید از فرمان type برای پی‌بردن به نوع یک فرمان استفاده کنید.
    به عنوان مثال:

    $ type rm
    rm is hashed (/bin/rm)
    $ type cd
    cd is a shell builtin




  • مستعارها: یک نام که به یک رشته نسبت داده شده است. موقعی که نام به عنوان یک فرمان به کار برود، با رشته نسبت داده شده تعویض می‌گردد.

  • تابع: یک نام که به یک مجموعه از دستورات نسبت داده شده است . وقتی که نام به عنوان یک دستور استفاده شود، تابع با شناسه‌های به کار رفته در خط‌فرمان ، فراخوانی می‌شود. توابع روش اصلی برای ایجاد فرمان‌های جدید هستند.

  • دستورات داخلی: فرمان‌های معینی که در داخل BASH ساخته شده‌اند. اینها موقعی که در خط‌فرمان اجرا شوند به طور داخلی اجرا می‌شوند( و پردازش جدیدی ایجاد نمی‌کنند ).

  • برنامه‌های کاربردی: یک برنامه که می‌تواند با ارجاع به نام مسیر آن اجرا شود(‎/bin/ls‎)، و یا اگر محل استقرار آن در متغیر PATH شما وجود دارد، با نام آن اجرا گردد.


ادامه دارد ....



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

به اين صفحه امتياز دهيد