لینوکس و ترمینالمقدماتی۸ دقیقه مطالعهGeneric Linux + Bash

مدیریت بسته‌ها و پردازه‌ها

نصب و به‌روزرسانی نرم‌افزار با apt و توزیع‌های دیگر، و دیدن و کنترل پردازه‌ها با ps و top و kill.

آنچه در این درس می‌آموزید

  • نرم‌افزار را از مخازن بسته نصب، به‌روزرسانی و حذف کنید
  • پردازه‌های در حال اجرا را با ps و top ببینید
  • پردازهٔ سرکش را با kill پایان دهید و کدهای پشت‌زمینه را کنترل کنید
نویسنده: تیم داکنامه · بازبینی: ۲۰۲۶-۱۰-۳۰
فهرست مطالب

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

بسته و مدیر بسته چیست؟

هر برنامهٔ آمادهٔ نصب در لینوکس یک «بسته» (Package) است: فایل برنامه به‌علاوهٔ فهرست وابستگی‌ها و نسخه‌هایش. توزیع شما این بسته‌ها را در «مخازن» (Repositories) رسمی جمع می‌کند و یک «مدیر بسته» (Package Manager) دارد که از آن‌ها برنامه می‌گیرد، نصب می‌کند و به‌روز نگه می‌دارد. شما آدرس برنامه را می‌دهید، نه لینک دانلود را؛ وابستگی‌ها هم خودکار حل می‌شوند.

روی اوبونتو و دبیان مدیر بسته apt است. کار را همیشه با به‌روزرسانی فهرست بسته‌های محلی شروع کنید:

bash
sudo apt update

این فرمان چیزی نصب نمی‌کند؛ فقط فهرست «چه چیزهایی و با چه نسخه‌ای موجود است» را تازه می‌کند. بعد از آن:

bash
sudo apt install curl      # install a program
sudo apt upgrade           # upgrade all installed programs
sudo apt remove curl       # remove a program
apt search editor          # search the package list

گزینهٔ search به دسترسی مدیر نیاز ندارد چون فقط در فهرست‌ها می‌گردد. خروجی نصب معمولاً طولانی است؛ شکل کلی‌اش چنین است:

text
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
  curl
Setting up curl (8.5.0-2ubuntu10.6) ...

پردازه چیست؟

هر برنامهٔ در حال اجرا یک «پردازه» (Process) است با یک شمارهٔ یکتا به نام PID. حتی خود ترمینال و پوستهٔ شما هم پردازه‌اند. برای دیدن پردازه‌ها:

bash
ps aux

نمونهٔ خروجی (کوتاه‌شده):

text
USER   PID %CPU %MEM STAT COMMAND
root     1  0.0  0.1 Ss   /sbin/init
sara  2214  0.2  1.5 Ss   /usr/bin/bash
sara  3407  1.8  4.2 Sl  python3 app.py

ستون‌های کلیدی: PID شمارهٔ پردازه، %CPU و %MEM مصرف منابع و COMMAND خود برنامه. برای دیدن زنده و مرتب‌شدهٔ همین داده‌ها، فرمان top را اجرا کنید؛ فهرست را هر چند ثانیه تازه می‌کند و با q خارج می‌شوید.

پایان دادن به پردازه‌ها

گاهی برنامه‌ای قفل می‌شود یا باید آن را قطع کنید. فرمان kill به پردازهٔ هدف یک «سیگنال» می‌فرستد:

bash
kill 3407     # request a clean exit (SIGTERM)
kill -9 3407  # forced exit (SIGKILL) - last resort only

بدون گزینه، kill سیگنال SIGTERM می‌فرستد: به برنامه فرصت می‌دهد فایل‌های بازش را ببندد و درست خارج شود. گزینهٔ -9 سیگنال SIGKILL است که پردازه را بدون هیچ فرصتی می‌کشد؛ پس فقط وقتی به کار ببرید که برنامه به SIGTERM پاسخ نمی‌دهد.

شمارهٔ پردازهٔ را با جست‌وجوی نام برنامه پیدا می‌کنید:

bash
pgrep python3

نمونهٔ خروجی:

text
3407

در خود ترمینال هم راه کوتاه‌تری دارید: برنامه‌ای که جلوی شما اجراست، با کلید ترکیبی Ctrl+C قطع می‌شود؛ همان سیگنال قطع، ولی با دست.

اجرای پشت‌زمینه

اگر کارِ طولانی‌ای دارید ولی ترمینال را لازم نگه می‌دارید، در انتهای فرمان علامت & بگذارید:

bash
sleep 60 &

نمونهٔ خروجی:

text
[1] 3410

فرمان بلافاصله برمی‌گردد و پردازهٔ تازه با شمارهٔ ۳۴۱۰ در پشت‌زمینه می‌رود؛ آن عدد در کروشه شمارهٔ کار در ترمینال فعلی است. حالا همان kill 3410 یا Ctrl+C روی فرمان جلویی، ابزار کنترل شماست.

تمرین‌ها

تمرین

تمرین ۱ — برنامه‌ای را نصب و حذف کنید

با apt برنامهٔ کوچک cowsay را نصب کنید، آن را اجرا کنید (کافی است cowsay hello بنویسید) و سپس حذفش کنید. فرمان‌های به‌روزرسانی فهرست را از یاد نبرید.

bash
# Write your commands here
نمایش راه‌حل
bash
sudo apt update
sudo apt install cowsay
cowsay hello
sudo apt remove cowsay

نصب با دسترسی مدیر انجام شد ولی اجرای برنامه کاربر عادی کافی است؛ بسته‌های نصب‌شده برای همهٔ کاربران در دسترس‌اند.

:::

تمرین

تمرین ۲ — پردازه بساز و پایان بده

با sleep 300 & یک پردازهٔ پشت‌زمینه بسازید، شمارهٔ آن را با pgrep sleep پیدا کنید و با kill به زندگی‌اش پایان دهید. سپس با pgrep دوباره تأیید کنید که پردازه‌ای باقی نمانده است.

bash
# Write your commands here
نمایش راه‌حل
bash
sleep 300 &
pgrep sleep
kill 3420        # the number pgrep printed
pgrep sleep

pgrep بعد از kill دیگر خروجی‌ای چاپ نمی‌کند و فقط کد وضعیت برمی‌گرداند؛ یعنی پردازه تمام شده است. اگر پردازه با kill معمولی تمام نشد، آن‌وقت نوبت kill -9 است.

:::

خلاصه

  • مدیر بسته برنامه را از مخازن رسمی با وابستگی‌هایش نصب می‌کند؛ در اوبونتو با apt update شروع و با apt install ادامه دهید.
  • در فدورا dnf و در آرچ pacman همان نقش را دارند.
  • هر برنامهٔ در حال اجرا یک پردازه با شمارهٔ PID است؛ ps aux عکس لحظه‌ای و top نمای زنده می‌دهد.
  • kill پیش‌فرض SIGTERM می‌فرستد (خروج تمیز) و kill -9 خروج اجباری است؛ Ctrl+C هم برای فرمان جلویی همان کار را می‌کند.
  • علامت & فرمان را به پشت‌زمینه می‌فرستد و PID آن را چاپ می‌کند.

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

منابع و ارجاع‌ها