Bash یک محیط خط فرمان با امکانات قدرتمندی برای اجرای دستورات، اسکریپتها در اختیار متخصصان قرار میدهد. با استفاده از Bash، میتوانید دستورات سیستم عامل را اجرا کرده، فایلها را مدیریت کنید، نرمافزارهای مختلف را اجرا کنید و کارهای مختلفی انجام دهید. Bash دارای ساختارهای کنترلی متنوعی است که به شما اجازه میدهد شرایط مختلف را بررسی کرده و براساس آنها تصمیمگیری کنید. همچنین، Bash از متغیرها، حلقهها، توابع و دستورات شرطی پشتیبانی میکند که به شما امکان میدهد برنامههای پیچیدهتری را ایجاد کنید.
با استفاده از Bash، میتوانید اسکریپتهایی بنویسید که دستورات را به صورت خودکار اجرا کنند، فایلها را پردازش کنند، اطلاعات را از ورودی کاربر دریافت کنند و نتایج را به کاربر نمایش دهند. همچنین، Bash به عنوان محیط خط فرمان پیش فرض برای اجرای اسکریپتهای سیستم عامل لینوکس مورد استفاده قرار میگیرد.
اگر شما کاربر لینوکس هستید، احتمالا با Bash آشنا هستید و میتوانید از قدرتهای آن برای اجرای دستورات و نوشتن اسکریپتهای سفارشی استفاده کنید. اما اگر آشنایی کمی با Bash دارید این مقاله را در مجله شبکه برای شما به رشته تحریر در آوردهایم.
تاریخچه کوتاهی در ارتباط با bash
Bash یا "Bourne Again SHell" نسخه اصلاح شده Bourne Shell است که در سال 1989 توسط Brian Fox و Chet Ramey توسعه و انتشار پیدا کرد. این نسخه بهبود یافته از Bourne Shell دارای قابلیتها و امکانات بیشتری بود که استفاده از آن را برای کاربران سیستم عامل یونیکس و لینوکس راحتتر کرد.
با توجه به اینکه Bash بر پایه Bourne Shell ساخته شده است، میتوان گفت تاریخچه Bash به تاریخچه Bourne Shell بازمیگردد. Bourne Shell که به نام sh نیز شناخته میشود، در سال 1977 توسط Stephen Bourne در آزمایشگاه بل شرکت AT&T توسعه یافت.
Bash به محبوبیت بسیاری در دنیای لینوکس و سیستم عاملهای مبتنی بر یونیکس دست پیدا کرد و به عنوان مفسر خط فرمان پیش فرض در اکثر توزیعهای لینوکس مورد استفاده قرار گرفت. در طول سالها، Bash بهبودهای بسیاری را تجربه کرده و به عنوان یکی از مفسرهای خط فرمان قدرتمند و پرکاربرد در محیطهای لینوکسی شناخته شده است.
با استفاده از Bash قادر به انجام چه کارهایی هستیم؟
با استفاده از Bash، حتی به عنوان یک مبتدی، میتوانید انواع وظایف و کارهای مختلفی را انجام دهید. در زیر چند کاربرد اولیه از Bash برای شروع شرح میدهیم.
- اجرای دستورات سیستم: با استفاده از Bash، میتوانید دستورات سیستم را اجرا کنید و به فایلها و پوشهها دسترسی پیدا کنید. به عنوان مثال، میتوانید فایلها را لیست کنید (با استفاده از دستور ls)، پوشهها را ایجاد کنید (با استفاده از دستور mkdir) و فایلها را حذف کنید (با استفاده از دستور rm).
- نوشتن اسکریپتهای ساده: با استفاده از Bash، میتوانید اسکریپتهای سادهای بنویسید تا دستورات متعددی را به صورت خودکار اجرا کنید. به عنوان مثال، میتوانید یک اسکریپت بنویسید که فایلهای مشخصی را به یک پوشه دیگر منتقل کند یا فایلهایی را جستجو کند و نتایج را نمایش دهد.
- مدیریت متغیرها: Bash امکان تعریف و استفاده از متغیرها را فراهم میکند. میتوانید مقادیر را در متغیرها ذخیره کنید و در دستورات بعدی از آنها استفاده کنید. رویکرد فوق برای ذخیره و استفاده از اطلاعاتی مانند نام فایلها، مسیرها، مقادیر تنظیمات و غیره بسیار مفید است.
- استفاده از حلقهها و دستورات شرطی: با استفاده از حلقهها و دستورات شرطی در Bash، میتوانید برنامههای پیچیدهتری بنویسید. حلقهها به شما اجازه میدهند تا یک دستور را تکرار کنید و دستورات شرطی به شما امکان میدهند تا براساس شرایط مختلف تصمیمگیری کنید که کدام دستورات اجرا شوند.
- اجرای برنامهها و اسکریپتهای خارجی: با استفاده از Bash، میتوانید برنامهها و اسکریپتهای خارجی را از خط فرمان اجرا کنید. به بیان دقیقتر برنامههای نوشته شده به زبانهایی مثل Python، Ruby، Perl و غیره را اجرا کنید.
موارد یاد شده تنها چند نمونه از کاربردهای اولیه Bash هستند. با یادگیری بیشتر و تمرین، میتوانید برنامهها و اسکریپتهای پیچیدهتری را با استفاده از Bash بنویسید و از قدرت و امکانات گستردهتر آن بهرهبرداری کنید. منابع آموزشی آنلاین و کتابهای مرتبط نیز میتوانند به شما در یادگیری بیشتر و بهتر مفاهیم و تکنیکهای Bash کمک کنند.
مفاهیم اصلی Bash چیستند؟
برخی از مفاهیم اصلی Bash به شرح زیر هستند:
- مفسر (Interpreter) Bash: یک مفسر خط فرمان است که دستورات را خوانده، تفسیر و اجرا میکند. به بیان دیگر، میتوانید دستورات را مستقیما در خط فرمان وارد کنید و Bash آنها را اجرا کند.
- متغیرها (Variables): امکان تعریف و استفاده از متغیرها را فراهم میکند. متغیرها مقادیری هستند که میتوانید در آنها اطلاعات را ذخیره کنید و در دستورات بعدی از آنها استفاده کنید. برای تعریف یک متغیر، به طور عمومی از نام متغیر و علامت مساوی (=) استفاده میشود.
- پارامترها (Arguments): میتوانید به یک اسکریپت Bash پارامترها و آرگومانها از خط فرمان (command line) بدهید. این پارامترها با استفاده از متغیرهای خاصی مانند $1، $2، $3 و غیره در اسکریپت قابل دسترسی هستند. $1 نشاندهنده آرگومان اول، $2 نشاندهنده آرگومان دوم و غیره است.
- حلقهها (Loops): حلقهها به شما اجازه میدهند یک دستور یا یک گروه از دستورات را تکرار کنید تا شرط مشخصی برآورده شود. دو نوع حلقه معمول در Bash شامل حلقه for و حلقه while است.
- شرطیها (Conditionals): میتوانید در اسکریپتهای Bash از دستورات شرطی استفاده کنید. این دستورات به شما اجازه میدهند بر اساس شرایط مختلف تصمیمگیری کنید که کدام دستورات اجرا شوند. دستورات شرطی معمول در Bash شامل if، else و elif هستند.
- توابع (Functions): امکان تعریف و استفاده از توابع را فراهم میکند. توابع به شما اجازه میدهند یک قطعه کد را تعریف کنید و آن را در نقاط مختلف از اسکریپت خود فراخوانی کنید. این کار به شما کمک میکند تا قسمتهای مختلف کد را به صورت منطقی تقسیم کنید و قابلیت استفاده مجدد را به کد به دست آورید.
موارد یاد شده برخی از مفاهیم اصلی Bash هستند که باید در مورد آنها داشته باشید. با یادگیری و آشنایی بیشتربا این مفاهیم، میتوانید اسکریپتهای Bash ساده تا پیچیدهتر را بنویسید و وظایف مختلف را انجام دهید.
چگونه از Bash استفاده کنیم؟
برای استفاده از Bash، میتوانید مراحل زیر را دنبال کنید:
- باز کردن ترمینال: Bash را میتوانید در ترمینال یا خط فرمان سیستمعامل خود اجرا کنید. برای باز کردن ترمینال، در ویندوز میتوانید از برنامه خط فرمان (Command Prompt)، PowerShell یا Git Bash استفاده کنید. در سیستمهای عامل مبتنی بر یونیکس مانند لینوکس و macOS، میتوانید از ترمینال (Terminal) استفاده کنید.
- وارد کردن دستورات: در ترمینال، میتوانید دستورات Bash را وارد کنید. دستورات Bash معمولا با یک خط فرمان شروع میشوند، مانند $ یا # (اگر به عنوان کاربر root وارد شده باشید). سپس میتوانید دستور مورد نظر خود را وارد کنید و با فشردن کلید اینتر، دستور اجرا خواهد شد.
- یادگیری دستورات و مفاهیم: برای استفاده بهتر از Bash، مفاهیم و دستورات آن را باید یاد بگیرید. میتوانید از منابع آموزشی آنلاین، کتابها، ویدئوها و مقالات مرتبط استفاده کنید. در ابتدا، میتوانید با دستورات پایه مانند ls (برای لیست کردن فایلها و پوشهها)، cd (برای تغییر پوشه فعلی) و mkdir (برای ایجاد پوشه) آشنا شوید.
- نوشتن اسکریپتها: یکی از قابلیتهای قدرتمند Bash، نوشتن اسکریپتها است. میتوانید یک فایل متنی با پسوند .sh بسازید و دستورات Bash خود را در آن بنویسید. سپس با اجرای فایل اسکریپت، دستورات به ترتیب اجرا خواهند شد. برای اجرای یک اسکریپت Bash، معمولا از دستور bash یا ./ (اگر فایل اسکریپت دسترسی اجرا داشته باشد) استفاده میشود.
دستورات پر کاربرد Bash چیست؟
Bash دارای بسیاری از دستورات پرکاربرد است که برخی از آنها به شرح زیر است
- ls: لیست کردن فایلها و پوشهها در دایرکتوری فعلی.
مثال: ls -l (نمایش جزئیات فایلها و پوشهها)
- cd: تغییر پوشه جاری.
مثال: cd Documents (تغییر به پوشه Documents)
- pwd: نمایش مسیر کامل پوشه کاری فعلی.
مثال: pwd (نمایش مسیر کامل فعلی)
- mkdir: ساخت پوشه جدید.
مثال: mkdir mydir (ایجاد پوشه به نام mydir)
- rm: حذف فایل یا پوشه.
مثال: rm myfile.txt (حذف فایل با نام myfile.txt)
- cp: کپی کردن فایلها و پوشهها.
مثال: cp file1.txt file2.txt (کپی کردن فایل file1.txt به نام file2.txt)
- mv: جابجایی یا تغییر نام فایلها و پوشهها.
مثال: mv file1.txt newdir/file1.txt (جابجایی فایل file1.txt به پوشه newdir)
- echo: نمایش پیام یا مقدار یک متغیر.
مثال: echo "Hello, World!" (نمایش پیام "Hello, World!")
- cat: نمایش محتوای یک فایل.
مثال: cat myfile.txt (نمایش محتوای فایل myfile.txt)
- grep: جستجوی الگو در یک فایل یا خروجی دستورات دیگر.
مثال: grep "pattern" myfile.txt (جستجوی الگو "pattern" در فایل myfile.txt)
- chmod: تغییر سطوح دسترسی فایلها و پوشهها.
مثال: chmod +x script.sh (اعطای دسترسی اجرایی به فایل script.sh)
- find: جستجوی فایلها و پوشهها در ساختار درختی فایل سیستم.
مثال: find /path/to/directory -name "*.txt" (جستجوی فایلهای با پسوند .txt در مسیر /path/to/directory)
- wc: شمارش تعداد خطوط، کلمات و بایتها در یک فایل.
مثال: wc -l myfile.txt (شمارش تعداد خطوط در فایل myfile.txt)
- head و tail: برای نمایش ابتدا یا انتهای یک فایل.
مثال: head -n 10 myfile.txt (نمایش 10 خط ابتدایی فایل myfile.txt)
- grep: جستجوی الگو در یک فایل یا خروجی دستورات دیگر.
مثال: grep "pattern" myfile.txt (جستجوی الگو "pattern" در فایل myfile.txt)
موارد یاد شده تنها چند نمونه از دستورات پرکاربرد Bash هستند. Bash دارای بسیار دیگری است که در اسکریپتنویسی و مدیریت سیستمهای لینوکس مفید هستند. برای کسب اطلاعات بیشتر و بررسی جزئیتر هر دستور، پیشنهاد میکنم به منابع آموزشی و مستندات مربوطه مراجعه کنید.
لیست کاراکترهای خاص در Bash
در Bash، برخی از کاراکترهای خاص را میتوان با دستورات و ترکیبات خاصی تعریف کرد. فهرستی لیستی از کاراکترهای خاص به شرح زیر هستند:
- \: کاراکتر اسکیپ (Escape Character) است. این کاراکتر \ قبل از یک کاراکتر دیگر قرار میگیرد. به عنوان مثال، \n برای نمایش یک خط جدید و \t برای تب کردن متن استفاده میشود.
- " و ': این دو کاراکتر برای تعریف رشتهها (Strings) استفاده میشوند. رشتههای قرار گرفته بین " " میتوانند متغیرها و کاراکترهای خاص را تفسیر کنند، اما رشتههای قرار گرفته بین ' ' کاراکترهای خاص را تفسیر نمیکنند و به صورت دقیق نمایش داده میشوند.
- $: کاراکتر متغیر (Variable Character) است. این کاراکتر قبل از نام یک متغیر قرار میگیرد و مقدار متغیر را نمایش میدهد. برای مثال، $var مقدار متغیر به نام var را نمایش میدهد.
- *: کاراکتر Wildcard است که به صورت جایگزینی با هر کاراکتر یا رشتهای میتواند استفاده شود. برای مثال، *.txt همه فایلهای با پسوند txt را نشان میدهد.
- ?: کاراکتری است که به صورت جایگزینی با یک کاراکتر میتواند استفاده شود. برای مثال، file?.txt به file1.txt، file2.txt و غیره نحوه استفاده از این کاراکتر است.
- []: کاراکترهای براکت ([ و ]) برای تعیین مجموعهای از کاراکترها استفاده میشوند. برای مثال، [aeiou] به هر کدام از حروف صدادار (a، e، i، o، u) اشاره دارد.
- |: کاراکتر پایپ (Pipe) خروجی یک دستور را به عنوان ورودی دستور دیگر میفرستد. برای مثال، command1 | command2 خروجی دستور command1 را به عنوان ورودی دستور command2 میدهد.
- > و >>: این دو کاراکتر برای تغییر جهت خروجی استفاده میشوند. > خروجی را به یک فایل جدید تغییر میدهد و اگر فایل وجود داشته باشد، محتوای آن را جایگزین میکند، در حالی که >> خروجی را به انتهای فایل موجود اضافه میکند.
- &: کاراکتر امپرسند (Ampersand) است که معمولا برای اجرای یک دستور به صورت پسزمینه استفاده میشود. به عنوان مثال، command & دستور command را در حالت پسزمینه اجرا میکند.
- ;: کاراکتر سمیکولن (Semicolon) برای جدا کردن دستورات به صورت پشت سر هم استفاده میشود. با استفاده از ; میتوانید چند دستور را در یک خط اجرا کنید.
- #: کاراکتر هشتگ (Hash) برای ارائه توضیحات استفاده میشود. هر چیزی که بعد از # آمده باشد، به عنوان یک توضیح در نظر گرفته میشود و توسط Bash نادیده گرفته میشود.
متغیرهای محیطی در بش
متغیرهای محیطی (Environment Variables) در Bash به متغیرهایی گفته میشود که توسط سیستم عامل و محیط اجرایی Bash تعریف میشوند و برای ذخیره اطلاعاتی مانند تنظیمات سیستم، مسیرها، نام کاربری و غیره استفاده میشوند. متغیرهای محیطی با نامهای بزرگ و حروف بزرگ نمایش داده میشوند و میتوانند در هنگام اجرای دستورات Bash استفاده شوند. برخی از متغیرهای محیطی رایج در Bash به شرح زیر هستند:
- HOME: مسیر دایرکتوری خانه (Home Directory) را به کاربر نشان میدهد.
- USER: نام کاربر فعلی را نشان میدهد.
- PATH: مجموعه مسیرها (Directories) که سیستم آنها را برای جستجوی دستورات اجرایی (Executable) استفاده میکند را نشان میدهد.
- PWD: مسیر کاری فعلی (Present Working Directory) را نشان میدهد.
- SHELL: مسیر شل (Shell) استفاده شده برای اجرای Bash را نشان میدهد.
- TERM: نوع ترمینال (Terminal) فعلی را نشان میدهد.
- LANG: تنظیمات زبان سیستم را نشان میدهد.
- HOSTNAME: نام میزبان (Hostname) سیستم را نشان میدهد.
- DISPLAY: متغیر محیطی مربوط به نمایشگر گرافیکی را نشان میدهد.
- PS1: قالب پیش فرض خط فرمان (Prompt) را تعیین میکند.
Bash در ویندوز چیست؟
Bash در ویندوز به صورت (Bash on Windows) شناخته میشود و به شکل رسمی توسط شرکت مایکروسافت ارائه شده است. این قابلیت به کاربران ویندوز اجازه میدهد تا محیط خط فرمان Bash را در سیستم عامل ویندوز استفاده کنند.
Bash در ویندوز از طریق یک زیرسیستم به نام WSL سرنام Windows Subsystem for Linux فراهم میشود. WSL اجازه میدهد تا یک لایه لینوکسی درون ویندوز فعال شود که محیط اجرایی Bash را در اختیار کاربران ویندوز قرار میدهد. با استفاده از WSL، میتوانید Bash را با همه قابلیتها و امکاناتش در ویندوز استفاده کنید.
استفاده از Bash در ویندوز به کاربران امکان میدهد تا اسکریپتها و دستورات خط فرمان لینوکسی را در ویندوز اجرا کنند. این قابلیت به برنامهنویسان و توسعهدهندگان اجازه میدهد تا ابزارها و فرآیندهای توسعه مبتنی بر لینوکس را در ویندوز استفاده کنند، بدون اینکه نیازی به نصب یک سیستم عامل لینوکس مجزا داشته باشند.
برای استفاده از Bash در ویندوز، کاربران باید ابتدا WSL را نصب و پیکربندی کنند. پس از نصب WSL، میتوانند توزیعی از لینوکس مانند Ubuntu، Debian یا Fedora را از فروشگاه Microsoft Store دریافت و نصب کنند. سپس با اجرای دستور "bash" در خط فرمان ویندوز، به محیط خط فرمان Bash وارد میشوند تا بتوانند دستورات و اسکریپتهای Bash را اجرا کنند.
استفاده از Bash در ویندوز، به ویژه برای کاربرانی که با محیط خط فرمان لینوکس آشنایی دارند، بسیار مفید است و امکانات قدرتمندی را برای اجرای دستورات و نوشتن اسکریپتهای سفارشی در ویندوز فراهم میکند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟