مقدمه Lpic 1 ( intro)
=======
قسمت یک
خودکار و دفتر الزامی
کمال گرا هم نباشیم بچه خوبی باشیم
=======
قسمت دو
Linux در اصل یک Kernel (هسته سیستمعامل) است که توسط Linus Torvalds توسعه داده شد.
Kernel بهتنهایی برای ساخت یک سیستمعامل کامل کافی نبود و به ابزارها و برنامههای دیگری نیاز داشت.
بسیاری از این ابزارهای پایه در پروژه GNU توسعه داده شده بودند.
ترکیب GNU + Linux باعث شکلگیری سیستمهایی شد که معمولاً به آنها GNU/Linux میگوییم.
خلاصه:
مثلاً Debian، Ubuntu و AlmaLinux توزیعهای GNU/Linux هستند.
وبسایت های مهم
دانلود کرنل لینوکس
kernel.org
پروژه گنو
GNU.ORG
—————————
کامند زیر
اطلاعات Kernel را نمایش میدهد
=============
قسمت سوم
برای تست و تمرین بهتر است یک محیط مجازی (Virtual Lab) داشته باشیم تا در صورت خرابی، به سیستم اصلی آسیب نرسد.
نرمافزارهای معروف مجازیسازی:
VMware Workstation
Oracle VirtualBox
در این دوره از VMware Workstation برای ساخت ماشینهای مجازی استفاده میکنیم.
——————————————-
توزیعهای مختلف Linux 🐧
در این دوره بیشتر با دو خانواده کار میکنیم:
1. خانواده Red Hat
AlmaLinux
RHEL
Fedora
دانلود AlmaLinux: AlmaLinux
2. خانواده Debian
Debian
Ubuntu
Kali Linux
دانلود Debian: Debian
================
قسمت چهارم - نصب ماشین مجازی
Custom → آخرین نسخه Workstation
Installer Disk → گزینه
Operating System →
نام VM و محل ذخیره فایلها را انتخاب کنید.
CPU و RAM را متناسب با سیستم خود انتخاب کنید.
هنگام نصب میتوانید منابع بیشتری اختصاص دهید تا نصب سریعتر انجام شود.
Network: روی
I/O Controller: گزینه پیشفرض
Virtual Disk:
Disk: گزینه
Disk Size / Partition: به مقدار دلخواه و متناسب با نیاز VM انتخاب کنید.
در پایان تنظیمات را بررسی و Finish کنید.
===================
قسمت پنجم نصب AlmaLinux
Language: روی
Time & Date: منطقه زمانی را تنظیم کنید.
Keyboard:
Installation Destination: فقط هارد موردنظر را انتخاب کنید.
Software Selection: حالت
Network & Host Name: کارت شبکه را
Root Password: رمز Root را تعیین کنید.
User Creation: یک کاربر معمولی هم بسازید.
تنظیمات نصب را یکبار بررسی کنید و سپس Begin Installation را بزنید.
بعد از اتمام نصب، Reboot کنید و ISO را جدا کنید.
بعد از نصب
برای بررسی و انجام آپدیتها:
برای خاموش کردن سیستم:
Snapshot
قبل از تغییرات مهم در ماشین مجازی میتوانید Snapshot بگیرید تا در صورت خراب شدن تنظیمات، سیستم را به همان نقطه برگردانید.
====================
قسمت ششم نصب Debian
Language: English
Location: Iran
Keyboard: English (US)
Hostname: دست نزنید
Domain Name: خالی بگذارید
Root Password: رمز دلخواه
User: یک کاربر معمولی بسازید
Partitioning:
Guided — use entire disk
All files in one partition
Disk: دیسک موردنظر را انتخاب کنید
Write changes to disk: ابتدا
Package Manager: تنظیمات پیشفرض مناسب است
Mirror: در صورت وجود، Iran
Proxy: خالی
Package Usage Survey:
Software Selection:
SSH server ✅
Standard system utilities ✅
Desktop Environment ❌
GRUB:
GRUB Location: خود دیسک، مثلاً
نصب را تمام کنید و Reboot بزنید.
======================
قسمت هفتم — اتصال به سرور لینوکس از ویندوز 🐧
در لینوکس برای دیدن IP:
در Windows CMD ابتدا IP را Ping کنید:
سپس با SSH متصل شوید:
رمز Root را وارد کنید تا وارد سرور شوید.
==========================
قسمت هفتم - قسمت آخر INTRO : اتصال به سرور لینوکس از ویندوز
در لینوکس برای دیدن IP:
در Windows CMD ابتدا IP را Ping کنید:
سپس با SSH متصل شوید:
رمز Root را وارد کنید تا وارد سرور شوید.
====================
حتی اگر Debian یا AlmaLinux را با محیط گرافیکی (GUI) نصب کرده باشید، باز هم میتوانید با SSH به آن وصل شوید. ✅
تفاوت فقط این است که:
اگر GUI نصب باشد:
محیط دسکتاپ دارید + میتوانید SSH هم استفاده کنید.
نسخه Server/Minimal:
محیط گرافیکی ندارید و بیشتر با Terminal کار میکنید؛ SSH هم میتواند فعال باشد.
نکته مهم این است که SSH به داشتن یا نداشتن GUI وابسته نیست؛ باید سرویس SSH روی سیستم نصب و فعال باشد.
مثلاً در Debian:
و در AlmaLinux معمولاً:
پس انتخاب Server را به این دلیل انجام دادیم که برای دوره LPIC و مدیریت سرور، محیط بدون GUI سبکتر و مناسبتر است.
=======
قسمت یک
خودکار و دفتر الزامی
کمال گرا هم نباشیم بچه خوبی باشیم
=======
قسمت دو
Linux در اصل یک Kernel (هسته سیستمعامل) است که توسط Linus Torvalds توسعه داده شد.
Kernel بهتنهایی برای ساخت یک سیستمعامل کامل کافی نبود و به ابزارها و برنامههای دیگری نیاز داشت.
بسیاری از این ابزارهای پایه در پروژه GNU توسعه داده شده بودند.
ترکیب GNU + Linux باعث شکلگیری سیستمهایی شد که معمولاً به آنها GNU/Linux میگوییم.
خلاصه:
GNU = ابزارها و برنامههای پایه
+
Linux = Kernel
↓
GNU/Linux
مثلاً Debian، Ubuntu و AlmaLinux توزیعهای GNU/Linux هستند.
وبسایت های مهم
دانلود کرنل لینوکس
kernel.org
پروژه گنو
GNU.ORG
—————————
کامند زیر
uname -aاطلاعات Kernel را نمایش میدهد
=============
قسمت سوم
برای تست و تمرین بهتر است یک محیط مجازی (Virtual Lab) داشته باشیم تا در صورت خرابی، به سیستم اصلی آسیب نرسد.
نرمافزارهای معروف مجازیسازی:
VMware Workstation
Oracle VirtualBox
در این دوره از VMware Workstation برای ساخت ماشینهای مجازی استفاده میکنیم.
——————————————-
توزیعهای مختلف Linux 🐧
در این دوره بیشتر با دو خانواده کار میکنیم:
1. خانواده Red Hat
AlmaLinux
RHEL
Fedora
دانلود AlmaLinux: AlmaLinux
2. خانواده Debian
Debian
Ubuntu
Kali Linux
دانلود Debian: Debian
در ادامه دوره بیشتر تمرکز ما روی AlmaLinux و Debian خواهد بود.
================
قسمت چهارم - نصب ماشین مجازی
Custom → آخرین نسخه Workstation
Installer Disk → گزینه
Use ISOOperating System →
Linux → AlmaLinuxنام VM و محل ذخیره فایلها را انتخاب کنید.
CPU و RAM را متناسب با سیستم خود انتخاب کنید.
هنگام نصب میتوانید منابع بیشتری اختصاص دهید تا نصب سریعتر انجام شود.
Network: روی
NATI/O Controller: گزینه پیشفرض
LSI LogicVirtual Disk:
SATADisk: گزینه
Create a new virtual diskDisk Size / Partition: به مقدار دلخواه و متناسب با نیاز VM انتخاب کنید.
در پایان تنظیمات را بررسی و Finish کنید.
===================
قسمت پنجم نصب AlmaLinux
Language: روی
English بگذارید.Time & Date: منطقه زمانی را تنظیم کنید.
Keyboard:
English (US)Installation Destination: فقط هارد موردنظر را انتخاب کنید.
Software Selection: حالت
ServerNetwork & Host Name: کارت شبکه را
ON کنید و در صورت نیاز Hostname را تنظیم کنید.Root Password: رمز Root را تعیین کنید.
User Creation: یک کاربر معمولی هم بسازید.
تنظیمات نصب را یکبار بررسی کنید و سپس Begin Installation را بزنید.
بعد از اتمام نصب، Reboot کنید و ISO را جدا کنید.
بعد از نصب
برای بررسی و انجام آپدیتها:
dnf update
برای خاموش کردن سیستم:
halt -p
Snapshot
قبل از تغییرات مهم در ماشین مجازی میتوانید Snapshot بگیرید تا در صورت خراب شدن تنظیمات، سیستم را به همان نقطه برگردانید.
====================
قسمت ششم نصب Debian
Language: English
Location: Iran
Keyboard: English (US)
Hostname: دست نزنید
Domain Name: خالی بگذارید
Root Password: رمز دلخواه
User: یک کاربر معمولی بسازید
Partitioning:
Guided — use entire disk
All files in one partition
Disk: دیسک موردنظر را انتخاب کنید
Write changes to disk: ابتدا
No برای بررسی؛ بعد از اطمینان YesPackage Manager: تنظیمات پیشفرض مناسب است
Mirror: در صورت وجود، Iran
Proxy: خالی
Package Usage Survey:
NoSoftware Selection:
SSH server ✅
Standard system utilities ✅
Desktop Environment ❌
GRUB:
YesGRUB Location: خود دیسک، مثلاً
/dev/sdaنصب را تمام کنید و Reboot بزنید.
======================
قسمت هفتم — اتصال به سرور لینوکس از ویندوز 🐧
در لینوکس برای دیدن IP:
ip a
در Windows CMD ابتدا IP را Ping کنید:
ping YOUR_IP
سپس با SSH متصل شوید:
ssh root@YOUR_IP
رمز Root را وارد کنید تا وارد سرور شوید.
==========================
قسمت هفتم - قسمت آخر INTRO : اتصال به سرور لینوکس از ویندوز
در لینوکس برای دیدن IP:
ip a
در Windows CMD ابتدا IP را Ping کنید:
ping YOUR_IP
سپس با SSH متصل شوید:
ssh root@YOUR_IP
رمز Root را وارد کنید تا وارد سرور شوید.
====================
حتی اگر Debian یا AlmaLinux را با محیط گرافیکی (GUI) نصب کرده باشید، باز هم میتوانید با SSH به آن وصل شوید. ✅
تفاوت فقط این است که:
اگر GUI نصب باشد:
محیط دسکتاپ دارید + میتوانید SSH هم استفاده کنید.
نسخه Server/Minimal:
محیط گرافیکی ندارید و بیشتر با Terminal کار میکنید؛ SSH هم میتواند فعال باشد.
نکته مهم این است که SSH به داشتن یا نداشتن GUI وابسته نیست؛ باید سرویس SSH روی سیستم نصب و فعال باشد.
مثلاً در Debian:
systemctl status ssh
و در AlmaLinux معمولاً:
systemctl status sshd
پس انتخاب Server را به این دلیل انجام دادیم که برای دوره LPIC و مدیریت سرور، محیط بدون GUI سبکتر و مناسبتر است.
👏1
فصل اول دوره الپیک
===============================
قسمت اول
—————————
Terminal چیست؟
Terminal محیطی برای ارتباط و کار با سیستمعامل لینوکس است که از طریق آن میتوانیم دستورات را اجرا و سیستم را مدیریت کنیم.
—————————
Shell چیست؟
Shell یک رابط بین کاربر و Kernel است که دستورات کاربر را دریافت، تفسیر و اجرا میکند
—————————
Bash چیست؟
Bash (Bourne Again Shell) یکی از معروفترین Shellهای لینوکس است و علاوه بر اجرای دستورات، امکان Shell Scripting را هم فراهم میکند.
—————————
انواع Shell
—————————
Bash Script چیست؟
فایلی شامل مجموعهای از دستورات Bash است که میتوان آنها را بهصورت خودکار و پشتسرهم اجرا کرد.
مثلاً:
—————————
Command چیست؟
Command یا دستور، فرمانی است که به Shell میدهیم تا یک عملیات مشخص را انجام دهد.
مثلاً:
برای نمایش فایلها و پوشهها.
برای نمایش مسیر فعلی.
برای نمایش کاربر فعلی.
===============================
قسمت اول
—————————
Terminal چیست؟
Terminal محیطی برای ارتباط و کار با سیستمعامل لینوکس است که از طریق آن میتوانیم دستورات را اجرا و سیستم را مدیریت کنیم.
—————————
Shell چیست؟
Shell یک رابط بین کاربر و Kernel است که دستورات کاربر را دریافت، تفسیر و اجرا میکند
—————————
Bash چیست؟
Bash (Bourne Again Shell) یکی از معروفترین Shellهای لینوکس است و علاوه بر اجرای دستورات، امکان Shell Scripting را هم فراهم میکند.
—————————
انواع Shell
bashshcsh / tcshkshzshfish—————————
Bash Script چیست؟
فایلی شامل مجموعهای از دستورات Bash است که میتوان آنها را بهصورت خودکار و پشتسرهم اجرا کرد.
مثلاً:
#!/bin/bash
echo "Hello Linux"
—————————
Command چیست؟
Command یا دستور، فرمانی است که به Shell میدهیم تا یک عملیات مشخص را انجام دهد.
مثلاً:
ls
برای نمایش فایلها و پوشهها.
pwd
برای نمایش مسیر فعلی.
whoami
برای نمایش کاربر فعلی.
👏1
فصل اول دوره الپیک
===============================
قسمت دوم — آدرسدهی در لینوکس 🐧
——————
مخفف Print Working Directory است و مسیر کامل پوشهای که در حال حاضر داخل آن هستیم را نمایش میدهد.
مثال:
یعنی در حال حاضر داخل مسیر
=====================
قسمت سوم —فرمان های مقدماتی بخش اول 🐧
——————
نمایش نام سیستمعامل.
نمایش اطلاعات کامل سیستم و Kernel.
نمایش راهنمای دستور
رفتن به مسیر ریشه
رفتن یک پوشه به عقب.
برگشتن به مسیر قبلی.
———————
نمایش فایلها و پوشههای مسیر فعلی.
نمایش تمام فایلها، حتی فایلهای مخفی.
=====================
قسمت چهارم —فرمان های مقدماتی بخش دوم 🐧
——————
همهچیز در لینوکس فایل است؛ حتی Deviceها و بسیاری از منابع سیستم بهصورت فایل نمایش داده میشوند.
————-
Built-in چیست؟
دستورهایی که داخل خود Shell وجود دارند و نیازی به فایل اجرایی جداگانه ندارند.
مثال:
—————-
برای نمایش محتوای فایل بهصورت صفحهبهصفحه:
—————-
نمایش ابتدای فایل:
نمایش تعداد مشخصی خط:
نمایش انتهای فایل:
نمایش تعداد مشخصی خط:
نمایش محتوای فایل:
نمایش همراه با شماره خط:
—————-
مشخص میکند یک Command از چه نوعی است:
مثلاً ممکن است نشان دهد
=====================
قسمت پنجم —ایجاد یک فایل 🐧
——————
برای چاپ متن در Terminal:
نمایش همه موارد موجود در مسیر با
————————
علامت
برای Redirect کردن خروجی به داخل فایل استفاده میشود.
اگر فایل وجود نداشته باشد، ساخته میشود؛ اگر وجود داشته باشد، محتوای قبلی پاک و جایگزین میشود.
——————————
برای ایجاد فایل خالی:
مثلاً:
فایل
حالا با دستور زیر مثلا alireza زیر فایل test ساخته میشود
===============================
قسمت دوم — آدرسدهی در لینوکس 🐧
——————
pwdمخفف Print Working Directory است و مسیر کامل پوشهای که در حال حاضر داخل آن هستیم را نمایش میدهد.
pwd
مثال:
/home/alireza
یعنی در حال حاضر داخل مسیر
/home/alireza قرار داریم.=====================
قسمت سوم —فرمان های مقدماتی بخش اول 🐧
——————
unameنمایش نام سیستمعامل.
uname
uname -aنمایش اطلاعات کامل سیستم و Kernel.
uname -a
uname --helpنمایش راهنمای دستور
uname.uname --help
—————-
cd — تغییر مسیرcd /
رفتن به مسیر ریشه
/cd ..
رفتن یک پوشه به عقب.
cd -
برگشتن به مسیر قبلی.
———————
ls — نمایش فایلها و پوشههاls
نمایش فایلها و پوشههای مسیر فعلی.
ls -a
نمایش تمام فایلها، حتی فایلهای مخفی.
=====================
قسمت چهارم —فرمان های مقدماتی بخش دوم 🐧
——————
همهچیز در لینوکس فایل است؛ حتی Deviceها و بسیاری از منابع سیستم بهصورت فایل نمایش داده میشوند.
————-
Built-in چیست؟
دستورهایی که داخل خود Shell وجود دارند و نیازی به فایل اجرایی جداگانه ندارند.
مثال:
cd
type
—————-
more و lessبرای نمایش محتوای فایل بهصورت صفحهبهصفحه:
more file.txt
less file.txt
less امکانات بیشتری برای جستوجو و حرکت دارد.—————-
headنمایش ابتدای فایل:
head file.txt
نمایش تعداد مشخصی خط:
head -n 5 file.txt
—————-
tailنمایش انتهای فایل:
tail file.txt
نمایش تعداد مشخصی خط:
tail -n 5 file.txt
—————-
catنمایش محتوای فایل:
cat file.txt
نمایش همراه با شماره خط:
cat -n file.txt
—————-
typeمشخص میکند یک Command از چه نوعی است:
type cd
type ls
مثلاً ممکن است نشان دهد
cd یک Shell Built-in است.=====================
قسمت پنجم —ایجاد یک فایل 🐧
——————
echoبرای چاپ متن در Terminal:
echo "hello"
نمایش همه موارد موجود در مسیر با
*:echo *
————————
علامت
>برای Redirect کردن خروجی به داخل فایل استفاده میشود.
echo "alireza" > test
اگر فایل وجود نداشته باشد، ساخته میشود؛ اگر وجود داشته باشد، محتوای قبلی پاک و جایگزین میشود.
——————————
touchبرای ایجاد فایل خالی:
touch test
مثلاً:
touch test.txt
فایل
test.txt ساخته میشود.حالا با دستور زیر مثلا alireza زیر فایل test ساخته میشود
echo "alireza" > test
👏4
قسمت ششم — متغیرها 🐧
——————————
Variable محلی برای نگهداری اطلاعات در Shell است؛ مثل متن، عدد یا مسیر.
نمایش متغیرهای محیطی:
نمایش مقدار یک متغیر:
——————————
تعداد سطحهای Shell فعلی را نشان میدهد:
یک متغیر را به Environment Variable تبدیل میکند تا Shellهای فرزند نیز آن را داشته باشند:
بهصورت پیشفرض متغیرهای ساختهشده در Shell Local هستند؛ با
ظاهر Prompt ترمینال را مشخص میکند:
مسیرهایی را مشخص میکند که Shell برای پیدا کردن دستورات در آنها جستوجو میکند:
مثلاً وقتی مینویسیم:
Shell مسیرهای موجود در
====================
قسمت هفتم — لاگ فعالیت شما 🐧
—————
نمایش دستورهایی که قبلاً اجرا کردهایم:
اجرای یک دستور از History
مثلاً:
دستور شماره 343 را دوباره اجرا میکند.
نکته
اگر قبل از یک Command یک Space بگذارید، در History ذخیره نمیشود؛ البته این رفتار به تنظیم
———————————-
مشخص میکند History در کدام فایل ذخیره شود:
معمولاً:
پاک کردن History فعلی Shell:
خواندن History از فایل:
نوشتن History فعلی در فایل:
فایل معمول ذخیره History مربوط به Bash است:
====================
قسمت هشتم — کمک گرفتن 🐧
—————
در بسیاری از دستورات،
البته
————————
روش عمومیتر برای گرفتن راهنمای دستور:
معمولاً Syntax، Optionها و کاربرد دستور را نمایش میدهد.
————————
مخفف Manual است و مستندات کامل یک دستور را نمایش میدهد:
داخل
راهنمای خود دستور
برای جستوجوی کلمه در عنوان و توضیحات Manualها:
دستورهای مرتبط با
————————
نمایش Exit Status آخرین دستور اجراشده:
معمولاً:
مثال:
اگر
====================
——————————
Variable محلی برای نگهداری اطلاعات در Shell است؛ مثل متن، عدد یا مسیر.
envنمایش متغیرهای محیطی:
env
-------------
echoنمایش مقدار یک متغیر:
echo $HOME
echo $SHELL
$HOME → مسیر Home کاربر$SHELL → Shell پیشفرض کاربر——————————
SHLVLتعداد سطحهای Shell فعلی را نشان میدهد:
echo $SHLVL
---------------
exportیک متغیر را به Environment Variable تبدیل میکند تا Shellهای فرزند نیز آن را داشته باشند:
export NAME=Alireza
بهصورت پیشفرض متغیرهای ساختهشده در Shell Local هستند؛ با
export به محیط فرزند منتقل میشوند.PS1ظاهر Prompt ترمینال را مشخص میکند:
echo $PS1
------------------
PATHمسیرهایی را مشخص میکند که Shell برای پیدا کردن دستورات در آنها جستوجو میکند:
echo $PATH
مثلاً وقتی مینویسیم:
ls
Shell مسیرهای موجود در
PATH را برای پیدا کردن دستور ls بررسی میکند.====================
قسمت هفتم — لاگ فعالیت شما 🐧
—————
historyنمایش دستورهایی که قبلاً اجرا کردهایم:
history
اجرای یک دستور از History
مثلاً:
!343
دستور شماره 343 را دوباره اجرا میکند.
نکته
اگر قبل از یک Command یک Space بگذارید، در History ذخیره نمیشود؛ البته این رفتار به تنظیم
HISTCONTROL بستگی دارد.———————————-
$HISTFILEمشخص میکند History در کدام فایل ذخیره شود:
echo $HISTFILE
معمولاً:
~/.bash_history
------------------
history -cپاک کردن History فعلی Shell:
history -c
history -rخواندن History از فایل:
history -r
history -wنوشتن History فعلی در فایل:
history -w
.bash_historyفایل معمول ذخیره History مربوط به Bash است:
~/.bash_history
نکته:
historyبرای مدیریت History داخل Shell است و
.bash_historyمعمولاً محل ذخیره دائمی آن روی دیسک است.
====================
قسمت هشتم — کمک گرفتن 🐧
—————
-hدر بسیاری از دستورات،
-h برای نمایش Help کوتاه استفاده میشود:ls -h
البته
-h در همه دستورات معنی یکسانی ندارد؛ مثلاً در ls معمولاً خروجی را خواناتر میکند.————————
--helpروش عمومیتر برای گرفتن راهنمای دستور:
ls --help
معمولاً Syntax، Optionها و کاربرد دستور را نمایش میدهد.
————————
manمخفف Manual است و مستندات کامل یک دستور را نمایش میدهد:
man ls
داخل
man میتوانی:↑ ↓ → حرکت/word → جستوجوn → نتیجه بعدیq → خروجman manراهنمای خود دستور
man:man man
man -kبرای جستوجوی کلمه در عنوان و توضیحات Manualها:
man -k passwd
دستورهای مرتبط با
passwd را پیدا میکند.————————
echo $?نمایش Exit Status آخرین دستور اجراشده:
echo $?
معمولاً:
0 → موفق
1+ → خطا / وضعیت غیرموفق
مثال:
ls
echo $?
اگر
ls با موفقیت اجرا شود، معمولاً 0 میبینیم.====================
❤1👏1
قسمت نهم — ویرایشگر فایل های متنی 🐧
—————
در لینوکس برای ایجاد و ویرایش فایلهای متنی از Editorها استفاده میکنیم.
ویرایشگر استاندارد و قدیمی لینوکس:
دو حالت مهم دارد:
Command Mode → اجرای دستورات
Insert Mode → نوشتن متن
ورود به حالت نوشتن:
خروج:
ذخیره و خروج:
خروج بدون ذخیره:
نسخه پیشرفتهتر
در سرورها و محیطهای حرفهای بسیار پرکاربرد است.
—————————-
ویرایشگر سادهتر و مناسب افراد تازهکار:
در پایین صفحه میانبرها نمایش داده میشوند.
=====================
قسمت دهم — شروع کار با vi 🐧
—————
1. Command Mode
حالت پیشفرض برای اجرای دستورات و حرکت داخل فایل.
2. Insert Mode
برای نوشتن و ویرایش متن.
از Command Mode:
برای برگشت به Command Mode:
3. Ex Mode
برای ذخیره، خروج و دستورات مدیریتی فایل.
ابتدا
دستورات مهمتر
نکته مهم
برای خروج از هر حالت و برگشت به Command Mode:
پس ترتیب اصلی را اینطور به خاطر بسپار:
Command Mode →
=====================
قسمت یازدهم — شروع کار با nano 🐧
—————
باز کردن یا ایجاد فایل
دستورات مهم Nano
ذخیره و خروج
بعد از ویرایش:
یعنی:
Save → تأیید نام فایل → Exit
=====================
—————
در لینوکس برای ایجاد و ویرایش فایلهای متنی از Editorها استفاده میکنیم.
viویرایشگر استاندارد و قدیمی لینوکس:
vi test.txt
دو حالت مهم دارد:
Command Mode → اجرای دستورات
Insert Mode → نوشتن متن
ورود به حالت نوشتن:
i
خروج:
Esc
ذخیره و خروج:
:wq
خروج بدون ذخیره:
:q!
---------------
vimنسخه پیشرفتهتر
vi با امکانات بیشتر:vim test.txt
در سرورها و محیطهای حرفهای بسیار پرکاربرد است.
—————————-
nanoویرایشگر سادهتر و مناسب افراد تازهکار:
nano test.txt
در پایین صفحه میانبرها نمایش داده میشوند.
Ctrl + O → ذخیرهCtrl + X → خروجCtrl + W → جستوجوبرای LPIC باید حداقل vi/vim را بلد باشیم، چون ممکن است روی سرور فقط همین Editor در دسترس باشد.
=====================
قسمت دهم — شروع کار با vi 🐧
—————
vi سه حالت اصلی دارد:1. Command Mode
حالت پیشفرض برای اجرای دستورات و حرکت داخل فایل.
vi test.txt
h → چپj → پایینk → بالاl → راست0 → ابتدای خط$ → انتهای خطgg → ابتدای فایلG → انتهای فایلdd → حذف خطyy → کپی خطp → Pasteu → UndoCtrl + r → Redo/text → جستوجوn → نتیجه بعدیx → حذف یک کاراکتر2. Insert Mode
برای نوشتن و ویرایش متن.
از Command Mode:
i → نوشتن از محل فعلی
a → نوشتن بعد از کاراکتر فعلی
o → ایجاد خط جدید زیر خط فعلی
O → ایجاد خط جدید بالای خط فعلی
برای برگشت به Command Mode:
Esc
3. Ex Mode
برای ذخیره، خروج و دستورات مدیریتی فایل.
ابتدا
: بزنید::w ذخیره
:q خروج
:wq ذخیره و خروج
:q! خروج بدون ذخیره
:w! ذخیره اجباری
:x ذخیره و خروج
دستورات مهمتر
vidw حذف یک کلمه
D حذف از محل فعلی تا انتهای خط
dG حذف تا انتهای فایل
cw تغییر یک کلمه
cc تغییر کل خط
C تغییر تا انتهای خط
r جایگزینی یک کاراکتر
R ورود به حالت Replace
J چسباندن خط بعدی به خط فعلی
. تکرار آخرین دستور
نکته مهم
برای خروج از هر حالت و برگشت به Command Mode:
Esc
پس ترتیب اصلی را اینطور به خاطر بسپار:
Command Mode →
i → Insert Mode → Esc → Command Mode → : → Ex Mode=====================
قسمت یازدهم — شروع کار با nano 🐧
—————
nano یک ویرایشگر متنی ساده و مناسب برای ویرایش فایلها در لینوکس است.باز کردن یا ایجاد فایل
nano test.txt
دستورات مهم Nano
Ctrl + O → ذخیره فایلCtrl + X → خروجCtrl + W → جستوجوCtrl + K → حذف/بریدن یک خطCtrl + U → برگرداندن خط Cut شدهCtrl + G → نمایش راهنماCtrl + C → نمایش موقعیت CursorCtrl + _ → رفتن به شماره خط مشخصAlt + U → UndoAlt + E → Redoذخیره و خروج
بعد از ویرایش:
Ctrl + O
Enter
Ctrl + X
یعنی:
Save → تأیید نام فایل → Exit
=====================
👍1👏1
قسمت دوازدهم — پردازش فایل ها 🐧
—————
. فرمان
دستور
نمایش محتویات فایل
مثلاً:
—————-
نمایش چند فایل پشت سر هم
محتوای
—————-
ترکیب دو فایل در فایل جدید
یعنی:
مثلاً:
⚠️ اگر
—————-
نمایش فایل جدید
—————-
اضافه کردن به انتهای فایل
برای اضافه کردن محتوا بدون پاک کردن محتوای قبلی:
تفاوت:
جایگزین میکند.
به انتهای فایل اضافه میکند.
—————-
نمایش شماره خطوط
مثلاً:
—————-
گزینههای مهم
شمارهگذاری خطوط
شمارهگذاری خطوط غیرخالی
نمایش کاراکترهای مخفی
=—————————=
فرمان
دستور
فرض کنیم:
alireza1
alireza2
حالا:
خروجی:
یعنی برخلاف
—————-
ذخیره خروجی
بعد:
——————
تغییر جداکننده
بهصورت پیشفرض جداکننده
میتوانیم با
خروجی:
مثلاً برای
———————
فرمان
برای مشاهده محتوای فایل به شکل عددی و مخصوصاً بررسی دادههای باینری استفاده میشود.
محتوای فایل را به صورت اعداد اکتال نمایش میدهد.
—————-
نمایش Hexadecimal
گزینه
مثلاً:
—————-
نمایش ASCII
کاراکترها را نمایش میدهد.
نمایش Hex + ASCII
یکی از حالتهای کاربردی:
برای بررسی فایلهای باینری و کاراکترهای مخفی بسیار مفید است.
=—————————=
فرمان
مثلاً:
به صورت پیشفرض فایل را به بخشهایی تقسیم میکند.
فایلهایی شبیه:
ساخته میشوند.
——————
تقسیم بر اساس تعداد خطوط
مثلاً هر فایل حداکثر 100 خط داشته باشد:
یا:
————————
تعیین Prefix
بهصورت پیشفرض نام فایلها با
میتوانیم خودمان Prefix تعیین کنیم:
خروجی:
———————-
تقسیم بر اساس حجم
مثلاً هر قسمت 1MB:
یا:
مثلاً 500KB:
———————-
تقسیم به تعداد مشخص فایل
با
فایل را به 5 قسمت تقسیم میکند.
—————————-
ترکیب دوباره فایلهای split شده
اگر فایلها:
باشند:
یا:
=——————————=
5. فرمان
مثلاً:
حالا:
خروجی:
——————
مرتبسازی برعکس
فرض کنیم:
اگر بزنیم:
ممکن است ترتیب لغوی بگیریم:
برای مرتبسازی عددی:
نتیجه:
—————-
حذف خطوط تکراری هنگام Sort
=—————————-=
فرمان
مثلاً:
اجرای:
نتیجه:
⚠️ نکته بسیار مهم LPIC:
مثلاً:
با:
هیچ
برای حذف تمام موارد تکراری:
یا کوتاهتر:
تعداد تکرارها
مثلاً:
فقط خطوط تکراری
—————
. فرمان
catدستور
cat مخفف Concatenate است و برای نمایش، ترکیب و ایجاد فایلهای متنی استفاده میشود.نمایش محتویات فایل
cat alireza1
مثلاً:
ali
reza
linux
—————-
نمایش چند فایل پشت سر هم
cat alireza1 alireza2
محتوای
alireza1 و سپس alireza2 نمایش داده میشود.—————-
ترکیب دو فایل در فایل جدید
cat alireza1 alireza2 > alireza3
یعنی:
alireza1 + alireza2 → alireza3
مثلاً:
cat file1.txt file2.txt > file3.txt
⚠️ اگر
alireza3 از قبل وجود داشته باشد، محتوای قبلی آن پاک و جایگزین میشود.—————-
نمایش فایل جدید
cat alireza3
—————-
اضافه کردن به انتهای فایل
برای اضافه کردن محتوا بدون پاک کردن محتوای قبلی:
cat alireza1 alireza2 >> alireza3
تفاوت:
>
جایگزین میکند.
>>
به انتهای فایل اضافه میکند.
—————-
نمایش شماره خطوط
cat -n alireza1
مثلاً:
1 ali
2 reza
3 linux
—————-
گزینههای مهم
cat:cat -n file
شمارهگذاری خطوط
cat -b file
شمارهگذاری خطوط غیرخالی
cat -A file
نمایش کاراکترهای مخفی
=—————————=
فرمان
pasteدستور
paste فایلها را خطبهخط کنار یکدیگر قرار میدهد.فرض کنیم:
alireza1
Ali
Reza
Hassan
alireza2
20
25
30
حالا:
paste alireza1 alireza2
خروجی:
Ali 20
Reza 25
Hassan 30
یعنی برخلاف
cat که فایلها را پشت سر هم قرار—————-
ذخیره خروجی
paste alireza1 alireza2 > alireza4
بعد:
cat alireza4
——————
تغییر جداکننده
بهصورت پیشفرض جداکننده
Tab است.میتوانیم با
-d جداکننده تعیین کنیم:paste -d ',' alireza1 alireza2
خروجی:
Ali,20
Reza,25
Hassan,30
مثلاً برای
::paste -d ':' alireza1 alireza2
———————
فرمان
odod مخفف Octal Dump است.برای مشاهده محتوای فایل به شکل عددی و مخصوصاً بررسی دادههای باینری استفاده میشود.
od alireza1
محتوای فایل را به صورت اعداد اکتال نمایش میدهد.
—————-
نمایش Hexadecimal
od -x alireza1
گزینه
-x دادهها را به صورت Hexadecimal نمایش میدهد.مثلاً:
0000000 6c41 0a69 6572
—————-
نمایش ASCII
od -c alireza1
کاراکترها را نمایش میدهد.
نمایش Hex + ASCII
یکی از حالتهای کاربردی:
od -Ax -tx1z alireza1
برای بررسی فایلهای باینری و کاراکترهای مخفی بسیار مفید است.
=—————————=
فرمان
splitsplit برای تقسیم کردن یک فایل بزرگ به چند فایل کوچکتر استفاده میشود.مثلاً:
split alireza.txt
به صورت پیشفرض فایل را به بخشهایی تقسیم میکند.
فایلهایی شبیه:
xaa
xab
xac
xad
ساخته میشوند.
——————
تقسیم بر اساس تعداد خطوط
مثلاً هر فایل حداکثر 100 خط داشته باشد:
split -l 100 alireza.txt
یا:
split --lines=100 alireza.txt
————————
تعیین Prefix
بهصورت پیشفرض نام فایلها با
x شروع میشود.میتوانیم خودمان Prefix تعیین کنیم:
split -l 100 alireza.txt part_
خروجی:
part_aa
part_ab
part_ac
———————-
تقسیم بر اساس حجم
مثلاً هر قسمت 1MB:
split -b 1M alireza.txt
یا:
split --bytes=1M alireza.txt
مثلاً 500KB:
split -b 500K alireza.txt
———————-
تقسیم به تعداد مشخص فایل
با
-n:split -n 5 alireza.txt
فایل را به 5 قسمت تقسیم میکند.
—————————-
ترکیب دوباره فایلهای split شده
اگر فایلها:
xaa
xab
xac
باشند:
cat xaa xab xac > original.txt
یا:
cat xa* > original.txt
=——————————=
5. فرمان
sortsort برای مرتب کردن خطوط فایل استفاده میشود.مثلاً:
cat names.txt
Reza
Ali
Hassan
Mohammad
حالا:
sort names.txt
خروجی:
Ali
Hassan
Mohammad
Reza
——————
مرتبسازی برعکس
sort -r names.txt
فرض کنیم:
100
20
5
30
اگر بزنیم:
sort numbers.txt
ممکن است ترتیب لغوی بگیریم:
100
20
30
5
برای مرتبسازی عددی:
sort -n numbers.txt
نتیجه:
5
20
30
100
—————-
حذف خطوط تکراری هنگام Sort
sort -u names.txt
u یعنی Unique.=—————————-=
فرمان
uniquniq خطوط تکراری را حذف میکند.مثلاً:
Ali
Ali
Reza
Reza
Reza
Hassan
اجرای:
uniq names.txt
نتیجه:
Ali
Reza
Hassan
⚠️ نکته بسیار مهم LPIC:
uniq فقط تکرارهای پشت سر هم را حذف میکند.مثلاً:
Ali
Reza
Ali
با:
uniq file
هیچ
Aliای حذف نمیشود.برای حذف تمام موارد تکراری:
sort file | uniq
یا کوتاهتر:
sort -u file
تعداد تکرارها
uniq -c names.txt
مثلاً:
2 Ali
3 Reza
1 Hassan
فقط خطوط تکراری
uniq -d names.txt
👏1
فرمان
دو نوع اصلی Link داریم:
Hard Link
حالا دو نام برای یک داده داریم:
اگر یکی را حذف کنیم، داده تا زمانی که لینک دیگری وجود دارد باقی میماند.
—————————
Symbolic Link
با
ساختار:
برای دیدن:
مثلاً:
تفاوت مهم
Hard Link
——————————
فرمان
برای مشاهده فایلهای بزرگ استفاده میشود.
برخلاف
کلیدهای مهم:
مثلاً:
بعد:
برای پیدا کردن
———————————-
فرمان
مشابه
برای حرکت:
تفاوت معروف:
—————————————
فرمان
برای نمایش ابتدای فایل استفاده میشود.
بهصورت پیشفرض 10 خط اول را نمایش میدهد.
نمایش 5 خط اول
یا:
نمایش تعداد بایت
20 بایت اول را نمایش میدهد.
——————————-
فرمان
برعکس
10 خط آخر را نمایش میدهد.
5 خط آخر
———————————
⭐️ دستورات مهمی که برای LPIC-1 باید مسلط باشی
و از همه مهمتر، ترکیب این دستورات با
lnln برای ایجاد Link بین فایلها استفاده میشود.دو نوع اصلی Link داریم:
Hard Link
Symbolic Link
Hard Link
ln alireza.txt backup.txt
حالا دو نام برای یک داده داریم:
alireza.txt
backup.txt
↓
همان inode
اگر یکی را حذف کنیم، داده تا زمانی که لینک دیگری وجود دارد باقی میماند.
—————————
Symbolic Link
با
-s:ln -s alireza.txt shortcut.txt
ساختار:
shortcut.txt → alireza.txt
برای دیدن:
ls -l
مثلاً:
shortcut.txt -> alireza.txt
تفاوت مهم
ln file hard
Hard Link
ln -s file soft
——————————
فرمان
lessبرای مشاهده فایلهای بزرگ استفاده میشود.
less /var/log/syslog
برخلاف
cat لازم نیست کل فایل را یکجا روی صفحه نمایش دهد.کلیدهای مهم:
Space صفحه بعد
b صفحه قبل
↑ یک خط بالا
↓ یک خط پایین
g ابتدای فایل
G انتهای فایل
q خروج
/word جستجو
n نتیجه بعدی جستجو
N نتیجه قبلی
مثلاً:
less /var/log/syslog
بعد:
/ssh
برای پیدا کردن
ssh.———————————-
فرمان
moreمشابه
less است:more file.txt
برای حرکت:
Space صفحه بعد
Enter یک خط جلو
q خروج
تفاوت معروف:
lessامکانات بیشتری دارد و معمولاً انتخاب بهتری برای مشاهده فایلهای بزرگ است.
—————————————
فرمان
headبرای نمایش ابتدای فایل استفاده میشود.
head file.txt
بهصورت پیشفرض 10 خط اول را نمایش میدهد.
نمایش 5 خط اول
head -n 5 file.txt
یا:
head -5 file.txt
نمایش تعداد بایت
head -c 20 file.txt
20 بایت اول را نمایش میدهد.
——————————-
فرمان
tailبرعکس
head، انتهای فایل را نمایش میدهد.tail file.txt
10 خط آخر را نمایش میدهد.
5 خط آخر
tail -n 5 file.txt
———————————
⭐️ دستورات مهمی که برای LPIC-1 باید مسلط باشی
cat
cat -n
paste
paste -d
od
od -x
split
split -l
split -b
split -n
sort
sort -n
sort -r
sort -u
uniq
uniq -c
uniq -d
ln
ln -s
less
more
head
tail
tail -f
و از همه مهمتر، ترکیب این دستورات با
| و > و >> است؛ چون در مباحث بعدی LPIC مرتب با آنها کار خواهیم کرد.👏2
مهمترین کاربرد tail در مدیریت سرور 🔥
گزینه
یعنی فایل را زنده دنبال کن.
هر چیزی که به انتهای فایل اضافه شود، بلافاصله نمایش داده میشود.
این برای مشاهده Live Log بسیار مهم است.
مثلاً:
برای مشاهده لحظهای لاگهای احراز هویت.
خروج:
گزینه
-f:tail -f /var/log/syslog
یعنی فایل را زنده دنبال کن.
هر چیزی که به انتهای فایل اضافه شود، بلافاصله نمایش داده میشود.
این برای مشاهده Live Log بسیار مهم است.
مثلاً:
tail -f /var/log/auth.log
برای مشاهده لحظهای لاگهای احراز هویت.
خروج:
Ctrl + C
👏1
ترکیب دستورات 🔥
قدرت واقعی این دستورات زمانی مشخص میشود که آنها را با Pipe (
مثلاً:
یعنی:
یا:
تعداد تکرار هر نام را نشان میدهد.
قدرت واقعی این دستورات زمانی مشخص میشود که آنها را با Pipe (
|) ترکیب کنیم.مثلاً:
cat names.txt | sort | uniq
یعنی:
cat
↓
خواندن فایل
↓
sort
↓
مرتب کردن
↓
uniq
↓
حذف تکراریها
یا:
sort names.txt | uniq -c
تعداد تکرار هر نام را نشان میدهد.
👏1
یک مثال واقعیتر
فرض کن لاگ SSH داریم:
این زنجیره:
برای Linux Administration و Security بسیار مهم است.
فرض کن لاگ SSH داریم:
cat /var/log/auth.log | grep "Failed" | sort | uniq -c
این زنجیره:
auth.log
↓
پیدا کردن Failed
↓
مرتب کردن
↓
شمردن موارد تکراری
برای Linux Administration و Security بسیار مهم است.
👏2
قسمت سیزدهم — خلاصه کردن فایل ها 🐧
——————
برای شمارش خط، کلمه و کاراکتر/بایت فایل استفاده میشود:
فقط تعداد خطوط:
——————————————
برای جدا کردن بخشهایی از هر خط استفاده میشود.
مثلاً فایل
ذخیره خروجی در فایل:
————————
برای تولید MD5 Hash فایل:
برای تولید SHA-256 Hash:
برای تولید SHA-512 Hash:
==================
قسمت چهاردهم — جستجو با فرمان grep 🐧
——————
خط (Line) چیست؟
در فایلهای متنی، هر بخش از متن که با Enter از بخش بعدی جدا شود، یک Line محسوب میشود.
ساختار کلی:
مثالهای ساده
جستجوی یک کلمه در فایل:
جستجوی بدون حساسیت به حروف بزرگ و کوچک:
نمایش شماره خط:
جستجوی چند کلمه:
جستجو در خروجی یک Command
با Pipe:
یعنی خروجی
مدلهای مهم جستجو با
1. جستجوی معمولی
2. جستجوی معکوس —
خطوطی که شامل کلمه نیستند:
3. جستجوی بدون حساسیت —
4. نمایش شماره خط —
5. جستجوی کلمه کامل —
مثلاً
6. جستجوی بازگشتی —
جستجو داخل پوشه و زیرپوشهها:
7. نمایش تعداد Matchها —
ترکیب چند Option
یعنی:
نکته مهم
مثلاً:
خطهایی را پیدا میکند که با یک یا چند عدد شروع میشوند.
=======================
——————
wcبرای شمارش خط، کلمه و کاراکتر/بایت فایل استفاده میشود:
wc ali
فقط تعداد خطوط:
wc -l ali
——————————————
cutبرای جدا کردن بخشهایی از هر خط استفاده میشود.
مثلاً فایل
/etc/passwd با : جدا شده است:cut -d ":" -f 1-7 /etc/passwd
ذخیره خروجی در فایل:
cut -d ":" -f 1-7 /etc/passwd > user_shell
-d → مشخص کردن جداکننده-f → انتخاب Field————————
md5sumبرای تولید MD5 Hash فایل:
md5sum alireza
-----
sha256sumبرای تولید SHA-256 Hash:
sha256sum alireza
----------
sha512sumبرای تولید SHA-512 Hash:
sha512sum alireza
Hash برای بررسی Integrity فایل کاربرد دارد؛ اگر محتوای فایل تغییر کند، Hash آن نیز تغییر میکند.
==================
قسمت چهاردهم — جستجو با فرمان grep 🐧
——————
خط (Line) چیست؟
در فایلهای متنی، هر بخش از متن که با Enter از بخش بعدی جدا شود، یک Line محسوب میشود.
grep چیست؟grep برای جستجو و پیدا کردن متن، کلمه یا الگو (Pattern) داخل فایلها و خروجی دستورات استفاده میشود.ساختار کلی:
grep [option] "pattern" file
مثالهای ساده
جستجوی یک کلمه در فایل:
grep "root" /etc/passwd
جستجوی بدون حساسیت به حروف بزرگ و کوچک:
grep -i "root" /etc/passwd
نمایش شماره خط:
grep -n "root" /etc/passwd
جستجوی چند کلمه:
grep -E "root|admin|user" /etc/passwd
جستجو در خروجی یک Command
با Pipe:
ps aux | grep ssh
یعنی خروجی
ps aux را به grep میدهیم تا فقط خطوط مربوط به ssh نمایش داده شوند.مدلهای مهم جستجو با
grep1. جستجوی معمولی
grep "linux" file.txt
2. جستجوی معکوس —
-vخطوطی که شامل کلمه نیستند:
grep -v "linux" file.txt
3. جستجوی بدون حساسیت —
-igrep -i "Linux" file.txt
4. نمایش شماره خط —
-ngrep -n "linux" file.txt
5. جستجوی کلمه کامل —
-wgrep -w "root" /etc/passwd
مثلاً
root را پیدا میکند ولی root123 را Match نمیکند.6. جستجوی بازگشتی —
-rجستجو داخل پوشه و زیرپوشهها:
grep -r "password" /etc/
7. نمایش تعداد Matchها —
-cgrep -c "root" /etc/passwd
ترکیب چند Option
grep -in "error" logfile
یعنی:
-i → حساس نبودن به حروف-n → نمایش شماره خط"error" → عبارت جستجوlogfile → فایل موردنظرنکته مهم
grep فقط برای جستجوی یک کلمه نیست؛ میتوانیم با Regular Expression (Regex) الگوهای پیچیدهتر هم جستجو کنیم.مثلاً:
grep -E "^[0-9]+" file.txt
خطهایی را پیدا میکند که با یک یا چند عدد شروع میشوند.
=======================
❤1👏1
قسمت پانزدهم — redirect 🐧
معمولاً ورودی از Keyboard گرفته میشود.
هر چیزی تایپ کنید،
خروجی عادی برنامه در Terminal نمایش داده میشود:
پیغامهای خطا از
Redirection با
خروجی
اگر فایل وجود داشته باشد، محتوای قبلی جایگزین میشود.
محتوای جدید به انتهای فایل اضافه میشود.
یعنی محتوای
مثال:
تمام Spaceهای ورودی را به
شماره
خروجی خطا داخل
خطا را به انتهای فایل اضافه میکند.
شماره
معادل این است:
انتقال stdout و stderr همزمان
روش رایج:
یا در Bash:
یعنی خروجی عادی و خطا هر دو داخل یک فایل میروند.
اضافه کردن stdout و stderr به یک فایل
اینجا:
ترتیب مهم است.
یعنی:
مثلاً:
هم خروجی معمولی و هم خطا داخل
روش کوتاهتر:
هر دو مورد را Redirect میکند:
یک فایل ویژه است که هر چیزی داخل آن Redirect شود، دور ریخته میشود.
فقط خروجی عادی حذف میشود.
برای حذف خطا:
برای حذف هر دو:
این مورد در مدیریت سرور و اسکریپتنویسی خیلی مهم است.
=============================
قسمت شانزدهم — pipe 🐧
————————
قسمت شانزدهم — Pipe 🐧
Pipe (
ساختار:
یعنی:
مثالهای ساده
نمایش فایلها و جستجوی یک مورد:
نمایش پردازشهای مربوط به SSH:
شمارش تعداد فایلها:
نمایش کاربران دارای Shell خاص:
چند Pipe پشت سر هم
میتوانیم چند دستور را به هم متصل کنیم:
اینجا:
یعنی ابتدا فایل خوانده میشود، سپس خطوط موردنظر پیدا میشوند و در نهایت فقط Field اول نمایش داده میشود.
Pipe با
خروجی
تفاوت Pipe و Redirection
خروجی را به فایل میفرستد.
خروجی دستور اول را به ورودی دستور دوم میدهد.
نکته مهم
Pipe معمولاً روی stdout کار میکند؛ یعنی خروجی استاندارد را به stdin دستور بعدی منتقل میکند.
مثال کاربردی LPIC:
خروجی هر مرحله وارد مرحله بعدی میشود.
================
قسمت هفدهم — sed 🐧
————
جایگزینی متن
اولین
جایگزینی همه موارد در هر خط
جایگزینی و ذخیره تغییرات در فایل
حذف یک خط
مثلاً حذف خط سوم:
حذف چند خط
خطوط ۲ تا ۵ را حذف میکند.
نمایش یک خط خاص
فقط خط پنجم را نمایش میدهد.
نمایش محدودهای از خطوط
خطوط ۲ تا ۵ را نمایش میدهد.
اضافه کردن متن
قبل از خط سوم:
بعد از خط سوم:
مثال جذاب 🔥
فرض کنید فایل این باشد:
با:
تبدیل میشود به:
خلاصه دستورات مهم
نکته LPIC: یکی از مهمترین کاربردهای
================
stdin — ورودی استانداردمعمولاً ورودی از Keyboard گرفته میشود.
cat
هر چیزی تایپ کنید،
cat دریافت و نمایش میدهد. برای پایان:Ctrl + D
stdout — خروجی استانداردخروجی عادی برنامه در Terminal نمایش داده میشود:
ls
stderr — خطای استانداردپیغامهای خطا از
stderr خارج میشوند:ls /abc
Redirection با
>خروجی
stdout را داخل فایل میفرستد.echo "hello" > test.txt
اگر فایل وجود داشته باشد، محتوای قبلی جایگزین میشود.
>> — اضافه کردن به فایلecho "hello" >> test.txt
محتوای جدید به انتهای فایل اضافه میشود.
< — گرفتن ورودی از فایلcat < test.txt
یعنی محتوای
test.txt بهعنوان stdin وارد cat میشود.مثال:
tr " " ":" < no
تمام Spaceهای ورودی را به
: تبدیل میکند.2> — انتقال خطاشماره
stderr برابر 2 است:ls /abc 2> error.txt
خروجی خطا داخل
error.txt ذخیره میشود.2>> — اضافه کردن خطاls /abc 2>> error.txt
خطا را به انتهای فایل اضافه میکند.
1> — انتقال stdoutشماره
stdout برابر 1 است:ls 1> output.txt
معادل این است:
ls > output.txt
انتقال stdout و stderr همزمان
روش رایج:
command > output.txt 2> error.txt
یا در Bash:
command &> all.txt
یعنی خروجی عادی و خطا هر دو داخل یک فایل میروند.
اضافه کردن stdout و stderr به یک فایل
command >> all.txt 2>&1
اینجا:
stdout → all.txt
stderr → stdout → all.txt
ترتیب مهم است.
2>&1 چیست؟یعنی:
stderrرا به همان جایی بفرست که
stdoutمیرود.
مثلاً:
command > output.txt 2>&1
هم خروجی معمولی و هم خطا داخل
output.txt ذخیره میشوند.&> در Bashروش کوتاهتر:
command &> output.txt
هر دو مورد را Redirect میکند:
stdout + stderr → output.txt
/dev/nullیک فایل ویژه است که هر چیزی داخل آن Redirect شود، دور ریخته میشود.
command > /dev/null
فقط خروجی عادی حذف میشود.
برای حذف خطا:
command 2> /dev/null
برای حذف هر دو:
command &> /dev/null
این مورد در مدیریت سرور و اسکریپتنویسی خیلی مهم است.
=============================
قسمت شانزدهم — pipe 🐧
————————
قسمت شانزدهم — Pipe 🐧
Pipe (
|) برای انتقال خروجی یک دستور بهعنوان ورودی دستور بعدی استفاده میشود.ساختار:
command1 | command2
یعنی:
command1 → stdout → | → stdin → command2
مثالهای ساده
نمایش فایلها و جستجوی یک مورد:
ls | grep "test"
نمایش پردازشهای مربوط به SSH:
ps aux | grep ssh
شمارش تعداد فایلها:
ls | wc -l
نمایش کاربران دارای Shell خاص:
cat /etc/passwd | grep "/bin/bash"
چند Pipe پشت سر هم
میتوانیم چند دستور را به هم متصل کنیم:
cat /etc/passwd | grep "/bin/bash" | cut -d ":" -f 1
اینجا:
cat
↓
grep
↓
cut
یعنی ابتدا فایل خوانده میشود، سپس خطوط موردنظر پیدا میشوند و در نهایت فقط Field اول نمایش داده میشود.
Pipe با
> ترکیب میشودps aux | grep ssh > ssh.txt
خروجی
grep داخل فایل ssh.txt ذخیره میشود.تفاوت Pipe و Redirection
command > file
خروجی را به فایل میفرستد.
command1 | command2
خروجی دستور اول را به ورودی دستور دوم میدهد.
نکته مهم
Pipe معمولاً روی stdout کار میکند؛ یعنی خروجی استاندارد را به stdin دستور بعدی منتقل میکند.
stdin → 0
stdout → 1
stderr → 2
مثال کاربردی LPIC:
cat /etc/passwd | grep root | cut -d ":" -f 1
خروجی هر مرحله وارد مرحله بعدی میشود.
================
قسمت هفدهم — sed 🐧
————
sed (Stream Editor) برای جستجو، حذف، جایگزینی و ویرایش متن در فایلها استفاده میشود؛ بدون اینکه لازم باشد فایل را با Editor باز کنیم.جایگزینی متن
sed 's/unix/linux/' file.txt
اولین
unix در هر خط را به linux تبدیل میکند.جایگزینی همه موارد در هر خط
sed 's/unix/linux/g' file.txt
g یعنی همه موارد.جایگزینی و ذخیره تغییرات در فایل
sed -i 's/unix/linux/g' file.txt
-i یعنی تغییرات مستقیماً داخل فایل اعمال شود.حذف یک خط
مثلاً حذف خط سوم:
sed '3d' file.txt
حذف چند خط
sed '2,5d' file.txt
خطوط ۲ تا ۵ را حذف میکند.
نمایش یک خط خاص
sed -n '5p' file.txt
فقط خط پنجم را نمایش میدهد.
نمایش محدودهای از خطوط
sed -n '2,5p' file.txt
خطوط ۲ تا ۵ را نمایش میدهد.
اضافه کردن متن
قبل از خط سوم:
sed '3i\Hello' file.txt
بعد از خط سوم:
sed '3a\Hello' file.txt
مثال جذاب 🔥
فرض کنید فایل این باشد:
unix is great
unix is free
unix is powerful
با:
sed -i 's/unix/Linux/g' file.txt
تبدیل میشود به:
Linux is great
Linux is free
Linux is powerful
خلاصه دستورات مهم
s → جایگزینی
g → همه موارد
-i → اعمال تغییر روی فایل
d → حذف
p → نمایش
-n → جلوگیری از نمایش خودکار
i → اضافه کردن قبل از خط
a → اضافه کردن بعد از خط
نکته LPIC: یکی از مهمترین کاربردهای
sed، ویرایش سریع فایلهای کانفیگ و استفاده در Shell Script است.================
👏1
قسمت هیجدهم - کار با xargs
—————————
ساختار کلی:
دستورات و Optionهای مهم
هر بار ۲ Argument به
یعنی حداکثر ۴ کار همزمان اجرا میشوند.
🔥 مثال مهم: حذف هزاران فایل
یا اگر میخواهی با هر فایل جداگانه اجرا شود:
ترکیبهای خیلی کاربردی
تعداد خطوط فایلهای TXT.
فشردهسازی موازی با ۴ Process.
خلاصه برای حفظ کردن
مهمترین ترکیب LPIC:
—————————
xargs خروجی یک دستور را میگیرد و بهعنوان Argument به دستور دیگری میدهد.ساختار کلی:
command | xargs [options] command
دستورات و Optionهای مهم
xargs-n → تعداد Argument در هر اجرا:echo "1 2 3 4 5" | xargs -n 2 echo
هر بار ۲ Argument به
echo میدهد.-I → مشخص کردن محل قرارگیری Argument:echo "ali reza" | xargs -n 1 -I {} echo "Hello {}"{} با مقدار ورودی جایگزین میشود.-d → مشخص کردن جداکننده:echo "ali:reza:amir" | xargs -d ":" echo
-0 → دریافت ورودی با Null Separator؛ معمولاً همراه find -print0 برای نام فایلهای دارای فاصله:find . -type f -print0 | xargs -0 ls
-a → خواندن ورودی از فایل:xargs -a users.txt echo
-r → اگر ورودی خالی بود، دستور را اجرا نکن:cat empty.txt | xargs -r echo
-t → قبل از اجرا، دستور ساختهشده را نمایش بده:echo "file1 file2" | xargs -t rm
-p → قبل از اجرای هر دستور تأیید میگیرد:echo "file1 file2" | xargs -p rm
-L → تعداد خطوط ورودی در هر اجرا:printf "ali\nreza\namir\n" | xargs -L 1 echo
-P → اجرای موازی چند Process:cat urls.txt | xargs -n 1 -P 4 ping -c 1
یعنی حداکثر ۴ کار همزمان اجرا میشوند.
-s → حداکثر اندازه Command ساختهشده:echo "1 2 3" | xargs -s 20 echo
-E → مشخص کردن رشته پایان ورودی:echo "1 2 STOP 3 4" | xargs -E STOP echo
🔥 مثال مهم: حذف هزاران فایل
find /tmp -type f -name "*.log" -print0 | xargs -0 rm
یا اگر میخواهی با هر فایل جداگانه اجرا شود:
find /tmp -type f -name "*.log" -print0 | xargs -0 -n 1 rm
ترکیبهای خیلی کاربردی
find . -type f -name "*.txt" -print0 | xargs -0 wc -l
تعداد خطوط فایلهای TXT.
find . -type f -name "*.log" -print0 | xargs -0 -P 4 gzip
فشردهسازی موازی با ۴ Process.
خلاصه برای حفظ کردن
-n تعداد Argument در هر اجرا
-I جایگزین کردن Argument
-d تعیین جداکننده
-0 ورودی Null-separated
-a خواندن از فایل
-r اجرا نکردن در ورودی خالی
-t نمایش دستور قبل از اجرا
-p تأیید قبل از اجرا
-L تعداد خطوط در هر اجرا
-P اجرای موازی
-s محدودیت اندازه Command
-E تعیین پایان ورودی
مهمترین ترکیب LPIC:
find + xargs -0 مخصوصاً برای کار با تعداد زیادی فایل و نام فایلهای دارای فاصله بسیار کاربردی است.👏1
تا رو فعلاً حفظ کن:
1️⃣
مثال:
================
2️⃣
یعنی:
خروجی دستور اول → ورودی دستور دوم
حتی میتوانی چندتا را زنجیره کنی:
================
3️⃣
تغییر اولین مورد در هر خط.
تغییر همه موارد.
تغییر مستقیم داخل فایل.
حذف خط:
نمایش خط:
پس:
===================
4️⃣
مثال:
یعنی:
برای تعداد زیاد فایل:
روش امنتر برای اسم فایلهای دارای فاصله:
چند Option مهم:
🔥 خلاصه نهایی
اگر همین چهار مفهوم را خوب یاد بگیری، بخش بزرگی از کار با Shell و Linux برات خیلی راحتتر میشه.
1️⃣
Redirection — انتقال خروجی و ورودی> خروجی → فایل (جایگزین)
>> خروجی → فایل (اضافه)
< ورودی ← فایل
2> خطا → فایل
2>> خطا → فایل (اضافه)
مثال:
ls > list.txt
echo hello >> list.txt
cat < list.txt
ls /abc 2> error.txt
================
2️⃣
Pipe | — اتصال دستوراتcommand1 | command2
یعنی:
خروجی دستور اول → ورودی دستور دوم
ls | grep txt
ps aux | grep ssh
cat /etc/passwd | grep root
حتی میتوانی چندتا را زنجیره کنی:
cat /etc/passwd | grep bash | cut -d ":" -f 1
================
3️⃣
sed — تغییر متن ✏️sed 's/old/new/' file
تغییر اولین مورد در هر خط.
sed 's/old/new/g' file
تغییر همه موارد.
sed -i 's/old/new/g' file
تغییر مستقیم داخل فایل.
حذف خط:
sed '3d' file
نمایش خط:
sed -n '3p' file
پس:
sed = جستجو + تغییر + حذف + نمایش متن===================
4️⃣
xargs — دادن خروجی به دستور بعدی 📦command1 | xargs command2
مثال:
echo "a.txt b.txt" | xargs rm
یعنی:
a.txt b.txt
↓
xargs
↓
rm
برای تعداد زیاد فایل:
find . -name "*.log" | xargs rm
روش امنتر برای اسم فایلهای دارای فاصله:
find . -name "*.log" -print0 | xargs -0 rm
چند Option مهم:
-n → تعداد ورودی در هر اجرا
-I → مشخص کردن جای ورودی
-0 → ورودی امن با Null
-P → اجرای موازی
-r → اگر ورودی خالی بود اجرا نکن
🔥 خلاصه نهایی
> خروجی → فایل
| خروجی → دستور بعدی
sed ویرایش متن
xargs خروجی → Argument دستور
اگر همین چهار مفهوم را خوب یاد بگیری، بخش بزرگی از کار با Shell و Linux برات خیلی راحتتر میشه.
👏1
tr — تبدیل یا حذف کاراکترها 🔄tr برای جایگزینی، تبدیل و حذف کاراکترها استفاده میشه.تبدیل Space به
::echo "ali reza" | tr " " ":"
خروجی:
ali:reza
تبدیل حروف کوچک به بزرگ:
echo "hello" | tr 'a-z' 'A-Z'
خروجی:
HELLO
حذف یک کاراکتر:
echo "hello123" | tr -d '0-9'
خروجی:
hello
حذف Space:
echo "ali reza" | tr -d ' '
مثال با فایل:
tr " " ":" < file.txt
🧠 مهمترینها:
tr "a" "b" → جایگزینی
tr 'a-z' 'A-Z' → تبدیل حروف کوچک به بزرگ
tr -d "x" → حذف کاراکتر
==============================
tee — نمایش + ذخیره همزمان 📺tee خروجی را هم روی صفحه نشان میدهد و هم داخل فایل مینویسد.echo "hello" | tee test.txt
هم
hello را میبینی، هم داخل test.txt ذخیره میشود.اضافه کردن به انتهای فایل:
echo "hello" | tee -a test.txt
مثال:
ls | tee list.txt
خروجی
ls هم نمایش داده میشود و هم داخل list.txt ذخیره میشود.🧠 خلاصه:
tr → تبدیل / جایگزینی / حذف کاراکتر
tee → نمایش خروجی + ذخیره در فایل
مثلاً این ترکیب خیلی خوبه:
cat file.txt | tr 'a-z' 'A-Z' | tee result.txt
یعنی:
فایل → تبدیل حروف به بزرگ → نمایش روی صفحه → ذخیره در
result.txt.👏1
شروع فصل دوم
================
قسمت نوزده - مقدمه
———————-
در این فصل ما نصب برنامه ها رو یاد میگیریم
مخصوصا zabbix و mux
==================
قسمت بیست - مفاهیم نصب
———-
1️⃣ دستهبندی توزیعها
دو خانواده مهم:
2️⃣ نصب Online و Offline
3️⃣ Repository (مخزن)
جایی که Packageها و اطلاعات مربوط به آنها نگهداری میشوند.
مثلاً در Debian:
4️⃣ Source Code
کد اصلی برنامه که انسان میتواند آن را بخواند و در صورت نیاز Compile کند.
5️⃣ Binary
فایل قابل اجرای برنامه است که سیستم میتواند مستقیماً اجرا کند.
مثلاً:
🧠 خلاصه
نکته مهم: در لینوکس معمولاً نرمافزار را مستقیماً از سایتهای مختلف دانلود نمیکنیم؛ بهتر است از Package Manager و Repository معتبر توزیع استفاده کنیم.
==============
================
قسمت نوزده - مقدمه
———————-
در این فصل ما نصب برنامه ها رو یاد میگیریم
مخصوصا zabbix و mux
==================
قسمت بیست - مفاهیم نصب
———-
1️⃣ دستهبندی توزیعها
دو خانواده مهم:
Red Hat → AlmaLinux, Rocky, RHEL, Fedora
Debian → Debian, Ubuntu, Linux Mint
2️⃣ نصب Online و Offline
Online → دانلود Package از Repository
Offline → نصب Package موجود روی سیستم
3️⃣ Repository (مخزن)
جایی که Packageها و اطلاعات مربوط به آنها نگهداری میشوند.
مثلاً در Debian:
/etc/apt/sources.list
4️⃣ Source Code
کد اصلی برنامه که انسان میتواند آن را بخواند و در صورت نیاز Compile کند.
Source Code
↓
Compiler
↓
Binary
5️⃣ Binary
فایل قابل اجرای برنامه است که سیستم میتواند مستقیماً اجرا کند.
مثلاً:
/usr/bin/ls
🧠 خلاصه
Repository → محل دریافت Package
Package → بسته نرمافزاری
Source Code → کد اصلی برنامه
Binary → فایل قابل اجرای برنامه
Online → دریافت از اینترنت
Offline → نصب از فایل موجود
نکته مهم: در لینوکس معمولاً نرمافزار را مستقیماً از سایتهای مختلف دانلود نمیکنیم؛ بهتر است از Package Manager و Repository معتبر توزیع استفاده کنیم.
==============
👏1
قسمت بیستویک — نصب نرمافزار از Source 🐧
————————————
1️⃣ تشخیص سیستمعامل
اطلاعات توزیع، نسخه و نام سیستمعامل را نمایش میدهد.
2️⃣ نصب ابزارهای لازم
نصب
ابزارهای لازم برای Compile کردن Source Code را نصب میکند.
مثلاً
برای
3️⃣ دریافت Source Code
یک Repository را از Git دریافت میکند.
مثلاً:
4️⃣ آمادهسازی و نصب از Source
معمولاً روند کلی:
در پروژههایی مثل tmux ممکن است ابتدا نیاز باشد:
سپس:
5️⃣جستجوی Package با
برای جستجوی Packageهای مرتبط با
برای دیدن اطلاعات یک Package:
و برای نصب:
🧠 خلاصه
نکته: نصب با
==========================
قسمت بیست و دو — rpm and deb 🐧
————————
دو فرمت اصلی Package در لینوکس:
ساختار کلی:
مثلاً:
دانلود Package بدون نصب
در AlmaLinux / Red Hat:
فایل
برای Debian معمولاً:
فایل
نصب RPM
یا روش پیشنهادی:
نصب DEB
یا:
یک Login Shell با دسترسی Root باز میکند.
یعنی بعد از اجرای آن:
خروجی:
تفاوت مهم:
برای خروج:
🧠 خلاصه:
==================
————————————
tmux چیست؟tmux یک Terminal Multiplexer است؛ اجازه میدهد چند Session و Terminal را داخل یک اتصال SSH مدیریت کنیم و اگر SSH قطع شد، برنامهها همچنان اجرا بمانند.⚠️ برای تمرین بهتره روی VM تستی نصب کنید، نه سرور اصلی.
1️⃣ تشخیص سیستمعامل
cat /etc/os-release
اطلاعات توزیع، نسخه و نام سیستمعامل را نمایش میدهد.
2️⃣ نصب ابزارهای لازم
dnf install git
نصب
git.dnf groupinstall "Development Tools"
ابزارهای لازم برای Compile کردن Source Code را نصب میکند.
مثلاً
gcc، make و ابزارهای توسعه.برای
automake:dnf install automake
3️⃣ دریافت Source Code
git clone URL
یک Repository را از Git دریافت میکند.
مثلاً:
git clone https://github.com/tmux/tmux.git
cd tmux
4️⃣ آمادهسازی و نصب از Source
معمولاً روند کلی:
Source Code
↓
Configure
↓
make
↓
make install
در پروژههایی مثل tmux ممکن است ابتدا نیاز باشد:
sh autogen.sh
سپس:
./configure
make
sudo make install
configure → بررسی سیستم و ساخت تنظیمات نصبmake → Source Code را Compile میکندmake install → فایلهای ساختهشده را نصب میکند5️⃣جستجوی Package با
dnfdnf search tmux
برای جستجوی Packageهای مرتبط با
tmux در Repositoryهاست.برای دیدن اطلاعات یک Package:
dnf info tmux
و برای نصب:
dnf install tmux
🧠 خلاصه
cat /etc/os-release → تشخیص سیستمعامل
git clone → دریافت Source
dnf search → جستجوی Package
./configure → آمادهسازی
make → Compile
make install → نصب
نکته: نصب با
dnf install tmux با نصب از Source فرق دارد؛ در حالت اول Package Manager نسخه آماده را از Repository نصب میکند، اما در حالت دوم خودت Source Code را Compile میکنی.==========================
قسمت بیست و دو — rpm and deb 🐧
————————
دو فرمت اصلی Package در لینوکس:
Red Hat → .rpm
Debian → .deb
ساختار کلی:
package-name-version-release.architecture.rpm
package-name-version-release.architecture.deb
مثلاً:
tmux-3.x.x-1.x86_64.rpm
دانلود Package بدون نصب
در AlmaLinux / Red Hat:
dnf download tmux
فایل
.rpm مربوط به سیستم را دانلود میکند و نصبش نمیکند.برای Debian معمولاً:
apt download tmux
فایل
.deb را دانلود میکند.نصب RPM
rpm -ivh package.rpm
یا روش پیشنهادی:
dnf install ./package.rpm
نصب DEB
dpkg -i package.deb
یا:
apt install ./package.deb
sudo -i چیست؟ 👑sudo -i
یک Login Shell با دسترسی Root باز میکند.
یعنی بعد از اجرای آن:
whoami
خروجی:
root
تفاوت مهم:
sudo command → فقط همان دستور با دسترسی root
sudo -i → وارد محیط root میشوی
برای خروج:
exit
🧠 خلاصه:
.rpm → Red Hat / AlmaLinux
.deb → Debian / Ubuntu
rpm → مدیریت مستقیم RPM
dpkg → مدیریت مستقیم DEB
dnf → Package Manager در AlmaLinux
apt → Package Manager در Debian/Ubuntu
sudo -i → ورود به Shell با دسترسی root
==================
👏1
قسمت بیست و سه — install debian 🐧
————————————————
اول مخازن را بهروز میکنیم:
نصب Package:
نصب بدون پرسش:
حذف:
حذف کامل همراه Configuration:
آپدیت Packageها:
جستجوی Package:
اطلاعات Package:
لیست Packageهای نصبشده:
——————————
2️⃣ نصب بدون Repository با
اگر فایل
اگر Dependency کم بود:
حذف Package:
حذف کامل:
بررسی نصب بودن:
جستجو بین Packageهای نصبشده:
نمایش اطلاعات:
نمایش فایلهایی که یک Package نصب کرده:
بررسی اینکه یک فایل متعلق به کدام Package است:
——————-
3️⃣
برای ورود به حساب کاربر دیگر با محیط Login کامل است.
برای ورود به Root:
یا کوتاهتر:
بعد رمز Root را میخواهد.
بررسی:
خروج:
تفاوت:
——————————
4️⃣ اگر
یکی از علتهای رایج در Debian این است که Repository مربوط به DVD/ISO فعال باشد.
فایل مخازن:
اگر خطی شبیه این دیدی:
آن را Comment کن:
یعنی
بعد:
————————-
🧠 خلاصه:
نکته: در Debian امروزی معمولاً تنظیمات Repositoryها ممکن است علاوه بر
————————————————
اول مخازن را بهروز میکنیم:
apt update
نصب Package:
apt install tmux
نصب بدون پرسش:
apt install -y tmux
حذف:
apt remove tmux
حذف کامل همراه Configuration:
apt purge tmux
آپدیت Packageها:
apt upgrade
جستجوی Package:
apt search tmux
اطلاعات Package:
apt show tmux
لیست Packageهای نصبشده:
apt list --installed
——————————
2️⃣ نصب بدون Repository با
dpkgاگر فایل
.deb داشته باشیم:dpkg -i package.deb
اگر Dependency کم بود:
apt install -f
حذف Package:
dpkg -r tmux
حذف کامل:
dpkg -P tmux
بررسی نصب بودن:
dpkg -l tmux
جستجو بین Packageهای نصبشده:
dpkg -l | grep tmux
نمایش اطلاعات:
dpkg -s tmux
نمایش فایلهایی که یک Package نصب کرده:
dpkg -L tmux
بررسی اینکه یک فایل متعلق به کدام Package است:
dpkg -S /usr/bin/tmux
——————-
3️⃣
su -l چیست؟ 👑su -l
برای ورود به حساب کاربر دیگر با محیط Login کامل است.
برای ورود به Root:
su -l
یا کوتاهتر:
su -
بعد رمز Root را میخواهد.
بررسی:
whoami
خروج:
exit
تفاوت:
su -l → ورود به Root با محیط Login
sudo -i → ورود به Root با sudo
——————————
4️⃣ اگر
apt update خطا دادیکی از علتهای رایج در Debian این است که Repository مربوط به DVD/ISO فعال باشد.
فایل مخازن:
nano /etc/apt/sources.list
اگر خطی شبیه این دیدی:
deb cdrom:[Debian ...]
آن را Comment کن:
# deb cdrom:[Debian ...]
یعنی
# اول خط بگذار.بعد:
apt update
————————-
🧠 خلاصه:
apt → مدیریت Package از Repository
dpkg → مدیریت مستقیم فایل .deb
apt update → بروزرسانی لیست مخازن
apt install → نصب
apt remove → حذف
apt purge → حذف کامل
dpkg -i → نصب .deb
dpkg -r → حذف
dpkg -l → لیست/وضعیت Package
dpkg -L → فایلهای Package
su -l → ورود به کاربر با Login کامل
نکته: در Debian امروزی معمولاً تنظیمات Repositoryها ممکن است علاوه بر
/etc/apt/sources.list در فایلهای داخل /etc/apt/sources.list.d/ هم باشند.👏1
قسمت بیست و چهار — install redhat 🐧
———————
حالا همین مباحث قسمت قبل را در AlmaLinux / Red Hat انجام میدهیم.
1️⃣ نصب از Repository با
آپدیت مخازن:
نصب:
حذف:
جستجو:
اطلاعات Package:
آپدیت Packageها:
لیست Packageهای نصبشده:
———————————-
2️⃣ مدیریت مستقیم RPM با
نصب فایل
آپدیت:
حذف:
بررسی نصب بودن:
نمایش اطلاعات:
نمایش فایلهای نصبشده توسط Package:
پیدا کردن اینکه یک فایل متعلق به کدام Package است:
نمایش Packageهای نصبشده:
————————-
🧠 تفاوت مهم
مثلاً:
از Repository نصب میکند.
اما:
مستقیماً فایل RPM را نصب میکند.
مقایسه با Debian
نکته مهم LPIC: در Red Hatهای جدید مثل AlmaLinux،
———————————
در AlmaLinux / Red Hat فایلهای Repository معمولاً اینجا هستند:
دیدن Repositoryها
معمولاً فایلهایی با پسوند
برای ویرایش:
یا اگر فایل دیگری بود:
بعد از تغییر Repository:
🧠 حفظ کن:
اگر AlmaLinux 9 داری و
تا ببینی کدام Repository مشکل دارد.
———————
حالا همین مباحث قسمت قبل را در AlmaLinux / Red Hat انجام میدهیم.
1️⃣ نصب از Repository با
dnfآپدیت مخازن:
dnf check-update
نصب:
dnf install tmux
حذف:
dnf remove tmux
جستجو:
dnf search tmux
اطلاعات Package:
dnf info tmux
آپدیت Packageها:
dnf update
لیست Packageهای نصبشده:
dnf list installed
———————————-
2️⃣ مدیریت مستقیم RPM با
rpmنصب فایل
.rpm:rpm -ivh package.rpm
آپدیت:
rpm -Uvh package.rpm
حذف:
rpm -e package-name
بررسی نصب بودن:
rpm -q tmux
نمایش اطلاعات:
rpm -qi tmux
نمایش فایلهای نصبشده توسط Package:
rpm -ql tmux
پیدا کردن اینکه یک فایل متعلق به کدام Package است:
rpm -qf /usr/bin/tmux
نمایش Packageهای نصبشده:
rpm -qa
————————-
🧠 تفاوت مهم
Red Hat / AlmaLinux
dnf → مدیریت Package و Dependency از Repository
rpm → مدیریت مستقیم فایلهای .rpm
مثلاً:
dnf install tmux
از Repository نصب میکند.
اما:
rpm -ivh tmux.rpm
مستقیماً فایل RPM را نصب میکند.
مقایسه با Debian
Debian Red Hat
apt install dnf install
dpkg -i rpm -ivh
apt remove dnf remove
apt search dnf search
dpkg -l rpm -qa
dpkg -L rpm -ql
dpkg -S rpm -qf
نکته مهم LPIC: در Red Hatهای جدید مثل AlmaLinux،
dnf ابزار اصلی مدیریت Package است؛ yum در بسیاری از سیستمها به dnf اشاره میکند.———————————
در AlmaLinux / Red Hat فایلهای Repository معمولاً اینجا هستند:
/etc/yum.repos.d/
دیدن Repositoryها
ls /etc/yum.repos.d/
معمولاً فایلهایی با پسوند
.repo میبینی.برای ویرایش:
nano /etc/yum.repos.d/almalinux.repo
یا اگر فایل دیگری بود:
nano /etc/yum.repos.d/اسم-فایل.repo
بعد از تغییر Repository:
dnf clean all
dnf makecache
dnf update
🧠 حفظ کن:
Debian:
/etc/apt/sources.list
/etc/apt/sources.list.d/
Red Hat:
/etc/yum.repos.d/*.repo
اگر AlmaLinux 9 داری و
dnf خطای Repository میدهد، اول این را بزن:dnf repolist
تا ببینی کدام Repository مشکل دارد.
👏1
قسمت بیست و پنج - snap and app image
——————————-
گاهی نرمافزار در Repository رسمی توزیع وجود ندارد؛ چند روش دیگر داریم:
1️⃣ Repository خود پروژه
بعضی پروژهها Repository اختصاصی دارند.
مزیتش این است که معمولاً نسخه جدیدتر نرمافزار را دریافت میکنیم.
———————
2️⃣ نصب از Source Code
کد برنامه را دریافت و خودمان Compile میکنیم:
———————-
3️⃣
برنامهها بهصورت Snap Package نصب میشوند و وابستگیهای موردنیازشان را تا حد زیادی همراه خود دارند.
نصب:
دیدن Packageها:
حذف:
————————
4️⃣ ابزارهای مشابه Snap
سیستمهای دیگری هم برای نصب نرمافزار وجود دارند، مثل:
مثلاً Flatpak:
————————
5️⃣ AppImage چیست؟
مثلاً:
یعنی:
🧠 خلاصه
نکته:
======================
——————————-
گاهی نرمافزار در Repository رسمی توزیع وجود ندارد؛ چند روش دیگر داریم:
1️⃣ Repository خود پروژه
بعضی پروژهها Repository اختصاصی دارند.
Repository رسمی Linux
↓
Repository خود پروژه
↓
نصب Package
مزیتش این است که معمولاً نسخه جدیدتر نرمافزار را دریافت میکنیم.
———————
2️⃣ نصب از Source Code
کد برنامه را دریافت و خودمان Compile میکنیم:
Source Code
↓
configure
↓
make
↓
make install
———————-
3️⃣
Snap چیست؟Snap یک سیستم Package Management است که توسط Canonical ساخته شده.برنامهها بهصورت Snap Package نصب میشوند و وابستگیهای موردنیازشان را تا حد زیادی همراه خود دارند.
نصب:
snap install tmux
دیدن Packageها:
snap list
حذف:
snap remove tmux
————————
4️⃣ ابزارهای مشابه Snap
سیستمهای دیگری هم برای نصب نرمافزار وجود دارند، مثل:
Snap
Flatpak
AppImage
مثلاً Flatpak:
flatpak install flathub org.gimp.GIMP
————————
5️⃣ AppImage چیست؟
AppImage یک روش اجرای نرمافزار است که معمولاً بدون نصب سنتی Package اجرا میشود.مثلاً:
chmod +x program.AppImage
./program.AppImage
یعنی:
AppImage
↓
Executable File
↓
اجرا
🧠 خلاصه
Repository → نصب از مخزن
Source Code → دریافت کد و Compile
Snap → Package مستقل
Flatpak → Package مستقل
AppImage → فایل اجرایی قابل حمل
نکته:
Snap و Flatpak بیشتر روی محیطهای Desktop دیده میشوند، ولی در بعضی سرورها هم قابل استفادهاند. برای سرورهای Linux معمولاً اولویت با Package Manager رسمی مثل dnf و apt است.======================
👏1