
توضیحات و جزئیات دوره
Bash چیست؟
Bash (Bourne Again Shell) یک شل محبوب است که بهطور پیشفرض در بسیاری از توزیعهای لینوکس استفاده میشود. همچنین یکی از قدرتمندترین ابزارها برای مدیریت سیستمهای لینوکسی و نویسندگی اسکریپتهای اتوماسیون است. Bash به کاربر این امکان را میدهد تا دستورهای سیستمعامل را بهصورت خطی و یا در قالب اسکریپتهای پیچیده بنویسد و اجرا کند.
مزایای استفاده از Bash Scripting:
- اتوماسیون کارها: با استفاده از اسکریپتهای Bash میتوان بسیاری از فرآیندها را خودکار کرد و زمان انجام کارها را کاهش داد.
- مدیریت سیستم: Bash ابزار قدرتمندی برای مدیریت سیستمهای لینوکس از جمله نصب، پیکربندی، مدیریت کاربران و گروهها، نظارت بر سیستم و تنظیمات شبکه است.
- پشتیبانی گسترده: از آنجا که Bash در اکثر توزیعهای لینوکس و یونیکس بهطور پیشفرض نصب است، امکان استفاده و گسترش اسکریپتها در سیستمهای مختلف وجود دارد.
- ساده و منعطف: نوشتن اسکریپتهای Bash بسیار ساده است و به راحتی میتوان آنها را برای انجام انواع مختلف وظایف گسترش داد.
پیشنیازهای دوره:
- آشنایی با مفاهیم پایهای لینوکس و سیستمعاملهای یونیکس
- تسلط به دستورات ابتدایی شل (مانند
ls
,cd
,cp
,mv
,cat
) - دانش ابتدایی از مفاهیم سیستمعاملهای شبکه (TCP/IP)
هدف دوره:
هدف این دوره آموزش نحوه نوشتن اسکریپتهای Bash بهطور حرفهای و پیشرفته است. شرکتکنندگان با مباحث پیچیدهتری مانند ساختارهای کنترلی پیشرفته، کار با فایلها، مدیریت فرآیندها و اجرای اتوماسیون آشنا میشوند. در این دوره همچنین به مباحثی مانند اشکالزدایی و بهینهسازی اسکریپتها پرداخته میشود تا شرکتکنندگان بتوانند اسکریپتهای با کیفیت بالا و قابل اعتماد بنویسند.
سر فصل دوره آموزشی اسکریپتنویسی برای سرورهای لینوکسی (Bash Scripting)
1. مقدمه و مفاهیم پایه
- آشنایی با Bash و نقش آن در لینوکس
- معرفی Bash و تفاوت آن با شلهای دیگر (zsh، ksh، sh)
- کاربردهای Bash Scripting در مدیریت سرورها
- ساختار کلی اسکریپتها
- نحوه ایجاد و اجرای اسکریپتهای ساده
- درک نقش هدر اسکریپت (Shebang)
2. مفاهیم پایه برنامهنویسی در Bash
- متغیرها و انواع دادهها
- تعریف و مقداردهی به متغیرها
- متغیرهای محیطی و متغیرهای محلی
- ورودی و خروجی
- دریافت ورودی از کاربر با
read
- استفاده از دستورات
echo
وprintf
برای چاپ خروجی
- دریافت ورودی از کاربر با
3. دستورات و عملیات پایه
- اجرای دستورات لینوکسی در Bash
- استفاده از دستورات عمومی مانند
ls
،grep
، وawk
- ارجاع به خروجی دستورات در متغیرها
- استفاده از دستورات عمومی مانند
- عملیات ریاضی و منطقی
- محاسبات با دستور
expr
و$((...))
- مقایسه و بررسی شرطها
- محاسبات با دستور
4. شرطها و ساختارهای کنترلی
- دستورات شرطی
- ساختارهای
if-else
وelif
- بررسی وجود فایلها و دایرکتوریها
- ساختارهای
- حلقهها
- حلقههای
for
،while
، وuntil
- کاربرد حلقهها در پردازش دستهای فایلها
- حلقههای
5. توابع و سازماندهی اسکریپتها
- ایجاد توابع
- تعریف و استفاده از توابع در اسکریپتها
- مدیریت پارامترها در توابع
- تفکیک اسکریپتها به بخشهای کوچکتر
- استفاده از فایلهای جداگانه برای توابع و تنظیمات
- بارگذاری فایلهای خارجی با
source
و.
6. مدیریت فایلها و پردازش متن
- مدیریت فایلها
- ایجاد، حذف، کپی و انتقال فایلها در اسکریپتها
- تغییر مجوزها و مالکیت فایلها
- پردازش متن
- استفاده از دستورات
sed
وawk
برای تغییر و پردازش متن - فیلتر کردن خطوط با
grep
- استفاده از دستورات
7. مدیریت سیستم و سرور
- مدیریت کاربران و گروهها
- ایجاد و حذف کاربران و گروهها با اسکریپتها
- بررسی و تنظیم مجوزهای دسترسی
- مدیریت شبکه
- بررسی وضعیت شبکه با
ping
وnetstat
- تغییر تنظیمات شبکه با اسکریپت
- بررسی وضعیت شبکه با
- مدیریت فرآیندها
- بررسی فرآیندها با
ps
وtop
- متوقف کردن و راهاندازی مجدد سرویسها
- بررسی فرآیندها با
8. کار با آرگومانها و خط فرمان
- آرگومانهای ورودی
- دریافت و مدیریت آرگومانها با
$1
،$2
و غیره - استفاده از دستور
getopts
برای مدیریت آرگومانها
- دریافت و مدیریت آرگومانها با
- کار با مقادیر بازگشتی
- بررسی کد بازگشتی دستورات با
$?
- استفاده از کدهای وضعیت در اسکریپتها
- بررسی کد بازگشتی دستورات با
9. مدیریت لاگها و خطاها
- ایجاد لاگهای سیستمی
- ذخیره خروجیها در فایلهای لاگ
- استفاده از
logger
برای ثبت رویدادها درsyslog
- مدیریت خطاها
- کنترل خطاها با
set -e
وtrap
- مدیریت استثناها در اسکریپتها
- کنترل خطاها با
10. پیشرفته: بهینهسازی و امنیت
- بهینهسازی اسکریپتها
- استفاده از دستورات پیشرفته مانند
xargs
وfind
- کاهش زمان اجرا با تکنیکهای بهینهسازی
- استفاده از دستورات پیشرفته مانند
- امنیت در اسکریپتنویسی
- جلوگیری از اجرای کدهای مخرب
- مدیریت دسترسی به فایلها و اسکریپتها
11. ابزارها و افزونههای مرتبط با Bash
- ابزارهای مکمل
- استفاده از
cron
برای زمانبندی اسکریپتها - ادغام با ابزارهای مانیتورینگ مانند Nagios
- استفاده از
- مقدمهای بر سایر شلها
- آشنایی با zsh و fish برای توسعههای پیشرفتهتر
پیشنیازها
- آشنایی با سیستمعامل لینوکس و دستورات پایه
- توانایی کار با خط فرمان لینوکس
- دانش پایه از مفاهیم شبکه و مدیریت فایل
این دوره به شما کمک میکند تا با تسلط بر Bash Scripting به عنوان یک ابزار قوی، توانایی خود را در مدیریت سرورهای لینوکسی به سطح بالاتری برسانید.
سرفصل ویدئو های دوره
پارت اول : معرفی دوره اسکریپ نویسی
پارت دوم : دستورات مقدماتی لینوکس
پارت سوم : آشنایی با دستورات پرکاربرد لینوکس
پارت چهارم : نحوه استفاده از فایل ها و دایرکتوری های مهم لینوکس
پارت پنجم : نحوه ایجاد کردن ، منتقل کردن و حذف کردن فایل ها در لینوکس
پارت ششم : آرشیوسازی و فشرده سازی فایل ها در لینوکس
پارت هفتم : نحوه جستجو کردن فایل در سیستم عامل لینوکس
پارت هشتم : آشنایی با ساختار اسکریپت نویسی
پارت نهم : متغییرها
پارت دهم : دستورات شرطی
پارت یازدهم : حلقه ها (loops)
پارت دوازدهم : توابع (functionها)
پارت سیزدهم : استفاده از select برای ایجاد منوها
پارت چهاردهم : بحث زمان بندی یا schedule در اسکریپت نویسی بش
پارت پانزدهم : آموزش نحوه بک آپ گیری در اسکریپت نویسی بش
پارت شانزدهم : بررسی مانیتورینگ سرویس ها از طریق اسکریپت نویسی
پارت هفدهم : آموزش نحوه رنگ بندی متن های خروجی
پارت هجدهم : استفاده از قابلیت logger در لینوکس
پارت نوزدهم : عملیات ریاضی (performing math)
پارت بیستم : کامند های کنترلی
پارت بیست و یکم : بررسی standard file descriptor ها
پارت بیست و دوم : بررسی کاربرد temporary file ها (فایل های موقتی)
پارت بیست و سوم : آموزش handling سیگنال ها در سیستم عامل لینوکس
سر فصل دوره :
پارت اول: معرفی دوره