آموزش اسکریپت نویسی

آموزش اسکریپت نویسی پوسته گنو-لینوکس

آموزش اسکریپت نویسی

آموزش اسکریپت نویسی پوسته گنو-لینوکس

راهنمای اسکریپت نویسی BashGuide




مقدمه

ازشما درخواست می‌شود ، اضافه کنید ، اصلاح کنید ، به شرطی که آن‌ها را مصون از خطا نگاه دارید.لطفاً هر نمونه کدی که می‌نویسید ، آزمایش کنید .

تمام اطلاعاتی که در اینجا ارائه گردیده، بدون ضمانت و تضمین درستی می‌باشد. با مسئولیت خودتان به کارببرید. هرگاه مردد هستید، لطفاً صفحه‌های man یا info گنو را به عنوان مراجع معتبر کنکاش کنید.


در باره این راهنما

هدف این راهنما کمک به افرادی است که علاقمند به یادگیری کار با BASH می‌باشند. آرزومند است تکنیک‌های تمرینی خوبی، برای کار با BASH و نوشتن اسکریپت‌های ساده را تعلیم دهد.

این راهنما کاربران مبتدی را هدف قرار داده است. فرض بر عدم وجود دانش پیشرفته می‌نماید-- فقط توانایی متصل شدن به یک سیستم مبتنی بر یونیکس وبازکردن رابط خط فرمان(ترمینال) را انتظار دارد. اگر چگونگی استفاده از یک ویرایشگر متن را بدانید، کمک خواهد نمود، ما ویرایشگرها را پوشش نمی‌دهیم، انتخاب ویرایشگر خاصی را توصیه نمی‌کنیم . آشنایی با مبانی مجموعه ابزار یونیکس،یا سایر زبان‌های برنامه نویسی یا مفاهیم برنامه نویسی ضروری نیست، اماآنهایی که از این قبیل آگاهی‌ها دارند، ممکن است برخی مثال‌ها را سریع‌تر درک کنند.

اگر مطلبی برای شما مبهم می‌باشد، ازشما میخواهیم آن را گزارش کنید(از BashGuideFeedback ، یا کانال ‎#bash‎ در irc.freenode.org) تا امکان پالایش آن برای خوانندگان آتی فراهم گردد .

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

نگاه دارنده اصلی این سند:

  • -- Lhunath (مولف اصلی)

  • -- GreyCat

  • -- مترجم: محمود پهلوانی

این راهنما همچنین به صورت PDF format در دسترس می‌باشد.به طور جایگزین، پس از رفتن به FullBashGuide موفق به چاپ هم می‌شوید. وتضمین می‌شود که همواره آخرین نگارش این سند را چاپ می‌گیرید.


یک تعریف

BASH کوته‌نوشتی برای Bourne Again Shell است. بر مبنای پوسته Bourne ، و تا حد ممکن سازگار با ویژگی‌های آن می‌باشد.

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

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

BASH سیستم عامل شما نیست. مدیر پنجره شما نیست. ترمینال شما نیست( اما اغلب داخل ترمینال شما اجرا می‌شود ). صفحه‌کلید یا موشواره شما را کنترل نمی‌کند. سیستم شما را پیکربندی نمی‌کند، محافظ نمایشگر را فعال نمی‌سازد، فایل‌ها را با دوبار کلیک نمودن روی آنها برایتان باز نمی‌کند. به طور کلی Bash درگیر فعال کردن برنامه‌ها از طریق مدیر پنجره یا محیط رومیزی شما نمی‌شود. این مهم است که بدانید Bash فقط رابط شما برای اجرای فرمان‌ها( با استفاده از دستور زبان آن ) هم در اعلان محاوره‌ای آن و هم در اسکریپت‌های Bash می‌باشد.



  • پوسته یا شل: یک مفسر فرمان( احتمالاً محاوره‌ای )، عمل کننده به عنوان یک لایه بین کاربر و سیستم است.
    BASH: یا Bourne Again Shell، یک پوسته سازگار با Bourne است.


کاربرد Bash

اکثر کاربران تصور می‌کنند که BASH یک اعلان و خط‌فرمان است. این BASH در حالت محاوره‌ای است. BASH همچنین می‌تواند در وضعیت غیر محاوره‌ای اجرا گردد، مانند وقتی‌که اسکریپت‌ها اجرا می‌شوند. می‌توانیم از اسکریپت‌ها برای خودکار سازی برخی وظایف استفاده کنیم. اسکریپت‌ها اساساً لیستی از فرمان‌ها می‌باشند(دقیقاً مانند همان فرمان‌هایی که می‌توانید در خط‌فرمان تایپ نمایید)، اما در یک فایل ذخیره شده‌اند. موقعی که اسکریپت اجرا می‌شود، تمام این دستورات( به طور معمول ) به ترتیب یکی پس از دیگری اجرا می‌شوند.

ما با دستورات اساسی در شل محاوره‌ای شروع می‌کنیم. موقعی که شما با آنها مأنوس شوید، می‌توانید آنها را با هم در اسکریپت‌ها قرار بدهید. مهم!
شما باید خودتان را با فرمان‌های man و apropos در شل آشنا و مأنوس نمایید. آنها برای خودآموزی ضروری می‌باشند.

    $ man  man
    $ man apropos

در این راهنما علامت $ در ابتدای یک سطر بیانگر اعلان BASH می‌باشد. به طور سنتی، یک اعلان شل به $ یا % یا # ختم می‌گردد. اگر به $ ختم شود، به آن معناست که یک شل سازگار با پوسته Bourne است( ازقبیل یک پوسته POSIX ، یا یک شل Korn ، یا BASH). اگر به علامت % ختم شود بیانگر یک Cشل (csh یا tcsh) است، این راهنما C shell را پوشش نمی‌دهد. اگر به کاراکتر # ختم شود، نشان دهنده آنست که شل با حساب کاربر ارشد(root) اجرا می‌گردد، و بایستی بسیار محتاط و دقیق باشید.

اعلان واقعی شما احتمال دارد خیلی طولانی‌تر از $ باشد. اعلان فرمان‌ها اغلب خیلی شخصی‌سازی شده هستند.

دستور man از "manual" می‌آید، این دستور مستندات(صفحات man نامیده شده‌اند) را در مباحث گوناگون باز می‌کند. شما آن را به صورت اجرای دستور ‎ man [topic]‎ در اعلان BASH استفاده کنید، که [topic] در آن نام صفحه‌ایست که می‌خواهید آن را بخوانید. توجه داشته باشید که بسیاری از این صفحه‌ها( علیرغم ظاهر نامشان ) به طور قابل ملاحظه‌ای طولانی‌تر از یک صفحه چاپ شدنی می‌باشند. هر فرمان( یا برنامه کاربردی ) در سیستم شما احتمال دارد یک صفحه man داشته باشد. همچنین برای سایر مواردی از قبیل فراخوان‌های سیستمی یا فایل‌های پیکربندی خاص نیز صفحاتی موجود است. در این راهنما، ما فقط دستورات را پوشش خواهیم داد.

توجه نمایید که اگر در جستجوی اطلاعاتی در باره دستورات داخلی BASH(دستورات فراهم شده توسط خود BASH، و نه برنامه‌های خارجی) می‌باشید، باید به جای آن دستور man bash را به کار ببرید. مستندات BASH گسترده و مفصل است. یک مرجع ممتاز و بسیار خوب است ولو اینکه تکنیکی‌تر از این راهنمامی‌باشند.

BASH همچنین یک دستور help که خلاصه کوتاهی از دستورات داخلی را شامل می‌شود ارائه می‌نماید(که در آینده در مورد آنها صحبت خواهیم نمود) .

    $ help

    $ help read



  • حالت محاوره‌ای: حالتی از عملکرد که در آن یک اعلان در هر زمان یک دستور را از شما می‌پذیرد.

  • اسکریپت: یک فایل محتوی یک سلسله دستورات برای اجرا یکی پس از دیگری.


فهرست مطالب

این راهنما به بخش‌هایی تقسیم شده، که مقصود خوانده شدن آن تقریباً به همان ترتیب ارائه شده است. اگر شما با پرش از بخش معینی به جلو بروید، ممکن است با کمبود اطلاعات پیش‌زمینه‌ای بخش‌های قبلی مواجه شوید. (لینک‌هایی جهت مراجعه به بخش‌های مناسب در مباحث قبلی در همه موارد ارائه نگردیده.)

نظرات 0 + ارسال نظر
ایمیل شما بعد از ثبت نمایش داده نخواهد شد