رفتن به محتوا
LoopX

واژه‌نامه‌ی DevOps: اصطلاحات لینوکس، Git، داکر و Nginx

۸۷ اصطلاح پرکاربرد لینوکس، Bash، Git، داکر و Nginx، هر کدام با توضیح کوتاه فارسی. برای توضیح کامل و مثال‌های اجراشده، روی لینک درس زیر هر اصطلاح بزن.

لینوکس و شل

Kernelکرنل، هسته

هسته‌ی سیستم‌عامل. بین برنامه‌ها و سخت‌افزار می‌نشیند و حافظه، پردازنده، فایل‌ها و دستگاه‌ها را مدیریت می‌کند. «لینوکس» در اصل اسم همین کرنل است.

درس: لینوکس چیست؟ (لینوکس از صفر)
Distributionتوزیع (distro)

کرنل لینوکس به‌همراه ابزارها، مدیر بسته و تنظیمات پیش‌فرض که با هم یک سیستم‌عامل کامل می‌سازند؛ مثل Ubuntu، Debian و Fedora.

درس: لینوکس چیست؟ (لینوکس از صفر)
Shellشل

برنامه‌ای که دستورهای تو را می‌خواند، تفسیر می‌کند و اجرا می‌کند؛ مثل bash و zsh. ترمینال فقط پنجره‌ای است که شل داخلش اجرا می‌شود.

درس: ترمینال و shell (لینوکس از صفر)
Terminalترمینال

پنجره‌ی متنی که ورودی تو را به شل می‌دهد و خروجی دستورها را نشان می‌دهد.

درس: ترمینال و shell (لینوکس از صفر)
Rootکاربر ریشه

کاربر مدیر سیستم با شناسه‌ی 0 که به همه‌چیز دسترسی دارد. کار روزمره با root خطرناک است؛ برای همین از sudo استفاده می‌کنیم.

درس: root و sudo (لینوکس از صفر)
sudoسودو

اجرای یک دستور با دسترسی کاربر دیگر (معمولاً root)، با رمز خود کاربر و ثبت در لاگ سیستم.

درس: root و sudo (لینوکس از صفر)
Permissionدسترسی (مجوز)

تعیین می‌کند مالک فایل، گروهش و بقیه‌ی کاربرها کدام کار را می‌توانند انجام بدهند: خواندن (r)، نوشتن (w) و اجرا (x). با chmod عوض می‌شود.

درس: دسترسی‌ها: خواندن، نوشتن، اجرا (لینوکس از صفر)
Processپروسه (فرایند)

برنامه‌ای که در حال اجراست، با شناسه‌ی یکتا (PID)، حافظه و وضعیت خودش. یک برنامه می‌تواند چند پروسه داشته باشد.

درس: پروسه‌ها (لینوکس از صفر)
Signalسیگنال

پیامی که به پروسه فرستاده می‌شود؛ مثل SIGTERM برای خاتمه‌ی مرتب و SIGKILL برای کشتن فوری. دستور kill سیگنال می‌فرستد.

درس: پروسه‌ها (لینوکس از صفر)
systemdسیستم‌دی

اولین پروسه‌ی سیستم (PID 1) در بیشتر توزیع‌ها که سرویس‌ها را روشن، خاموش و در صورت از کار افتادن دوباره اجرا می‌کند. با systemctl کنترل می‌شود.

درس: سرویس‌ها با systemd (لینوکس از صفر)
Serviceسرویس (daemon)

برنامه‌ای که در پس‌زمینه اجرا می‌ماند و منتظر کار است، مثل سرور SSH یا nginx. در systemd هر سرویس یک فایل unit دارد.

درس: سرویس‌ها با systemd (لینوکس از صفر)
Package managerمدیر بسته

ابزاری که نرم‌افزار را از مخزن‌های رسمی نصب، به‌روز و حذف می‌کند و وابستگی‌ها را خودش حل می‌کند؛ مثل apt در Ubuntu.

درس: نصب برنامه با apt (لینوکس از صفر)
Environment variableمتغیر محیطی

متغیری که پروسه از والدش به ارث می‌برد، مثل HOME و PATH. برنامه‌ها تنظیماتشان را معمولاً از همین متغیرها می‌خوانند.

درس: متغیرهای محیطی و تنظیمات shell (لینوکس از صفر)
PATHمسیر جستجوی دستورها

متغیر محیطی شامل فهرست پوشه‌هایی که شل برای پیدا کردن فایل اجرایی یک دستور به ترتیب می‌گردد.

درس: متغیرهای محیطی و تنظیمات shell (لینوکس از صفر)
stdin / stdout / stderrورودی و خروجی استاندارد

سه جریان پیش‌فرض هر پروسه: ورودی (0)، خروجی عادی (1) و خروجی خطا (2). جدا بودن خروجی خطا اجازه می‌دهد خطاها را جدا ذخیره کنی.

درس: ورودی، خروجی و redirect (لینوکس از صفر)
Redirectionتغییر مسیر

فرستادن خروجی یا ورودی دستور به فایل به‌جای صفحه با علامت‌هایی مثل > و >> و 2> و <.

درس: ورودی، خروجی و redirect (لینوکس از صفر)
Pipeپایپ

علامت | خروجی یک دستور را مستقیم ورودی دستور بعدی می‌کند تا دستورهای کوچک را مثل لوله به هم وصل کنی.

درس: pipe و ترکیب دستورها (لینوکس از صفر)
Regular expressionعبارت باقاعده (regex)

زبان کوچکی برای توصیف الگوی متن، مثل «خط‌هایی که با عدد شروع می‌شوند». در grep، sed و awk زیاد به کار می‌رود.

درس: جستجو با grep و regex (لینوکس از صفر)
inodeآی‌نود

ساختاری در فایل‌سیستم که اطلاعات فایل را نگه می‌دارد: مالک، دسترسی، اندازه و جای داده روی دیسک. اسم فایل فقط به inode اشاره می‌کند.

درس: لینک‌ها: hard link و symbolic link (لینوکس از صفر)
cronکران

سرویسی که دستورها را در زمان‌های مشخص و تکراری اجرا می‌کند؛ مثل بکاپ هر شب ساعت ۲. زمان‌بندی در crontab نوشته می‌شود.

درس: زمان‌بندی کارها با cron (لینوکس از صفر)
SSHاس‌اس‌اچ

پروتکل اتصال امن و رمزنگاری‌شده به خط فرمان سرور از راه دور. انتقال فایل با scp و rsync هم روی همین بستر انجام می‌شود.

درس: SSH و کار با سرور از راه دور (لینوکس از صفر)
SSH keyکلید SSH

یک جفت کلید عمومی و خصوصی برای ورود بدون رمز. کلید عمومی روی سرور می‌نشیند و کلید خصوصی هیچ‌وقت از سیستم خودت بیرون نمی‌رود.

درس: SSH و کار با سرور از راه دور (لینوکس از صفر)
Portپورت

عددی بین 0 تا 65535 که مشخص می‌کند داده‌ی شبکه به کدام برنامه برسد؛ مثلاً وب روی 80 و 443 و SSH روی 22.

درس: پورت‌ها و سرویس‌های شبکه (لینوکس از صفر)
Firewallفایروال (دیوار آتش)

قاعده‌هایی که تعیین می‌کنند کدام اتصال شبکه به سرور اجازه دارد و کدام رد شود. در Ubuntu ساده‌ترین ابزارش ufw است.

درس: فایروال با ufw (لینوکس از صفر)
Logلاگ

رکوردهای زمان‌دار از اتفاق‌هایی که در سیستم و برنامه‌ها افتاده؛ اولین جایی که برای پیدا کردن علت خطا سراغش می‌روی.

درس: لاگ‌ها و عیب‌یابی (لینوکس از صفر)

اسکریپت‌نویسی Bash

Shebangشبنگ

خط اول اسکریپت که با #! شروع می‌شود و به کرنل می‌گوید فایل را با کدام مفسر اجرا کند؛ مثل #!/usr/bin/env bash.

درس: اولین اسکریپت (اسکریپت‌نویسی Bash)
Exit codeکد خروج

عددی که هر دستور در پایان برمی‌گرداند: 0 یعنی موفق و هر عدد دیگر یعنی خطا. در $? ذخیره می‌شود و if بر اساس همین تصمیم می‌گیرد.

درس: شرط‌ها (اسکریپت‌نویسی Bash)
Quotingکوتیشن‌گذاری

گذاشتن متغیر داخل گیومه ("$var") تا شل مقدارش را در فاصله‌ها نشکند و * را گسترش ندهد. بیشتر باگ‌های اسکریپت از نبودن کوتیشن است.

درس: متغیرها و نقل‌قول (اسکریپت‌نویسی Bash)
Positional parametersآرگومان‌های موقعیتی

آرگومان‌هایی که به اسکریپت داده شده: $1، $2 و ... ؛ "$@" همه‌ی آن‌ها را جدا و سالم نگه می‌دارد و $# تعدادشان است.

درس: ورودی و آرگومان‌ها (اسکریپت‌نویسی Bash)
Functionتابع

تکه‌کد نام‌داری که چند بار صدا زده می‌شود. در Bash متغیرها پیش‌فرض سراسری‌اند و داخل تابع باید local تعریف شوند.

درس: تابع‌ها (اسکریپت‌نویسی Bash)
Arrayآرایه

متغیری که چند مقدار را با شماره نگه می‌دارد. آرایه‌ی انجمنی (declare -A) به‌جای شماره، کلید متنی دارد.

درس: آرایه‌ها (اسکریپت‌نویسی Bash)
Parameter expansionگسترش پارامتر

شکل‌های ${...} برای کار با مقدار متغیر بدون ابزار بیرونی: مقدار پیش‌فرض، بریدن پسوند، جایگزینی و طول رشته.

درس: کار با رشته‌ها (اسکریپت‌نویسی Bash)
Here documentهیر داک (heredoc)

نوشتن چند خط متن به‌عنوان ورودی دستور با <<EOF؛ برای ساختن فایل‌های تنظیمات داخل اسکریپت. <<'EOF' متغیرها را باز نمی‌کند.

درس: here-doc و پردازش متن در اسکریپت (اسکریپت‌نویسی Bash)
trapتله (trap)

تعیین دستوری که هنگام خروج اسکریپت یا رسیدن سیگنال اجرا شود؛ معمولاً برای پاک کردن فایل‌های موقت حتی وقتی اسکریپت خطا می‌دهد.

درس: مدیریت خطا (اسکریپت‌نویسی Bash)
Strict modeحالت سخت‌گیر (set -euo pipefail)

ترکیب set -e (توقف با اولین خطا)، set -u (خطا برای متغیر تعریف‌نشده) و pipefail (خطای وسط پایپ) تا اسکریپت بی‌صدا ادامه ندهد.

درس: مدیریت خطا (اسکریپت‌نویسی Bash)
getoptsگت‌آپتس

دستور داخلی Bash برای خواندن گزینه‌هایی مثل -v و -o file، تا اسکریپت مثل ابزارهای واقعی فلگ بپذیرد.

درس: گزینه‌های خط فرمان با getopts (اسکریپت‌نویسی Bash)

Git و GitHub

Version controlکنترل نسخه

ثبت تاریخچه‌ی تغییرهای فایل‌ها تا بتوانی به هر نسخه برگردی، ببینی چه کسی چه چیزی را عوض کرده و با دیگران هم‌زمان کار کنی.

درس: Git چیست؟ (Git و GitHub)
Repositoryمخزن (repo)

پوشه‌ای که Git تاریخچه‌اش را در زیرپوشه‌ی .git نگه می‌دارد. با git init ساخته یا با git clone کپی می‌شود.

درس: اولین مخزن و commit (Git و GitHub)
Staging areaناحیه‌ی آماده‌سازی (index)

جایی بین پوشه‌ی کار و تاریخچه که با git add پر می‌شود. فقط چیزهایی که آنجا هستند در commit بعدی ثبت می‌شوند.

درس: اولین مخزن و commit (Git و GitHub)
Commitکامیت

یک عکس فوری از وضعیت پروژه با پیام، نویسنده، تاریخ و شناسه‌ی یکتا (hash). تاریخچه‌ی Git زنجیره‌ای از کامیت‌هاست.

درس: اولین مخزن و commit (Git و GitHub)
Branchشاخه

یک اشاره‌گر سبک به یک کامیت که با هر کامیت جدید جلو می‌رود؛ برای کار روی یک ویژگی بدون دست زدن به شاخه‌ی اصلی.

درس: branch و merge (Git و GitHub)
Mergeادغام

آوردن تغییرهای یک شاخه به شاخه‌ی دیگر. اگر شاخه‌ها از هم جدا شده باشند، یک کامیت ادغام ساخته می‌شود.

درس: branch و merge (Git و GitHub)
Merge conflictتعارض ادغام

وقتی دو شاخه همان خط‌ها را جور دیگری عوض کرده‌اند و Git نمی‌تواند خودش انتخاب کند؛ باید فایل را دستی درست کنی.

درس: حل conflict (Git و GitHub)
Rebaseری‌بیس

جابه‌جا کردن کامیت‌های یک شاخه روی سر شاخه‌ی دیگر تا تاریخچه خطی بماند. کامیت‌ها از نو ساخته می‌شوند؛ پس روی شاخه‌ی مشترک خطرناک است.

درس: rebase (Git و GitHub)
Remoteمخزن راه دور

نسخه‌ای از مخزن روی سرور دیگر، مثل GitHub. اسم پیش‌فرضش origin است.

درس: مخزن راه دور (Git و GitHub)
Push / Pull / Fetchپوش، پول و فچ

push کامیت‌های تو را به remote می‌فرستد. fetch کامیت‌های جدید را فقط دانلود می‌کند و pull دانلود و ادغام را با هم انجام می‌دهد.

درس: مخزن راه دور (Git و GitHub)
Pull requestپول ریکوئست (PR)

درخواست ادغام یک شاخه در GitHub، همراه با بررسی کد، گفت‌وگو و اجرای تست‌ها قبل از ادغام.

درس: Pull Request و بازبینی کد (Git و GitHub)
Stashاستش

کنار گذاشتن موقت تغییرهای کامیت‌نشده تا بتوانی کار دیگری بکنی و بعد آن‌ها را برگردانی.

درس: stash (Git و GitHub)
Tagتگ

اسم ثابت برای یک کامیت مهم، معمولاً شماره‌ی نسخه مثل v1.2.0. برخلاف شاخه، تگ جابه‌جا نمی‌شود.

درس: tag و نسخه‌گذاری (Git و GitHub)
.gitignoreفایل نادیده‌گیری

فهرست الگوی فایل‌هایی که Git نباید دنبالشان کند؛ مثل node_modules، فایل‌های build و فایل .env حاوی رمز.

درس: فایل .gitignore (Git و GitHub)
reflogتاریخچه‌ی جابه‌جایی‌ها

دفترچه‌ی محلی همه‌ی جابه‌جایی‌های HEAD؛ راه نجات کامیت‌هایی که با reset یا rebase «گم» شده‌اند.

درس: نجات و ابزارهای پیشرفته (Git و GitHub)
GitHub Actionsگیت‌هاب اکشنز (CI/CD)

سرویس اجرای خودکار کارها روی GitHub، مثل تست و build با هر push، که در فایل‌های workflow در .github/workflows تعریف می‌شود.

درس: GitHub Actions (Git و GitHub)

داکر

Containerکانتینر

یک پروسه‌ی ایزوله که فایل‌سیستم، شبکه و فهرست پروسه‌های جدا دارد ولی کرنل میزبان را به اشتراک می‌گذارد. سبک‌تر و سریع‌تر از ماشین مجازی است.

درس: داکر چیست؟ (داکر از صفر تا حرفه‌ای)
Virtual machineماشین مجازی (VM)

یک کامپیوتر کامل شبیه‌سازی‌شده با سیستم‌عامل و کرنل خودش که روی hypervisor اجرا می‌شود. ایزوله‌تر از کانتینر است ولی سنگین‌تر.

درس: کانتینر در برابر ماشین مجازی (داکر از صفر تا حرفه‌ای)
Imageایمیج

قالب فقط‌خواندنی کانتینر شامل فایل‌ها، کتابخانه‌ها و تنظیمات اجرا. از یک ایمیج می‌شود هر تعداد کانتینر ساخت.

درس: image و container (داکر از صفر تا حرفه‌ای)
Dockerfileداکرفایل

فایل متنی شامل دستورهایی مثل FROM، COPY و RUN که قدم‌به‌قدم ساختن ایمیج را توصیف می‌کند.

درس: اولین Dockerfile (داکر از صفر تا حرفه‌ای)
Layerلایه

هر دستور Dockerfile یک لایه‌ی فقط‌خواندنی می‌سازد. لایه‌ها بین ایمیج‌ها مشترک‌اند و اگر عوض نشده باشند، از کش دوباره استفاده می‌شوند.

درس: لایه‌ها و کش (داکر از صفر تا حرفه‌ای)
Docker daemonسرویس داکر (dockerd)

سرویس پس‌زمینه‌ای که واقعاً ایمیج می‌سازد و کانتینر اجرا می‌کند. دستور docker فقط درخواست را از طریق API به آن می‌فرستد.

درس: معماری داکر (داکر از صفر تا حرفه‌ای)
Registryرجیستری

سروری که ایمیج‌ها را نگه می‌دارد و با push و pull جابه‌جا می‌کند؛ مثل Docker Hub یا رجیستری خصوصی شرکت.

درس: image و container (داکر از صفر تا حرفه‌ای)
Registry mirrorمیرور رجیستری

سروری که ایمیج‌های Docker Hub را کش می‌کند. در ایران برای دور زدن محدودیت دانلود، داکر را طوری تنظیم می‌کنیم که از میرور pull کند.

درس: تنظیم میرور برای دانلود image در ایران (داکر از صفر تا حرفه‌ای)
Volumeوالیوم

فضای ذخیره‌سازی ماندگار که داکر مدیریتش می‌کند. با پاک شدن کانتینر از بین نمی‌رود؛ جای مناسب داده‌ی دیتابیس.

درس: volume و bind mount (داکر از صفر تا حرفه‌ای)
Bind mountاتصال پوشه

وصل کردن مستقیم یک پوشه‌ی سیستم میزبان به داخل کانتینر؛ برای اینکه تغییر کد بدون build دوباره در کانتینر دیده شود.

درس: volume و bind mount (داکر از صفر تا حرفه‌ای)
Port publishingانتشار پورت

وصل کردن پورت میزبان به پورت کانتینر با -p 8080:80 تا سرویس داخل کانتینر از بیرون در دسترس باشد.

درس: پورت‌ها (داکر از صفر تا حرفه‌ای)
Docker networkشبکه‌ی داکر

شبکه‌ی مجازی بین کانتینرها. کانتینرهای یک شبکه‌ی ساخته‌شده توسط کاربر، همدیگر را با اسم پیدا می‌کنند.

درس: شبکه در داکر (داکر از صفر تا حرفه‌ای)
Docker Composeداکر کامپوز

ابزار تعریف و اجرای برنامه‌ی چندکانتینری در یک فایل YAML؛ کل سرویس‌ها، شبکه‌ها و والیوم‌ها با docker compose up بالا می‌آیند.

درس: معرفی Docker Compose (داکر از صفر تا حرفه‌ای)
ENTRYPOINT / CMDنقطه‌ی ورود و دستور پیش‌فرض

ENTRYPOINT برنامه‌ی ثابت کانتینر را تعیین می‌کند و CMD آرگومان‌های پیش‌فرضش را که موقع اجرا می‌شود عوضشان کرد.

درس: CMD در برابر ENTRYPOINT (داکر از صفر تا حرفه‌ای)
Multi-stage buildbuild چندمرحله‌ای

چند FROM در یک Dockerfile: ابزارهای build در مرحله‌ی اول می‌مانند و فقط خروجی نهایی به ایمیج کوچک آخر کپی می‌شود.

درس: multi-stage build (داکر از صفر تا حرفه‌ای)
.dockerignoreفایل نادیده‌گیری داکر

فهرست فایل‌هایی که نباید به build context فرستاده شوند، مثل node_modules و .git؛ build سریع‌تر و ایمیج امن‌تر می‌شود.

درس: فایل .dockerignore (داکر از صفر تا حرفه‌ای)
Healthcheckبررسی سلامت

دستوری که داکر مرتب اجرا می‌کند تا بفهمد برنامه‌ی داخل کانتینر واقعاً کار می‌کند، نه فقط اینکه پروسه زنده است.

درس: healthcheck و ترتیب اجرا (داکر از صفر تا حرفه‌ای)
cgroupsگروه‌های کنترلی

قابلیت کرنل لینوکس برای محدود کردن مصرف CPU و حافظه‌ی گروهی از پروسه‌ها؛ پایه‌ی گزینه‌هایی مثل --memory و --cpus.

درس: محدودیت منابع (داکر از صفر تا حرفه‌ای)

Nginx و وب

Web serverوب‌سرور

برنامه‌ای که درخواست‌های HTTP را می‌گیرد و فایل یا پاسخ برمی‌گرداند؛ مثل Nginx و Apache.

درس: Nginx چیست؟ (Nginx کاربردی)
Server blockبلوک سرور (virtual host)

بخش server در تنظیمات Nginx که مشخص می‌کند با یک دامنه و پورت چه کار شود؛ با چند بلوک، چند سایت روی یک سرور اجرا می‌شود.

درس: server block و چند سایت (Nginx کاربردی)
locationلوکیشن

بلوکی داخل server که با مسیر درخواست (مثل /api/) تطبیق داده می‌شود و تعیین می‌کند آن مسیرها چطور جواب بگیرند.

درس: location و مسیرها (Nginx کاربردی)
Reverse proxyپراکسی معکوس

سروری جلوی برنامه‌ها که درخواست کاربر را می‌گیرد و به برنامه‌ی پشتش (مثلاً روی پورت 3000) می‌فرستد. کاربر فقط پراکسی را می‌بیند.

درس: reverse proxy (Nginx کاربردی)
HTTPSاچ‌تی‌تی‌پی‌اس

HTTP رمزنگاری‌شده با TLS؛ کسی بین راه نمی‌تواند داده را بخواند یا عوض کند. لازمه‌اش یک گواهی معتبر است.

درس: HTTPS با Let's Encrypt (Nginx کاربردی)
TLS certificateگواهی TLS (SSL)

فایلی که هویت دامنه را تأیید می‌کند و مرورگر به آن اعتماد دارد. Let's Encrypt رایگان صادرش می‌کند و certbot تمدیدش را خودکار می‌کند.

درس: HTTPS با Let's Encrypt (Nginx کاربردی)
HSTSاجبار HTTPS

هدری که به مرورگر می‌گوید تا مدت مشخصی سایت را فقط با HTTPS باز کند، حتی اگر کاربر http:// تایپ کند.

درس: امنیت و هدرهای امنیتی (Nginx کاربردی)
Gzip compressionفشرده‌سازی gzip

فشرده کردن پاسخ‌های متنی (HTML، CSS، JS) قبل از ارسال؛ حجم انتقال معمولاً چند برابر کم می‌شود.

درس: عملکرد: gzip و کش (Nginx کاربردی)
Cache-Controlکنترل کش

هدری که می‌گوید مرورگر یک فایل را چه مدت می‌تواند بدون پرسیدن دوباره از سرور نگه دارد.

درس: عملکرد: gzip و کش (Nginx کاربردی)
Load balancingتوزیع بار

پخش درخواست‌ها بین چند نسخه‌ی برنامه (یک upstream) تا بار تقسیم شود و از کار افتادن یکی، کل سایت را نخواباند.

درس: load balancing (Nginx کاربردی)
Rate limitingمحدودسازی نرخ درخواست

محدود کردن تعداد درخواست هر کاربر در ثانیه یا دقیقه؛ برای جلوگیری از حمله‌ی حدس رمز و فشار بیش از حد روی سرور.

درس: محدودسازی درخواست‌ها (Nginx کاربردی)
WebSocketوب‌سوکت

اتصال دوطرفه‌ی ماندگار بین مرورگر و سرور برای داده‌ی لحظه‌ای مثل چت. پشت Nginx به هدرهای Upgrade و Connection نیاز دارد.

درس: WebSocket (Nginx کاربردی)
Access logلاگ دسترسی

فایلی که Nginx برای هر درخواست یک خط در آن می‌نویسد: IP، زمان، مسیر، کد وضعیت و حجم پاسخ.

درس: لاگ‌ها (Nginx کاربردی)
HTTP status codeکد وضعیت HTTP

عدد سه‌رقمی پاسخ سرور: 2xx موفق، 3xx ریدایرکت، 4xx خطای درخواست (مثل 404) و 5xx خطای سرور (مثل 502).

درس: لاگ‌ها (Nginx کاربردی)