آموزش BASH

Bash یک پوسته یونیکس و زبان دستوری است که به عنوان یک نرم افزار رایگان جایگزین پوسته Bourne، به وسیله بریان فوکس و برای پروژه GNU نوشته شده است. با اولین انتشار آن در 1989، این برنامه به طور گسترده ای به عنوان پوسته پیش فرض برای توزیع‌های لینوکس و سیستم عامل macOS اپل ( پیشتر با نام OS X) توزیع شده است. در سال 2016، این برنامه همچنین به وسیله مایکروسافت برای استفاده در بروزرسانی سالیانه ویندوز 10 در دسترس قرار گرفت که البته به طور پیش فرض نصب نشده است.

Bash یک پردازنده دستور است که عمدتا در یک پنجره متنی که کاربر دستوراتی که سبب ایجاد اقدام‌ها می‌شوند را در آن می‌نویسد، اجرا می‌شود. Bash همچنین می‌تواند دستورات را از یک فایل که اسکریپت نامیده می‌شود، بخواند. همانند تمامی‌پوسته‌های یونیکس، این پوسته نیز از گسترش نام فایل[1] (تطبیق تصادفی[2])، پایپینگ، here documents [3]، جایگزینی فرمان، متغیر‌ها و ساختار‌های کنترلی برای ارزیابی شرایط[4] و تکرار پشتیبانی می‌کند. کلمات کلیدی، دستور زبان و دیگر ویژگی‌های پایه زبان، همگی از sh کپی برداری شده اند. Bash دیگر ویژگی‌ها از قبیل تاریخچه نیز از csh و ksh کپی گرفته شده اند. Bash یک پوسته پوزیکس[5] است، اما با تعدادی افزونه.[6]

train-learn-bin-bash

نام این پوسته، مخففی است برای Bourne-again shell، جناسی برای نام پوسته بورن[7] که این Bash، جایگزین آن شده و عبارت “تولد دوباره” که نشان دهنده باز تولد روحانی در مسیحیت معاصر آمریکایی است. یک حفره امنیتی در Bash که تاریخ آن به نسخه 10.3 برنامه (آگوست 1989) باز می‌گردد، یعنی dubbed Shellshock، در اوایل سپتامبر 2014 کشف شده، و به سرعت به طیف گسترده ای از حملات اینترنتی منجر شد. با شناسایی این باگ‌ها، پچ‌هایی برای رفع این مشکلات ایجاد شدند اما هنوز همه کامپیتور‌ها، مورد به روز رسانی قرار نگرفته اند.

ویژگی‌ها

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

دستور زبان فرمان‌های Bash، شامل ایده‌هایی مانند خط فرمان ویرایش، تاریخچه فرمان، مسیر پشته، متغیر‌های $RANDOM  و $PPID   و نحو فرمان‌های جایگزین پوزیکس  $(…) ، می‌شود که از پوسته کورن (KSH) و پوسته سی (CSH) گرفته شده اند. هنگامی‌که کاربر کلید tab را در یک فرمان پوسته تعاملی فشار دهد، Bash به صورت خودکار از خط فرمان استفاده کرده تا نام‌های برنامه، نام فایل‌ها و نام متغیر‌های نیمه تایپ شده را کامل کند. سیستم کامل کننده خط فرمان Bash  ، بسیار انعطاف پذیر و قابل شخصی سازی بوده و غالبا در پکیج‌هایی با توابعی که آرگومان‌ها و نام‌های فایل را برای برنامه‌ها و وظایف خاص کامل می‌کنند، عرضه می‌شود.

دستور زبان Bash حاوی بسیاری از افزونه‌هایی است که بورن فاقد آن‌ها بود. Bash می‌تواند محاسبات اعداد صحیح(“ارزیابی حسابی”) را بدون فرآیند‌های بیرونی، انجام دهد. برای این منظور، Bash از نحو دستور ((…)) و متغیر‌های ((…))$ استفاده می‌کند. دستور زبان این پوسته، تغییر مسیر ورودی/خروجی را ساده می‌کند. برای مثال، این برنامه می‌تواند با استفاده از عملگر &>، خروجی استاندارد (stdout) و خطای استاندارد (stderr) را در یک زمان تغییر مسیر دهد. این راه، ساده تر از شیوه معادل پوسته بورن  ‘command > file 2>&1’ است. Bash با استفاده از دستور <(command) و >(command) که خروجی ( یا ورودی) یک دستور را در جایی که نام فایل به طور معمول استفاده می‌شود، جایگزین می‌کند، از فرآیند جایگزینی پشتیبانی می‌کند ( این کار از طریق لوله‌های بدون نام /proc/fd/، بر روی سیستم‌هایی که از آن پشتیبانی می‌کنند، و یا از طریق لوله‌هایی که در جای لازم، نام‌های موقت دارند، اجرا می‌شود).

لینک اصلی

[1] filename globbing- به معنی فرآیند گسترش یک نام فایل غیر خاص که حاوی یک فرانویسه است، به مجموعه ای از نام فایل‌هایی که در کامپیوتر یا سرور یا … ذخیره شده اند.

[2] wildcard matching

[3] یک لفظ فایل یا لفظ جریان ورودی است

[4] condition-testing

[5] POSIX

[6] extension

[7] Bourne

[8] Super set

پیام بگذارید

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

− five = 3