اکثر کاربران تصور میکنند که BASH یک اعلان و خطفرمان است. این BASH در حالت محاورهای است. BASH همچنین میتواند در وضعیت غیر محاورهای اجرا گردد، مانند وقتیکه اسکریپتها اجرا میشوند. میتوانیم از اسکریپتها برای خودکار سازی برخی وظایف استفاده کنیم. اسکریپتها اساساً لیستی از فرمانها میباشند(دقیقاً مانند همان فرمانهایی که میتوانید در خطفرمان تایپ نمایید)، اما در یک فایل ذخیره شدهاند. موقعی که اسکریپت اجرا میشود، تمام این دستورات( به طور معمول ) به ترتیب یکی پس از دیگری اجرا میشوند.
ما با دستورات اساسی در شل محاورهای شروع میکنیم. موقعی که شما با آنها مأنوس شوید، میتوانید آنها را با هم در اسکریپتها قرار بدهید. مهم!
شما باید خودتان را با فرمانهای man و apropos در شل آشنا و مأنوس نمایید. آنها برای خودآموزی ضروری میباشند.
$ man man $ man apropos
در این راهنما علامت
اعلان واقعی شما احتمال دارد خیلی طولانیتر از
دستور man از "manual" میآید، این دستور مستندات(صفحات man نامیده شدهاند) را در مباحث گوناگون باز میکند. شما آن را به صورت اجرای دستور man [topic] در اعلان BASH استفاده کنید، که [topic] در آن نام صفحهایست که میخواهید آن را بخوانید. توجه داشته باشید که بسیاری از این صفحهها( علیرغم ظاهر نامشان ) به طور قابل ملاحظهای طولانیتر از یک صفحه چاپ شدنی میباشند. هر فرمان( یا برنامه کاربردی ) در سیستم شما احتمال دارد یک صفحه man داشته باشد. همچنین برای سایر مواردی از قبیل فراخوانهای سیستمی یا فایلهای پیکربندی خاص نیز صفحاتی موجود است. در این راهنما، ما فقط دستورات را پوشش خواهیم داد.
توجه نمایید که اگر در جستجوی اطلاعاتی در باره دستورات داخلی BASH(دستورات فراهم شده توسط خود BASH، و نه برنامههای خارجی) میباشید، باید به جای آن دستور man bash را به کار ببرید. مستندات BASH گسترده و مفصل است. یک مرجع ممتاز و بسیار خوب است ولو اینکه تکنیکیتر از این راهنمامیباشند.
BASH همچنین یک دستور help که خلاصه کوتاهی از دستورات داخلی را شامل میشود ارائه مینماید(که در آینده در مورد آنها صحبت خواهیم نمود) .
$ help $ help read
در پرسش و پاسخهای متداول:
آیا لیستی از ویژگیهای اضافه شده به یک نگارش معین Bash وجود دارد؟
حالت محاورهای: حالتی از عملکرد که در آن یک اعلان در هر زمان یک دستور را از شما میپذیرد.
اسکریپت: یک فایل محتوی یک سلسله دستورات برای اجرا یکی پس از دیگری.
BASH کوتهنوشتی برای Bourne Again Shell است. بر مبنای پوسته Bourne ، و تا حد ممکن سازگار با ویژگیهای آن میباشد.
شلها مفسرهای فرمان هستند. آنها برنامههای کاربردی میباشند که قابلیت صدور دستورات محاورهای کاربران به سیستم عامل، یا اجرای سریع پردازشهای دستهای را میسر میسازند. به هیچ وجه برای اجرای برنامهها لازم نمیباشند، آنها صرفاً یک لایه بین فراخوانهای سیستم و کاربر هستند.
شل را به مثابه روشی برای صحبت کردن با سیستم خود در نظر آورید. سیستم شما برای اکثر کارهایش احتیاجی به آن ندارد، اما شل یک رابط بسیار خوب مابین شما و آنچه سیستم میتواند ارائه کند، میباشد. شل به شما اجازه میدهد که حساب کنید، بررسیهای اصلی را انجام دهید و برنامههای کاربردی را اجرا نمایید. و از آن مهمتر به شما اجازه میدهد این اعمال را با یکدیگر ترکیب کنید و برنامهها را به هم متصل نموده و عملیات پیچیده را انجام دهید و وظایف را خودکار سازید.
BASH سیستم عامل شما نیست. مدیر پنجره شما نیست. ترمینال شما نیست( اما اغلب داخل ترمینال شما اجرا میشود ). صفحهکلید یا موشواره شما را کنترل نمیکند. سیستم شما را پیکربندی نمیکند، محافظ نمایشگر را فعال نمیسازد، فایلها را با دوبار کلیک نمودن روی آنها برایتان باز نمیکند. به طور کلی Bash درگیر فعال کردن برنامهها از طریق مدیر پنجره یا محیط رومیزی شما نمیشود. این مهم است که بدانید Bash فقط رابط شما برای اجرای فرمانها( با استفاده از دستور زبان آن ) هم در اعلان محاورهای آن و هم در اسکریپتهای Bash میباشد.
در مستندات گنو: Introduction
پوسته یا شل: یک مفسر فرمان( احتمالاً محاورهای )، عمل کننده به عنوان یک لایه بین کاربر و سیستم است.
BASH: یا Bourne Again Shell، یک پوسته سازگار با Bourne است.
ازشما درخواست میشود ، اضافه کنید ، اصلاح کنید ، به شرطی که آنها را مصون از خطا نگاه دارید.لطفاً هر نمونه کدی که مینویسید ، آزمایش کنید .
تمام اطلاعاتی که در اینجا ارائه گردیده، بدون ضمانت و تضمین درستی میباشد. با مسئولیت خودتان به کارببرید. هرگاه مردد هستید، لطفاً صفحههای man یا info گنو را به عنوان مراجع معتبر کنکاش کنید.
هدف این راهنما کمک به افرادی است که علاقمند به یادگیری کار با BASH میباشند. آرزومند است تکنیکهای تمرینی خوبی، برای کار با BASH و نوشتن اسکریپتهای ساده را تعلیم دهد.
این راهنما کاربران مبتدی را هدف قرار داده است. فرض بر عدم وجود دانش پیشرفته مینماید-- فقط توانایی متصل شدن به یک سیستم مبتنی بر یونیکس وبازکردن رابط خط فرمان(ترمینال) را انتظار دارد. اگر چگونگی استفاده از یک ویرایشگر متن را بدانید، کمک خواهد نمود، ما ویرایشگرها را پوشش نمیدهیم، انتخاب ویرایشگر خاصی را توصیه نمیکنیم . آشنایی با مبانی مجموعه ابزار یونیکس،یا سایر زبانهای برنامه نویسی یا مفاهیم برنامه نویسی ضروری نیست، اماآنهایی که از این قبیل آگاهیها دارند، ممکن است برخی مثالها را سریعتر درک کنند.
اگر مطلبی برای شما مبهم میباشد، ازشما میخواهیم آن را گزارش کنید(از BashGuideFeedback ، یا کانال #bash در irc.freenode.org) تا امکان پالایش آن برای خوانندگان آتی فراهم گردد .
همچنین از شما دعوت میگردد، با توسعه و گسترش این راهنما، یا تصحیح اطلاعات نامعتبر یا ناقص آن در بهبود بخشی آن همکاری نمایید.
نگاه دارنده اصلی این سند:
این راهنما همچنین به صورت PDF format در دسترس میباشد.به طور جایگزین، پس از رفتن به FullBashGuide موفق به چاپ هم میشوید. وتضمین میشود که همواره آخرین نگارش این سند را چاپ میگیرید.
من در حال ترجمه راهنمای آموزشی با نام BashGuide که به صورت مشترک ایجاد و نگهداری میشود، اما مؤلف اصلی آن Lhunath میباشد، هستم. این راهنمای آموزشی، بخشی از Greg's Wiki میباشد که گستردهتر از این راهنماست، و شامل چند بخش قابل توجه از جمله BashFAQ که در برگیرنده بیش یکصد پرسش و پاسخ رایج است، و BashPitfalls در برگیرنده بیش از چهل مورد اشتباهات رایج در Bash و BashSheet و چندین فایل جداگانه در تشریح گستردهتر مباحث این راهنما میباشد، که در این راهنما به آنها لینک داده شده است.
مجموع آنها قریب دویست فایل است، که برخی از آنها خود به تنهایی چندین صفحه میباشند. احتمالاً پس از تکمیل ترجمه راهنما به نوبت آنها را ترجمه و در اختیار علاقمندان قرار خواهم داد.
Steve Parker یک مشاور یونیکس و لینوکس با ۲۰ سال تجربه یونیکس و بیش از ۱۵ سال تجربه گنو-لینوکس است.
او یک راهنمای آموزشی اسکریپت نویسی پوسته به صورت online در اینجا قرار داده است، ترجمه فارسی آن را میتوانید در اینجا مطالعه نمایید. همچنین فایل pdf این ترجمه با حجم ۶۰۰K نیز قابل Download است.
نقلقولی از صفحه آغاز این راهنما در معرفی آن از زبان یکی از دوستداران آن:
Doug Kramer (Java, Google.com) می گوید :
"موقعی که من در تیم جاوای شرکت Sun شروع به نوشتن اسکریپت CGIدر پوسته بورن نمودم ، اینترنت را برای یافتن یک راهنمای آموزشی خوب جستجو کردم و از راهنمای Steve Parker، که به راستی آن را دوست دارم ، استفاده نمودم . حالا که من به گوگل نقل مکان کرده ، لینوکس و Bash را برگزیدهام ، تصمیم گرفتهام ، اینجا درگوگل به طور اساسی ازآن به عنوان دوره مقدماتی اسکریپتنویسی bash برای تکنیک نویسان خودمان استفاده کنم . من آن را به عنوان یک نوشته مناسب و سطح بالا پیشنهاد میکنم ، به علاوه ، مرجع سودمندی هم دارد "