Bash
اسکریپتنویسی Bash را از متغیرها تا اسکریپتهای مقاوم و آماده برای محیط عملیاتی یاد بگیرید. حلقهها، آرایهها، trapها، set -euo pipefail و یک پروژه نهایی راهاندازی سرور.
12 درس، به ترتیب
- 120 دقیقه
Bash چیست
خوش آمدید. اگر تا حالا در عمرتان ترمینال باز نکردهاید، درست همینجا جای شماست. پیش از آنکه حتی یک دستور تایپ کنیم، ده دقیقه وقت میگذاریم تا روشن...
Shell vs terminalBash vs sh vs zshInteractive shell vs scriptWhere Bash fits in DevOps - 225 دقیقه
شبنگ (shebang) و اولین اسکریپت شما
اگر کلمهی «اسکریپت» هنوز به گوشتان چیزی میآید که فقط برنامهنویسهای واقعی مینویسند، خیالتان راحت باشد. اسکریپت چیزی نیست جز یک فایل متنی با...
Shebang#!/usr/bin/env bashChmod +x./script.sh vs bash script.shExit codes - 325 دقیقه
متغیرها و نقلقولگذاری
اگر تا حالا از متغیر استفاده نکردهاید، نگران نباشید. این یکی از سادهترین ایدههای کل این دوره است، و شکلش در Bash تقریبا به همان سادگی است که...
Variable assignmentDouble quotes vs single quotes${var} bracesCommand substitution $(...) - 430 دقیقه
شرطها و تستها
تا اینجا هر اسکریپتی که نوشتهاید، هر بار همان خطها را اجرا میکند، فرقی نمیکند اوضاع چطور باشد. اسکریپت واقعی باید تصمیم بگیرد: «فقط اگر این فایل...
If statement[[ ]] testsString testsFile tests -f -d -e&& and ||Case statement - 525 دقیقه
حلقهها
تا اینجا هر اسکریپتی که نوشتهاید هر خطش را دقیقا یک بار و از بالا به پایین اجرا میکند. برای اسکریپتهای کوتاه اشکالی ندارد، اما کار واقعی پر از...
For loopWhile loopUntil loopFor f in *.txt globbingC-style for loopBreak and continue - 625 دقیقه
توابع
تا اینجا اسکریپتهایتان کمکم دارند خودشان را تکرار میکنند. شاید در سه جای مختلف یک پیام همراه با زمان ثبت میکنید، یا بارها و بارها پیش از دست زدن...
Function definitionPositional args $1 $@ $#Return for exit codesEcho for outputLocal variables - 725 دقیقه
آرایهها
تا اینجا هر متغیر یک مقدار نگه میداشت. name="Ada" یک رشته نگه میدارد. اگر بخواهید سه نام را نگه دارید، یا باید سه متغیر جدا بسازید، name1 و name2 و...
Indexed arrays${arr[@]}${#arr[@]} lengthAssociative arrays declare -AIterating arrays - 825 دقیقه
بسط رشته و عملیات حسابی
مدام خودتان را با متغیری خواهید یافت که تقریباً، اما نه دقیقاً، همان چیزی را دارد که لازم دارید. یک مسیر کامل فایل، وقتی فقط نام فایل را میخواهید....
${var#prefix}${var%suffix}${var//old/new}$(( arith ))Printf formatting - 925 دقیقه
تغییر مسیر ورودی/خروجی و پایپها
هر دستوری که در Bash اجرا میکنید، چه حواستان به آن باشد چه نباشد، زیر پوسته به سه کانال جدا از هم وصل است. یک دستگاه تفکیک نامه را تصور کنید:...
>>><2>2>&1&>+3 - 1030 دقیقه
مدیریت خطا و Trapها
هر اسکریپتی که تا اینجا نوشتهاید فرض کرده همه چیز درست پیش میرود. دستوری که فایلی را پیدا نمیکند، پوشهای که وجود ندارد، یک غلط تایپی در نام...
Set -eSet -uSet -o pipefailTrap on EXITTrap on ERRCleanup functions - 1125 دقیقه
اشکالزدایی و بهترین شیوهها
روزی اسکریپتی که نوشتهاید کاری میکند که از آن نخواسته بودید. فایل اشتباه را پاک میکند، از حلقهای که مطمئن بودید اجرا میشود میپرد، یا بیصدا...
Bash -xSet -xShellcheckSafe quotingNever parse ls[[ vs [+1 - 1260 دقیقه
پروژه نهایی: اسکریپت راهاندازی سرور
یک سرور کاملا نو ماشینی است که هیچ چیز رویش نیست. یک نفر باید وبسرور را نصب کند، حسابی را که با آن وارد میشوید بسازد، کلید SSH شما را سر جایش...
Idempotent provisioningInstalling packagesCreating usersSSH key setupSystemd timersLogging+2
Bash را به زبان خودت یاد بگیر
هر درس، آزمون و پاسخ مربی به زبان شما نمایش داده میشود. مربی هوشمند به همان زبانی پاسخ میدهد که شما سوال میکنید.
Roles that use Bash
See how hiring teams interview engineers on Bash, in production-like environments.
DevOps Engineer
Hire DevOps engineers who actually ship. Run live or take-home interviews in production-like Linux environments with Docker, Kubernetes, Terraform and CI/CD. See how they debug, automate, and work alongside AI.
See the interviewSite Reliability Engineer (SRE)
Hire SREs who actually run production. Live workspaces with metrics, logs, traces and a service that is starting to misbehave. We record every keystroke.
See the interviewInfrastructure Engineer
Hire infrastructure engineers who design systems your team can rely on. Interview them in real workspaces with Terraform, Ansible, cloud APIs and live failure scenarios.
See the interview