🐧کانال لینوکس زون | برای عاشقان لینوکس و دنیای نرم افزار متن باز🗃
🚀 چی قراره یاد بگیریم؟
💡 هر روز یه قدم به حرفهایتر شدن نزدیکتر شو
🎯 | Channel: @LinuxZone
💬 | Group: @LinuxZoneGap
⚡️ بزن بریم دنیای لینوکس رو کشف کنیم 🐧🚀
🚀 چی قراره یاد بگیریم؟
🛠 دستورات، ترفندها و آموزشهای حرفهای لینوکس
⚡️ بهینهسازی و مدیریت سرورهای لینوکسی
📦 معرفی ابزارها و تکنولوژیهای متنباز
🔐 امنیت، شبکه و مفاهیم کلیدی لینوکسی
💎 اشتراک تجربهها و چالشهای واقعی دنیای لینوکس
📢 جدیدترین اخبار دنیای نرم افزار آزاد
💡 هر روز یه قدم به حرفهایتر شدن نزدیکتر شو
🎯 | Channel: @LinuxZone
💬 | Group: @LinuxZoneGap
⚡️ بزن بریم دنیای لینوکس رو کشف کنیم 🐧🚀
❤3🔥1
🟢 کدوم دسکتاپ لینوکس بهترین انتخاب برای شماست؟🤔💻
وقتی به محیط دسکتاپ لینوکس فکر میکنید، شاید به اولین چیزی که توجه کنید، طراحی و راحتی کار با اون باشه. اما کدوم دسکتاپ برای نیازهای شما بهتره؟
🚀 هر دسکتاپ چه ویژگی هایی داره؟
GNOME:🏗️✨
ساده، مینیمالیستی و کاربردی برای کسایی که به سادگی و سرعت اهمیت میدن. یکی از بزرگترین خوبی هاش اینه که به شدت با محیط های مختلف سازگاره. ولی شاید برای کسایی که به شخصیسازی علاقه دارن، محدودیتهایی داشته باشه.
یه دسکتاپ که قابلیت های شخصی سازی فوق العاده ای داره، میتونه دقیقا به همون چیزی تبدیل بشه که شما میخواین. اگر سختافزار قدرتمند دارید، این دسکتاپ میتونه تجربه فوقالعادهای به شما بده، اما اگر سیستم ضعیف دارید، ممکنه کمی سنگین به نظر بیاد.
اگر سیستم شما سختافزار ضعیفی داره، Xfce یکی از بهترین گزینههاست. خیلی سبک و سریع عمل میکنه، اما ممکنه از نظر زیبایی و ویژگیها کمی ساده باشه.
برای افرادی که از محیطهای دسکتاپ ویندوزی لذت میبرند، Cinnamon انتخاب خوبی میتونه باشه. طراحی و رابط کاربری مشابه ویندوز داره، اما بیشتر ویژگیهای لینوکس رو با خودش داره.
🔍 حالا کدومشون بهتره؟
انتخاب دسکتاپ لینوکس بستگی به نیازهای شما داره. اگر به سادگی و سرعت نیاز دارید، GNOME عالیه. اگر به دنبال شخصیسازی بیشتر هستید، KDE انتخاب بهتریه. اما اگر سیستم شما ضعیفه، Xfce میتونه گزینه مناسبی باشه.
➖➖➖➖➖➖➖➖➖➖
وقتی به محیط دسکتاپ لینوکس فکر میکنید، شاید به اولین چیزی که توجه کنید، طراحی و راحتی کار با اون باشه. اما کدوم دسکتاپ برای نیازهای شما بهتره؟
🚀 هر دسکتاپ چه ویژگی هایی داره؟
GNOME:🏗️✨
ساده، مینیمالیستی و کاربردی برای کسایی که به سادگی و سرعت اهمیت میدن. یکی از بزرگترین خوبی هاش اینه که به شدت با محیط های مختلف سازگاره. ولی شاید برای کسایی که به شخصیسازی علاقه دارن، محدودیتهایی داشته باشه.
البته باگ ها و محدودیت هایی که این دسکتاپ داره میتونه تجربه کاربری رو بد کنه. مثلا ممکنه وقتی وای فای رو روشن میکنید بلوتوث هم خود به خود روشن بشه.KDE Plasma:💻🛠️
یه دسکتاپ که قابلیت های شخصی سازی فوق العاده ای داره، میتونه دقیقا به همون چیزی تبدیل بشه که شما میخواین. اگر سختافزار قدرتمند دارید، این دسکتاپ میتونه تجربه فوقالعادهای به شما بده، اما اگر سیستم ضعیف دارید، ممکنه کمی سنگین به نظر بیاد.
این دسکتاپ واقعا خوبه و ایراد جدی ای نمیشه ازش گرفت. اما بخاطر شلوغی تنظیمات ممکنه برای کاربرای تازه وارد گمی گیج کننده باشه.Xfce: 💻⚡
اگر سیستم شما سختافزار ضعیفی داره، Xfce یکی از بهترین گزینههاست. خیلی سبک و سریع عمل میکنه، اما ممکنه از نظر زیبایی و ویژگیها کمی ساده باشه.
این دسکتاپ سعی کرده برای سیستم های ضعیف هم عملکرد خوبی رو داشته باشه و همین باعث شده که شخصی سازیش یکمی سخت بنظر برسه و آپشن های کمتری نسبت به دسکتاپ هایی مثل پلاسما در اختیار کاربرا قرار بده.Cinnamon:💻🍀
برای افرادی که از محیطهای دسکتاپ ویندوزی لذت میبرند، Cinnamon انتخاب خوبی میتونه باشه. طراحی و رابط کاربری مشابه ویندوز داره، اما بیشتر ویژگیهای لینوکس رو با خودش داره.
از ایراد های این دسکتاپ میشه به مشکلات مصرف باتری توی یه سری شرایط خاص اشاره کرد.
🔍 حالا کدومشون بهتره؟
انتخاب دسکتاپ لینوکس بستگی به نیازهای شما داره. اگر به سادگی و سرعت نیاز دارید، GNOME عالیه. اگر به دنبال شخصیسازی بیشتر هستید، KDE انتخاب بهتریه. اما اگر سیستم شما ضعیفه، Xfce میتونه گزینه مناسبی باشه.
#gnome #linux #xfce
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍13⚡1🆒1
چرا میگن بگیم "گنو/لینوکس" و نگیم "لینوکس"؟
با یه پست جدید در خدمتتونیم 😊
یکی از صحبتهایی که همیشه بین حرفهای و تازهکارا شکل میگیره اینه که نباید بگیم
لینوکس بلکه باید بگیم گنو/لینوکس.
خب چرا؟
بیاید برگردیم به 1983، زمانی که گنو (GNU) به عنوان یه پروژه اوپن سورس توسط ریچارد استالمن ایجاد شد. هدف اصلیشونم ساخت سیستم عاملی بود که سورس کد مشخص داشته باشه همچنین متن باز، آزاد، سریع و ایمنی باشه.
پروژه گنو شروع کرد به ساختن بخشهای مختلف سیستم عامل، و خیلی از ابزارها و چیزای مهمی که هنوز بسیار بسیار مهم هستن، مثلا GCC، Bash، emacs، coreutils
اینایی که گفتیم چنتا نمونه از چیزایی بودن که پروژه گنو ساخت.
مثلا coreutils کامندها و دستورات بیسیکی کار با فایلها رو شامل میشه. کامند ls و cp و rm و ... از همین coreutils هستن.
خلاصه که خیلی چیزا ساختن، ولی همچنان یه مشکلی بود...
کرنل که عملا هسته سیستم عامل بود رو نداشتن و کرنلهای موجود رو هم استفاده نکردن به دلایل دیگه.
میرسیم به 1991، یه دانشجوی فنلاندی به اسم لینوس توروالدز میاد و یه کرنل میسازه و توجه پروژه گنو جمع میشه به این کرنل، یه کرنل اوپن سورس و رایگان که همین قضیه هم باعث میشه جای خالی کرنل توسظ لینوکس پر بشه.
وایسا ببینم، مگه لینوکس سیستم عامل نبود؟
خب باید بگم نه :)))
لینوکس در اصل یه کرنله.
در نهایت ابزارهای گنو و کرنل لینوکس ترکیب میشن و گنو/لینوکس متولد میشه.
با ترکیب این دوتا، اولین توزیع گنو/لینوکسی به وجود میاد تو سال 1993 و اسمشم میشه Slackware
احتمالا خیلیا نمیشناسنش ولی یه نام آشنا در همین زمان به وجود میاد که قطعا میدونم میشناسید :)
و دبیان متولد میشه 😄
پس اگر بگیم لینوکس، عملا داریم بخش عظیمی از سیستم عامل رو که گنو تشکیل میده رو زیر سوال میبریم و بیخیال زحماتش میشیم.
یه سوال دیگه هم پیش میاد:
چرا گنو خودش کرنل ننوشت؟
در اصل گنو هم یه کرنل داره!!
یه میکرو کرنل به اسم Mach که فانکشنالیتیهای اصلی و هسته رو انجام میده و hurd هم در اصل چیزای high level تر رو انجام میده.
اما خب باید بگم که اگه پشت گوشتون رو دیدید کرنل کامل hurd رو هم خواهید دید 😁
حدود 30 ساله که داره توسعه پیدا میکنه و هنوزم بدرد استفاده نمیخوره و جای کار داره.
و این بود داستان توسعه لینوکس، گنو، و قضیه نامگذاری گنو/لینوکس که بهش پرداختیم.
امیدوارم روز و شب خوبی داشته باشید
با یه قلب خوشگل خوشحالمون کن 🫡❤️
➖➖➖➖➖➖➖➖➖➖
با یه پست جدید در خدمتتونیم 😊
یکی از صحبتهایی که همیشه بین حرفهای و تازهکارا شکل میگیره اینه که نباید بگیم
لینوکس بلکه باید بگیم گنو/لینوکس.
خب چرا؟
بیاید برگردیم به 1983، زمانی که گنو (GNU) به عنوان یه پروژه اوپن سورس توسط ریچارد استالمن ایجاد شد. هدف اصلیشونم ساخت سیستم عاملی بود که سورس کد مشخص داشته باشه همچنین متن باز، آزاد، سریع و ایمنی باشه.
پروژه گنو شروع کرد به ساختن بخشهای مختلف سیستم عامل، و خیلی از ابزارها و چیزای مهمی که هنوز بسیار بسیار مهم هستن، مثلا GCC، Bash، emacs، coreutils
اینایی که گفتیم چنتا نمونه از چیزایی بودن که پروژه گنو ساخت.
مثلا coreutils کامندها و دستورات بیسیکی کار با فایلها رو شامل میشه. کامند ls و cp و rm و ... از همین coreutils هستن.
خلاصه که خیلی چیزا ساختن، ولی همچنان یه مشکلی بود...
کرنل که عملا هسته سیستم عامل بود رو نداشتن و کرنلهای موجود رو هم استفاده نکردن به دلایل دیگه.
میرسیم به 1991، یه دانشجوی فنلاندی به اسم لینوس توروالدز میاد و یه کرنل میسازه و توجه پروژه گنو جمع میشه به این کرنل، یه کرنل اوپن سورس و رایگان که همین قضیه هم باعث میشه جای خالی کرنل توسظ لینوکس پر بشه.
وایسا ببینم، مگه لینوکس سیستم عامل نبود؟
خب باید بگم نه :)))
لینوکس در اصل یه کرنله.
در نهایت ابزارهای گنو و کرنل لینوکس ترکیب میشن و گنو/لینوکس متولد میشه.
با ترکیب این دوتا، اولین توزیع گنو/لینوکسی به وجود میاد تو سال 1993 و اسمشم میشه Slackware
احتمالا خیلیا نمیشناسنش ولی یه نام آشنا در همین زمان به وجود میاد که قطعا میدونم میشناسید :)
و دبیان متولد میشه 😄
پس اگر بگیم لینوکس، عملا داریم بخش عظیمی از سیستم عامل رو که گنو تشکیل میده رو زیر سوال میبریم و بیخیال زحماتش میشیم.
یه سوال دیگه هم پیش میاد:
چرا گنو خودش کرنل ننوشت؟
در اصل گنو هم یه کرنل داره!!
یه میکرو کرنل به اسم Mach که فانکشنالیتیهای اصلی و هسته رو انجام میده و hurd هم در اصل چیزای high level تر رو انجام میده.
اما خب باید بگم که اگه پشت گوشتون رو دیدید کرنل کامل hurd رو هم خواهید دید 😁
حدود 30 ساله که داره توسعه پیدا میکنه و هنوزم بدرد استفاده نمیخوره و جای کار داره.
و این بود داستان توسعه لینوکس، گنو، و قضیه نامگذاری گنو/لینوکس که بهش پرداختیم.
امیدوارم روز و شب خوبی داشته باشید
با یه قلب خوشگل خوشحالمون کن 🫡❤️
#⃣#gnome #linux
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍12❤2🔥1
🟢 خب دوستان فایلهای تکراری یکی از مشکلاتیه که خیلی از ما باهاش مواجهیم. این فایلها نهتنها فضای اضافی میگیرن، بلکه سیستم رو شلوغ و نامرتب میکنن.
ما برای حل مشکل یه اسکریپت ساده نوشتیم که فایلهای تکراری رو پیدا میکنه، اونها رو حذف میکنه و به جای هر کدوم یه symlink (لینک نمادین) ایجاد میکنه تا ساختار فایل ها حفظ بشه و مشکلی توی اجرای برنامه ها نباشه
به عنوان ارگومنت یه path دریافت میکنه (اگر ندادی محل اجرای اسکریپت رو در نظر میگیره) و تمام زیر فولدر هارو برای فایل تکراری اسکن میکنه
🔗 این اسکریپت رو از این لینک میتونی دانلود کنی
نکته: نیازه قبل از اجرا بسته fdupes رو نصب کنی
💬 هر نظر و سوال یا بهبود کد مدنظرته باهامون به اشتراک بزار 😊
➖➖➖➖➖➖➖➖➖➖
مثال فایلهای تکراری مثل venv یا node_modules که چندین بار کپی شدن و فضای هارد رو اشغال کردن. (برای خودم نیم گیگ فضا اشغال کرده بود)
ما برای حل مشکل یه اسکریپت ساده نوشتیم که فایلهای تکراری رو پیدا میکنه، اونها رو حذف میکنه و به جای هر کدوم یه symlink (لینک نمادین) ایجاد میکنه تا ساختار فایل ها حفظ بشه و مشکلی توی اجرای برنامه ها نباشه
به عنوان ارگومنت یه path دریافت میکنه (اگر ندادی محل اجرای اسکریپت رو در نظر میگیره) و تمام زیر فولدر هارو برای فایل تکراری اسکن میکنه
🔗 این اسکریپت رو از این لینک میتونی دانلود کنی
نکته: نیازه قبل از اجرا بسته fdupes رو نصب کنی
💬 هر نظر و سوال یا بهبود کد مدنظرته باهامون به اشتراک بزار 😊
#️⃣ #script #suggest
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍3🔥1
خب امروز میخوایم اسنپ استور رو بررسی کنیم و ببینیم چرا خیلیا دوست ندارن ازش استفاده کنن. 🤔
❓ اسنپ چیه؟
اسنپ یه فروشگاه نرمافزاریه که از بستههای Snap 📦 استفاده میکنه و توسط Canonical (سازندهی اوبونتو) توسعه داده شده و پشتیبانی میشه.
🎯 هدفش چیه؟
ایدهی اصلی Snap این بود که مشکل وابستگیهای نرمافزاری توی لینوکس رو حل کنه. توی توزیعهای مختلف لینوکس، بستهها معمولاً به کتابخانهها و فایلهای خاصی نیاز دارن که ممکنه توی هر توزیع متفاوت باشند. این موضوع باعث مشکلاتی در نصب و اجرای نرمافزارها میشه.
Snap با این ایده شروع کرد که:
✔ مدیریت یکپارچهی نرمافزارها 🛠️:
✔ پشتیبانی از بهروزرسانیهای خودکار 🔄:
✔ امنیت بالاتر 🔐:
❌ مشکلات اسنپ
1⃣ سرعت پایین 🚶♂️:
برنامههای Snap معمولاً کندتر از نسخههای معمولی اجرا میشن. حتی نصب، بهروزرسانی یا حذف برنامهها هم با سرعت پایینی انجام میشه.
2⃣ استفادهی زیاد از فضای ذخیرهسازی 💾:
چون هر بسته همهی وابستگیهاش رو با خودش داره، فضای بیشتری اشغال میکنه. برای مثال، ممکنه چندین نسخهی مختلف از یک کتابخانه داخل پکیجهای مختلف ذخیره بشه.
3⃣ انحصار 🔒:
اسنپ فقط توسط Canonical مدیریت میشه و استفاده از مخازن جایگزین سخت یا حتی محدود شده. برخلاف فلت پک که به کاربر اجازه میده مخازن مختلفی اضافه کنه، Snap فقط یک مخزن رسمی داره.
🔄 جایگزینهای بهتر از اسنپ؟
💡 بهجای Snap، میشه از Flatpak و AppImage استفاده کرد که هرکدوم مزایا و معایب خودشون رو دارن.
➖➖➖➖➖➖➖➖➖➖
❓ اسنپ چیه؟
اسنپ یه فروشگاه نرمافزاریه که از بستههای Snap 📦 استفاده میکنه و توسط Canonical (سازندهی اوبونتو) توسعه داده شده و پشتیبانی میشه.
🎯 هدفش چیه؟
ایدهی اصلی Snap این بود که مشکل وابستگیهای نرمافزاری توی لینوکس رو حل کنه. توی توزیعهای مختلف لینوکس، بستهها معمولاً به کتابخانهها و فایلهای خاصی نیاز دارن که ممکنه توی هر توزیع متفاوت باشند. این موضوع باعث مشکلاتی در نصب و اجرای نرمافزارها میشه.
Snap با این ایده شروع کرد که:
✅ همهی وابستگیهای یک نرمافزار رو داخل خودش بذاره.
✅ پکیجها رو در محیطهای ایزوله (sandboxed) اجرا کنه تا با هم تداخلی نداشته باشن.
✅ نرمافزارها بدون وابستگی به نسخهی خاصی از یک توزیع، روی همهی سیستمها یکپارچه اجرا بشن.🔥 ویژگیهای اسنپ استور
✔ مدیریت یکپارچهی نرمافزارها 🛠️:
کاربرا میتونن برنامهها رو نصب، بهروزرسانی یا حذف کنن، بدون نگرانی از وابستگیها.
✔ پشتیبانی از بهروزرسانیهای خودکار 🔄:
برنامههایی که از Snap Store نصب شدن، بهصورت خودکار به آخرین نسخه بهروزرسانی میشن.
✔ امنیت بالاتر 🔐:
به خاطر sandboxing (اجرای ایزولهی بستهها)، برنامهها تأثیر کمتری روی سیستم و همدیگه دارن و احتمال آسیبپذیری کمتر میشه.
❌ مشکلات اسنپ
1⃣ سرعت پایین 🚶♂️:
برنامههای Snap معمولاً کندتر از نسخههای معمولی اجرا میشن. حتی نصب، بهروزرسانی یا حذف برنامهها هم با سرعت پایینی انجام میشه.
2⃣ استفادهی زیاد از فضای ذخیرهسازی 💾:
چون هر بسته همهی وابستگیهاش رو با خودش داره، فضای بیشتری اشغال میکنه. برای مثال، ممکنه چندین نسخهی مختلف از یک کتابخانه داخل پکیجهای مختلف ذخیره بشه.
3⃣ انحصار 🔒:
اسنپ فقط توسط Canonical مدیریت میشه و استفاده از مخازن جایگزین سخت یا حتی محدود شده. برخلاف فلت پک که به کاربر اجازه میده مخازن مختلفی اضافه کنه، Snap فقط یک مخزن رسمی داره.
🔄 جایگزینهای بهتر از اسنپ؟
💡 بهجای Snap، میشه از Flatpak و AppImage استفاده کرد که هرکدوم مزایا و معایب خودشون رو دارن.
#️⃣ #snap #linux
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍4
فایل سیستم، درخت زندگی سیستمهای لینوکسی 🌿🐧
فایل سیستم (File System) در لینوکس یک ساختار سلسلهمراتبی از دایرکتوریها و فایلهاست که نحوه ذخیره، سازماندهی و مدیریت دادهها روی دیسک رو تعیین میکنه.
🌲 ساختار سلسلهمراتبی فایل سیستم
در لینوکس، همهچیز یک فایل است حتی دیوایسها، فرآیندها و پورتها.
لینوکس یک ساختار درختی داره که از ریشه (/) شروع میشه و دایرکتوریهای مختلفی رو شامل میشه:
🔹 / (Root) → ریشهی فایل سیستم که همهچیز از اون منشعب میشه.
🔹 bin/ → شامل باینریهای ضروری مثل ls، cp، mv و ... 🛠️
🔹 etc/ → شامل فایلهای پیکربندی سیستم ⚙️
🔹 home/ → دایرکتوری مخصوص کاربران، مثلاً home/linuxzone/ 🏠
🔹 var/ → شامل دادههای متغیر مثل لاگها (var/log/) 📜
🔹 usr/ → شامل برنامههای کاربری و کتابخانهها 📚
🔹 tmp/ → دایرکتوری فایلهای موقتی 🕒
🔹 dev/ → شامل فایلهای دیوایس مانند dev/sda/ (هارددیسکها) 💾
🔹 proc/ → دایرکتوری مجازی برای اطلاعات کرنل و پردازشها 🖥️
💾 انواع فایل سیستمهای لینوکس
لینوکس از چندین نوع فایل سیستم پشتیبانی میکنه. محبوبترینها:
🔸 ext4 → رایجترین فایل سیستم برای لینوکس، پایدار و کارآمد.
🔸 XFS → مناسب برای حجمهای بزرگ و عملکرد بالا
🔸 Btrfs → پشتیبانی از Snapshot و RAID
🔸 ZFS → یک فایل سیستم قدرتمند با ویژگیهای پیشرفته
🔸 tmpfs → فایل سیستم موقتی که در RAM ذخیره میشود
فایل سیستم در لینوکس یک ساختار قدرتمند و انعطافپذیر است که به کاربران و مدیران سیستم امکان مدیریت پیشرفته دادهها رو میده.
با درک این مفاهیم، میتونید سیستم رو بهینهتر مدیریت کنید و از قدرت واقعی لینوکس لذت ببرید
➖➖➖➖➖➖➖➖➖➖➖
فایل سیستم (File System) در لینوکس یک ساختار سلسلهمراتبی از دایرکتوریها و فایلهاست که نحوه ذخیره، سازماندهی و مدیریت دادهها روی دیسک رو تعیین میکنه.
🌲 ساختار سلسلهمراتبی فایل سیستم
در لینوکس، همهچیز یک فایل است حتی دیوایسها، فرآیندها و پورتها.
لینوکس یک ساختار درختی داره که از ریشه (/) شروع میشه و دایرکتوریهای مختلفی رو شامل میشه:
🔹 / (Root) → ریشهی فایل سیستم که همهچیز از اون منشعب میشه.
همهچیز از اینجا شروع میشه، ریشهی درخت
🔹 bin/ → شامل باینریهای ضروری مثل ls، cp، mv و ... 🛠️
فایلهای اجرایی اصلی سیستم اینجا زندگی میکنن
🔹 etc/ → شامل فایلهای پیکربندی سیستم ⚙️
تنظیمات سیستمی و برنامهها اینجا ذخیره میشن.
🔹 home/ → دایرکتوری مخصوص کاربران، مثلاً home/linuxzone/ 🏠
فایلهای شخصی مثل عکس، ویدیو، موسیقی 🎵 و ... اینجا قرار دارن.
🔹 var/ → شامل دادههای متغیر مثل لاگها (var/log/) 📜
لاگهای سیستم و برنامهها اینجا ذخیره میشن.
🔹 usr/ → شامل برنامههای کاربری و کتابخانهها 📚
مثلاً usr/bin/ برای باینریهای اضافی و usr/lib/ برای کتابخانهها.
🔹 tmp/ → دایرکتوری فایلهای موقتی 🕒
فایلهایی که فقط برای مدت کوتاه مورد نیازن اینجا ذخیره میشن.
🔹 dev/ → شامل فایلهای دیوایس مانند dev/sda/ (هارددیسکها) 💾
بله! در لینوکس دیوایسها هم فایل هستن!
🔹 proc/ → دایرکتوری مجازی برای اطلاعات کرنل و پردازشها 🖥️
فایلهایی که اطلاعات پردازشهای در حال اجرا رو نمایش میدن.
💾 انواع فایل سیستمهای لینوکس
لینوکس از چندین نوع فایل سیستم پشتیبانی میکنه. محبوبترینها:
🔸 ext4 → رایجترین فایل سیستم برای لینوکس، پایدار و کارآمد.
🔸 XFS → مناسب برای حجمهای بزرگ و عملکرد بالا
🔸 Btrfs → پشتیبانی از Snapshot و RAID
🔸 ZFS → یک فایل سیستم قدرتمند با ویژگیهای پیشرفته
🔸 tmpfs → فایل سیستم موقتی که در RAM ذخیره میشود
فایل سیستم در لینوکس یک ساختار قدرتمند و انعطافپذیر است که به کاربران و مدیران سیستم امکان مدیریت پیشرفته دادهها رو میده.
با درک این مفاهیم، میتونید سیستم رو بهینهتر مدیریت کنید و از قدرت واقعی لینوکس لذت ببرید
#️⃣ #linux #filesystem
➖➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
❤2🔥2
🔧 چطوری با TestDisk پارتیشن های حذف شده رو برگردونیم؟
🔸گاهی وقتا اشتباهی یه پارتیشن رو پاک میکنیم یا فایل ها هست اما سیستم بوت لودر رو شناسایی نمیکنه! چطور برش گردونیم؟ 🚀
مرحله ۱: نصب TestDisk
براساس توزیع تون پکیج testdisk رو نصب کنید
مرحله ۲: برنامه رو توی ترمینال با دسترسی sudo ران کنید:
مرحله ۳: انتخاب دیسک
🔸- لیست دیسکها میاد. مثلاً ممکنه اسم دیسک شما
- با کلیدهای بالا و پایین کیبورد، دیسک مدنظر رو انتخاب کنید و اینتر بزنید.
مرحله ۴: نوع جدول پارتیشن رو مشخص کنید
🔸- برای اکثر سیستم های معمولی (MBR یا GPT)، گزینه ی Intel رو انتخاب کنید و اینتر
مرحله ۵: اسکن و بازیابی
1️⃣ از منوی اصلی، گزینهی Analyse (تجزیه و تحلیل) رو انتخاب کنید.
2️⃣ صبر کنید تا TestDisk دیسک رو اسکن کنه. ممکنه چند دقیقه طول بکشه☕️
3️⃣ وقتی پارتیشن حذفشده پیدا شد، روشنش کنید (با کلید → و اینتر).
4️⃣ حالا گزینهی Write (نوشتن) رو بزنید تا تغییرات ذخیره بشن.
5️⃣ سیستم رو ریاستارت کنید و نتیجه رو ببینید!
هشدارهای مهم ❗️
- قبل از هر کاری، از داده هاتون بکاپ بگیرید! ممکنه اشتباهی اوضاع بدتر بشه!
- اگر پارتیشن تو لیست نیست، از منوی اصلی گزینهی Deeper Search رو امتحان کنید (اسکن عمیقتر).
- اگر مطمئن نیستید، Write نزنید! اول با یه آدم باتجربه مشورت کنید.
اگر سیستم اصلاً بوت نمیشه چی؟
🔸- یه USB لایو لینوکس بسازید و از اون بوت کنید بعد TestDisk رو نصب کرده و همین مراحل رو تکرار کنید.
💬 هر نظری داشتید خوشحال میشیم با ما در میون بزارید
➖➖➖➖➖➖➖➖➖➖
🔸گاهی وقتا اشتباهی یه پارتیشن رو پاک میکنیم یا فایل ها هست اما سیستم بوت لودر رو شناسایی نمیکنه! چطور برش گردونیم؟ 🚀
مرحله ۱: نصب TestDisk
براساس توزیع تون پکیج testdisk رو نصب کنید
sudo apt install testdisk
مرحله ۲: برنامه رو توی ترمینال با دسترسی sudo ران کنید:
sudo testdisk
مرحله ۳: انتخاب دیسک
🔸- لیست دیسکها میاد. مثلاً ممکنه اسم دیسک شما
/dev/sda
باشه. - با کلیدهای بالا و پایین کیبورد، دیسک مدنظر رو انتخاب کنید و اینتر بزنید.
مرحله ۴: نوع جدول پارتیشن رو مشخص کنید
🔸- برای اکثر سیستم های معمولی (MBR یا GPT)، گزینه ی Intel رو انتخاب کنید و اینتر
مرحله ۵: اسکن و بازیابی
1️⃣ از منوی اصلی، گزینهی Analyse (تجزیه و تحلیل) رو انتخاب کنید.
2️⃣ صبر کنید تا TestDisk دیسک رو اسکن کنه. ممکنه چند دقیقه طول بکشه☕️
3️⃣ وقتی پارتیشن حذفشده پیدا شد، روشنش کنید (با کلید → و اینتر).
4️⃣ حالا گزینهی Write (نوشتن) رو بزنید تا تغییرات ذخیره بشن.
5️⃣ سیستم رو ریاستارت کنید و نتیجه رو ببینید!
هشدارهای مهم ❗️
- قبل از هر کاری، از داده هاتون بکاپ بگیرید! ممکنه اشتباهی اوضاع بدتر بشه!
- اگر پارتیشن تو لیست نیست، از منوی اصلی گزینهی Deeper Search رو امتحان کنید (اسکن عمیقتر).
- اگر مطمئن نیستید، Write نزنید! اول با یه آدم باتجربه مشورت کنید.
اگر سیستم اصلاً بوت نمیشه چی؟
🔸- یه USB لایو لینوکس بسازید و از اون بوت کنید بعد TestDisk رو نصب کرده و همین مراحل رو تکرار کنید.
💬 هر نظری داشتید خوشحال میشیم با ما در میون بزارید
#️⃣ #linux #lost_partition #disk #testdisk
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍6
📦 همه چیز درمورد کانتینرها
کانتینرها مثل "جعبههای نرمافزاری" هستن که همه چیز رو برای اجرای یک برنامه (مثلاً یک وبسرور یا اپلیکیشن) آماده میکنن. برخلاف ماشینهای مجازی (VM) که کل سیستم عامل رو شبیهسازی میکنن، کانتینرها به جای بالا اوردن هسته جدا هسته اصلی رو با برنامه مون به اشتراک میزارن! این باعث میشه سبکتر، سریعتر و کممصرفتر باشن.
🔍 چطوری کار میکنن؟
🔸کانتینرها از دو فناوری کلیدی لینوکس استفاده میکنن:
1️⃣ Namespaces:
محیط اجرای برنامه رو از بقیه سیستم ایزوله میکنه (مثلاً فایل سیستم، شبکه و فرایندها جدا میشن).
2️⃣ Cgroups (Control Groups):
منابع سختافزاری (مثل CPU و RAM) رو بین کانتینرها محدود و مدیریت میکنه.
🚢 Docker چیکار میکنه این وسط؟ 🤔 Docker محبوبترین ابزار برای کار با کانتینرهاست. به راحتی میتونی یه اپلیکیشن رو با تمام وابستگیهاش (مثل کتابخانهها و تنظیمات) توی یه تصویر (Image) بستهبندی کنی و روی هر سیستم لینوکسی اجرا کنی.
مثال اجرای یک کانتینر اوبونتو:
چطور به Image سفارشی بسازیم؟
🔸 با Dockerfile میتونی Image خودت رو بسازی:
سپس با دستور
ایمیج رو بساز
📚 LXC/LXD: کانتینرهای "شبه VM"
LXC (Linux Containers) کانتینرهایی میسازه که بیشتر شبیه یه سیستم عامل کاملن مثلاً میتونی یه کانتینر اوبونتو داشته باشی و تقریباً همه کارهایی که توی یه VM میکنی رو انجام بدی.
مثال ایجاد کانتینر با LXD:
🌟 مزایای کانتینرها:
1️⃣ پورتابل: یه بار بساز، همه جا اجرا کن (حتی روی سرور)
2️⃣ سریع: راهاندازی کانتینر ها خیلی سریع انجام میشه
3️⃣ صرفهجویی در منابع: دهها کانتینر میتونی روی یک سرور اجرا کنی بدون نیاز به سختافزار اضافه.
4️⃣ اسکیل آسان: با ابزارهایی مثل Kubernete**s میتونی هزاران کانتینر رو مدیریت کنی.
⚠️ نکات امنیتی:
کانتینرها کاملاً ایزوله نیستن اگر تنظیمات اشتباه باشه، ممکنه به سیستم یا سرور آسیب بزنن.
همیشه:
1️⃣ از Imageهای رسمی و معتبر استفاده کن.
2️⃣ کانتینرها رو با کاربر غیر root اجرا کن.
3️⃣ به کانتینرها دسترسی بیش از حد نده (مثلاً --privileged در Docker خطرناکه).
🎯 کاربردهای کانتینرها:
توسعه نرمافزار (DevOps و CI/CD)
اجرای میکروسرویسها (مثل وبسرور، دیتابیس و ...)
تست نرمافزار در محیطهای مختلف
ساخت محیطهای توسعه یکسان برای کل تیم
🔧 شروع کار با Docker روی لینوکس:
1️⃣ بر اساس توزیعت Docker رو نصب کن و اگر خواستی استارت اپش رو فعال کن:
2️⃣ یک Image آزمایشی دانلود کن (مثل Nginx):
3️⃣ کانتینر رو اجرا کن:
حالا تو مرورگر ادرس localhost:8080 رو بزن اگر صفحه پیشفرض Nginx رو دیدی یعنی درست اجرا شده!
جمع بندی ✍
فهمیدیم که کانتینر ها ابزاری برای ایزوله سازی برنامه هامون هستن که با استفاده از منابع کم و راه اندازی سریع خیلی کار هارو ساده میکنن و برای بکند کار و شبکه و حتی فرانت کار ها هم کاربرد دارن.
➖➖➖➖➖➖➖➖➖➖
کانتینرها مثل "جعبههای نرمافزاری" هستن که همه چیز رو برای اجرای یک برنامه (مثلاً یک وبسرور یا اپلیکیشن) آماده میکنن. برخلاف ماشینهای مجازی (VM) که کل سیستم عامل رو شبیهسازی میکنن، کانتینرها به جای بالا اوردن هسته جدا هسته اصلی رو با برنامه مون به اشتراک میزارن! این باعث میشه سبکتر، سریعتر و کممصرفتر باشن.
🔍 چطوری کار میکنن؟
🔸کانتینرها از دو فناوری کلیدی لینوکس استفاده میکنن:
1️⃣ Namespaces:
محیط اجرای برنامه رو از بقیه سیستم ایزوله میکنه (مثلاً فایل سیستم، شبکه و فرایندها جدا میشن).
2️⃣ Cgroups (Control Groups):
منابع سختافزاری (مثل CPU و RAM) رو بین کانتینرها محدود و مدیریت میکنه.
🚢 Docker چیکار میکنه این وسط؟ 🤔 Docker محبوبترین ابزار برای کار با کانتینرهاست. به راحتی میتونی یه اپلیکیشن رو با تمام وابستگیهاش (مثل کتابخانهها و تنظیمات) توی یه تصویر (Image) بستهبندی کنی و روی هر سیستم لینوکسی اجرا کنی.
مثال اجرای یک کانتینر اوبونتو:
docker run -it ubuntu:22.04 /bin/bash
چطور به Image سفارشی بسازیم؟
🔸 با Dockerfile میتونی Image خودت رو بسازی:
FROM python:3.9
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
سپس با دستور
docker build -t my-app .
ایمیج رو بساز
📚 LXC/LXD: کانتینرهای "شبه VM"
LXC (Linux Containers) کانتینرهایی میسازه که بیشتر شبیه یه سیستم عامل کاملن مثلاً میتونی یه کانتینر اوبونتو داشته باشی و تقریباً همه کارهایی که توی یه VM میکنی رو انجام بدی.
مثال ایجاد کانتینر با LXD:
lxc launch ubuntu:22.04 my-container # ساخت کانتینر
lxc exec my-container -- bash # ورود به کانتینر
🌟 مزایای کانتینرها:
1️⃣ پورتابل: یه بار بساز، همه جا اجرا کن (حتی روی سرور)
2️⃣ سریع: راهاندازی کانتینر ها خیلی سریع انجام میشه
3️⃣ صرفهجویی در منابع: دهها کانتینر میتونی روی یک سرور اجرا کنی بدون نیاز به سختافزار اضافه.
4️⃣ اسکیل آسان: با ابزارهایی مثل Kubernete**s میتونی هزاران کانتینر رو مدیریت کنی.
⚠️ نکات امنیتی:
کانتینرها کاملاً ایزوله نیستن اگر تنظیمات اشتباه باشه، ممکنه به سیستم یا سرور آسیب بزنن.
همیشه:
1️⃣ از Imageهای رسمی و معتبر استفاده کن.
2️⃣ کانتینرها رو با کاربر غیر root اجرا کن.
3️⃣ به کانتینرها دسترسی بیش از حد نده (مثلاً --privileged در Docker خطرناکه).
🎯 کاربردهای کانتینرها:
توسعه نرمافزار (DevOps و CI/CD)
اجرای میکروسرویسها (مثل وبسرور، دیتابیس و ...)
تست نرمافزار در محیطهای مختلف
ساخت محیطهای توسعه یکسان برای کل تیم
🔧 شروع کار با Docker روی لینوکس:
1️⃣ بر اساس توزیعت Docker رو نصب کن و اگر خواستی استارت اپش رو فعال کن:
sudo apt install docker
sudo systemctl enable --now docker
2️⃣ یک Image آزمایشی دانلود کن (مثل Nginx):
docker pull nginx
3️⃣ کانتینر رو اجرا کن:
docker run -d -p 8080:80 --name my-nginx nginx
حالا تو مرورگر ادرس localhost:8080 رو بزن اگر صفحه پیشفرض Nginx رو دیدی یعنی درست اجرا شده!
جمع بندی ✍
فهمیدیم که کانتینر ها ابزاری برای ایزوله سازی برنامه هامون هستن که با استفاده از منابع کم و راه اندازی سریع خیلی کار هارو ساده میکنن و برای بکند کار و شبکه و حتی فرانت کار ها هم کاربرد دارن.
#️⃣ #linux #development
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍8
۱۰ ابزار خط فرمان که هر کاربر لینوکس باید بشناسه 🛠
ترمینال لینوکس پر از ابزارهای فوقالعادهایه که میتونه کارها رو سریعتر و راحتتر کنه. این ۱۰ ابزار قدرتمند تجربهی کار با لینوکس رو خیلی بهتر میکنن.
1️⃣ htop مدیریت پردازشها 🔄
htop یه نسخه پیشرفته از top هست که اطلاعات سیستم رو بهشکل رنگی و خوانا نمایش میده.
قابلیت شخصیسازی بالایی داره و مدیریت پردازشها رو آسونتر میکنه.
نصب:
اجرا:
2️⃣ ncdu بررسی فضای اشغالشده در دیسک 💾
این ابزار نسخهی تعاملی du هست و بهت نشون میده کدوم پوشهها بیشترین حجم رو اشغال کردن.
برای مدیریت فضای ذخیرهسازی عالیه.
نصب:
اجرا:
3️⃣ fzf جستجوی فوق سریع در تاریخچه و فایلها ⚡️
fzf یه ابزار تعاملیه که جستجو بین فایلها، دستورات و متنها رو سریعتر از همیشه میکنه.
میتونی خیلی سریع توی تاریخچهی دستوراتت جستجو کنی.
نصب:
مثال:
4️⃣ bat جایگزین cat 📝
bat مثل cat هست، ولی با رنگبندی سینتکس، شماره خطوط و پشتیبانی از git برای نمایش تغییرات فایلها.
نصب:
مثال:
5️⃣ tldr راهنمای سریع و خلاصه برای دستورات 📖
🔹 اگر man توضیحات زیادی داره، tldr خلاصه و مثالهای کاربردی میده.
نصب:
مثال:
6️⃣ ripgrep (rg) جستجوی سریع متن در فایلها 🔍
rg جایگزین سریعتر grep هست و استفاده ازش راحتتره.
نصب:
مثال:
7️⃣ lsd نسخه مدرن و زیباتر ls 🎨
lsd جایگزین پیشرفتهی ls هست که آیکون فایلها رو نمایش میده و خروجی مرتبتری داره.
نصب:
مثال:
8️⃣ fd جستجوی سریع فایلها 📁
fd جایگزین سریعتر و راحتتر find هست.
نصب:
مثال:
9️⃣ tmux مدیریت همزمان چندین ترمینال🖥
tmux بهت اجازه میده چندین سشن ترمینال رو در یک صفحه مدیریت کنی. برای کار با سرورها فوقالعادهست!
نصب:
مثال:
🔟 bpytop مانیتورینگ گرافیکی سیستم 📊
bpytop اطلاعات پردازنده، رم، دیسک و شبکه رو با یه رابط گرافیکی زیبا نشون میده.
نصب:
اجرا:
جمعبندی ✍️
این ابزارها باعث میشن سرعت و کاراییت توی لینوکس افزایش پیدا کنه. کدوم یکی رو قبلاً استفاده کردی؟ اگر ابزار دیگهای میشناسی که باید تو این لیست باشه، بگو
➖➖➖➖➖➖➖➖➖➖
ترمینال لینوکس پر از ابزارهای فوقالعادهایه که میتونه کارها رو سریعتر و راحتتر کنه. این ۱۰ ابزار قدرتمند تجربهی کار با لینوکس رو خیلی بهتر میکنن.
1️⃣ htop مدیریت پردازشها 🔄
htop یه نسخه پیشرفته از top هست که اطلاعات سیستم رو بهشکل رنگی و خوانا نمایش میده.
قابلیت شخصیسازی بالایی داره و مدیریت پردازشها رو آسونتر میکنه.
نصب:
sudo apt install htop # در Debian/Ubuntu
sudo dnf install htop # در Fedora
اجرا:
htop
2️⃣ ncdu بررسی فضای اشغالشده در دیسک 💾
این ابزار نسخهی تعاملی du هست و بهت نشون میده کدوم پوشهها بیشترین حجم رو اشغال کردن.
برای مدیریت فضای ذخیرهسازی عالیه.
نصب:
sudo apt install ncdu
اجرا:
ncdu /
3️⃣ fzf جستجوی فوق سریع در تاریخچه و فایلها ⚡️
fzf یه ابزار تعاملیه که جستجو بین فایلها، دستورات و متنها رو سریعتر از همیشه میکنه.
میتونی خیلی سریع توی تاریخچهی دستوراتت جستجو کنی.
نصب:
sudo apt install fzf
مثال:
CTRL + R # جستجو در تاریخچه دستورات
4️⃣ bat جایگزین cat 📝
bat مثل cat هست، ولی با رنگبندی سینتکس، شماره خطوط و پشتیبانی از git برای نمایش تغییرات فایلها.
نصب:
sudo apt install bat
مثال:
bat myfile.py # نمایش فایل با رنگبندی
bat --diff file1.txt file2.txt # مقایسه دو فایل
bat -n script.sh # نمایش شماره خطوط
5️⃣ tldr راهنمای سریع و خلاصه برای دستورات 📖
🔹 اگر man توضیحات زیادی داره، tldr خلاصه و مثالهای کاربردی میده.
نصب:
sudo apt install tldr
مثال:
tldr tar # راهنمای سریع برای tar
tldr curl # نمایش مثالهای مربوط به curl
6️⃣ ripgrep (rg) جستجوی سریع متن در فایلها 🔍
rg جایگزین سریعتر grep هست و استفاده ازش راحتتره.
نصب:
sudo apt install ripgrep
مثال:
rg "TODO" # جستجو در همه فایلهای پروژه
rg -n "error" # نمایش شماره خط برای کلمهی "error"
rg --no-ignore "debug" # نادیده گرفتن .gitignore
7️⃣ lsd نسخه مدرن و زیباتر ls 🎨
lsd جایگزین پیشرفتهی ls هست که آیکون فایلها رو نمایش میده و خروجی مرتبتری داره.
نصب:
sudo apt install lsd
مثال:
lsd -l # نمایش فایلها با جزئیات
lsd --tree # نمایش فایلها بهشکل درختی
lsd -a # نمایش همه فایلها، حتی مخفیها
8️⃣ fd جستجوی سریع فایلها 📁
fd جایگزین سریعتر و راحتتر find هست.
نصب:
sudo apt install fd-find
مثال:
fd ".py$" # پیدا کردن همه فایلهای .py در پروژه
fd "config.json" ~/projects # جستجوی یه فایل خاص
fd -t d "logs" # پیدا کردن دایرکتوریهای خاص
9️⃣ tmux مدیریت همزمان چندین ترمینال🖥
tmux بهت اجازه میده چندین سشن ترمینال رو در یک صفحه مدیریت کنی. برای کار با سرورها فوقالعادهست!
نصب:
sudo apt install tmux
مثال:
tmux # اجرای tmux و شروع یک سشن جدید
CTRL + B سپس C # ایجاد یک پنجره جدید در سشن فعال
CTRL + B سپس X # بستن یک پنجره
CTRL + B سپس D # خروج از سشن بدون بستن
tmux ls # لیست سشنهای باز
tmux attach -t 0 # بازگشت به سشن قبلی
🔟 bpytop مانیتورینگ گرافیکی سیستم 📊
bpytop اطلاعات پردازنده، رم، دیسک و شبکه رو با یه رابط گرافیکی زیبا نشون میده.
نصب:
sudo apt install bpytop
اجرا:
bpytop
جمعبندی ✍️
این ابزارها باعث میشن سرعت و کاراییت توی لینوکس افزایش پیدا کنه. کدوم یکی رو قبلاً استفاده کردی؟ اگر ابزار دیگهای میشناسی که باید تو این لیست باشه، بگو
#️⃣ #linux #terminal #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍3👏1
چجوری بازیهای ویندوز رو روی لینوکس اجرا کنیم؟🎮
اگه عاشق بازی هستین و در عین حال از سیستمعامل لینوکس استفاده میکنین، احتمالاً براتون سوال شده که چجوری میشه بازیهای ویندوز رو روی لینوکس اجرا کرد. خبر خوب اینه که راههای مختلفی برای این کار وجود داره پس با من همراه باشین تا بتونین بازیهای مورد علاقهتون رو روی لینوکس هم تجربه کنین
راههای اجرای بازیهای ویندوز روی لینوکس
برای اینکه بازیهای ویندوز رو روی لینوکس اجرا کنین، چند ابزار و روش اصلی وجود داره که هر کدوم ویژگیهای خاص خودشون رو دارن. بیاین این روشها رو با هم ببینیم:
1️⃣ Wine
واین یه ابزار رایگان و متنبازه که بهتون اجازه میده برنامهها و بازیهای ویندوز رو روی لینوکس اجرا کنین. این ابزار در واقع یه لایهی سازگاری ایجاد میکنه که دستورات ویندوز رو برای لینوکس ق!ابل فهم میکنه.
چطور نصبش کنم؟
برای نصب Wine، میتونین از مدیر بستههای توزیعتون استفاده کنین. مثلاً تو اوبونتو این دستور رو بزنین:
بعدش، برای اجرای بازی، کافیه فایل اجرایی (exe) بازی رو با این دستور باز کنین:
2️⃣ Proton (با Steam)
Proton یه ابزار فوقالعادهست که توسط Valve (شرکت سازندهی Steam) ساخته شده و در واقع نسخهی بهینهشدهی Wine برای گیمرهاست. با Proton میتونین بازیهای ویندوز رو مستقیماً از Steam روی لینوکس اجرا کنین.
چطور ازش استفاده کنم؟
اول Steam رو روی لینوکس نصب کنین. بعد تو تنظیمات Steam، بخش "Steam Play" رو پیدا کنین و گزینهی "Enable Steam Play for all titles" رو فعال کنین. حالا میتونین بازیهای ویندوز رو نصب و اجرا کنین
3️⃣ Lutris
Lutris یه پلتفرم مدیریت بازیه که کار نصب و اجرای بازیهای ویندوز رو روی لینوکس خیلی راحت میکنه. این ابزار از Wine، Proton و حتی شبیهسازها پشتیبانی میکنه.
چطور نصبش کنم؟
Lutris رو از سایت رسمیش یا مدیر بستهها نصب کنین. بعد از کتابخونهی بازیهاش، بازی مورد نظرتون رو انتخاب کنین و نصبش کنین. Lutris خودش تنظیمات رو براتون انجام میده.
4️⃣ PlayOnLinux
یه ابزار دیگهست که بر پایهی Wine کار میکنه و با اسکریپتهای آماده، نصب بازیها رو آسونتر میکنه و خود کار تنظیمات مربوط به گزافیک رو برای واین انجام میده.
چطور ازش استفاده کنم؟
PlayOnLinux رو بر اسا توزیعتون نصب کنین، بازی مورد نظرتون رو از لیست انتخاب کنین و مراحل نصب رو دنبال کنین. این ابزار خودش نسخهی مناسب Wine رو برای هر بازی مدیریت میکنه.
نکات مهم برای اجرای بهتر بازیها🎮
برای اینکه تجربهی بهتری از بازیها روی لینوکس داشته باشین، این نکات رو رعایت کنین:
1️⃣ درایورهای گرافیک: حتماً درایورهای کارت گرافیکتون رو بهروز کنین (مثلاً درایور NVIDIA یا Mesa برای AMD).
2️⃣ Vulkan: خیلی از بازیها با Vulkan بهتر کار میکنن. مطمئن شین که Vulkan روی سیستمتون نصب باشه.
تنظیمات اضافی⚙️:
1️⃣برای بازیهای خاص، ممکنه لازم باشه تنظیمات Wine یا Proton رو دستی تغییر بدین. سایتهای ProtonDB و WineHQ اطلاعات خوبی دارن.
2️⃣ DXVK: این ابزار DirectX رو به Vulkan تبدیل میکنه و میتونه عملکرد بازیها رو بهتر کنه.
جمعبندی✍️
دیگه لازم نیست بین لینوکس و بازیهای ویندوز یکی رو انتخاب کنین با ابزارهایی مثل Wine، Proton، Lutris، PlayOnLinux و حتی ماشین مجازی، میتونین بازیهای مورد علاقهتون رو روی لینوکس اجرا کنین. اگه دنبال راه ساده هستین، Proton یا Lutris رو امتحان کنین. اگه بازیتون پشتیبانی نمیشه، ماشین مجازی هم تنها راه باقی موندست.
شما کدوم روش رو ترجیح میدین؟ تجربهتون رو با ما به اشتراک بذارین تا بقیه هم استفاده کنن. امیدوارم از بازی کردن لذت ببرین! 🎮
➖➖➖➖➖➖➖➖➖➖
اگه عاشق بازی هستین و در عین حال از سیستمعامل لینوکس استفاده میکنین، احتمالاً براتون سوال شده که چجوری میشه بازیهای ویندوز رو روی لینوکس اجرا کرد. خبر خوب اینه که راههای مختلفی برای این کار وجود داره پس با من همراه باشین تا بتونین بازیهای مورد علاقهتون رو روی لینوکس هم تجربه کنین
راههای اجرای بازیهای ویندوز روی لینوکس
برای اینکه بازیهای ویندوز رو روی لینوکس اجرا کنین، چند ابزار و روش اصلی وجود داره که هر کدوم ویژگیهای خاص خودشون رو دارن. بیاین این روشها رو با هم ببینیم:
1️⃣ Wine
واین یه ابزار رایگان و متنبازه که بهتون اجازه میده برنامهها و بازیهای ویندوز رو روی لینوکس اجرا کنین. این ابزار در واقع یه لایهی سازگاری ایجاد میکنه که دستورات ویندوز رو برای لینوکس ق!ابل فهم میکنه.
✅ مزایا:
کاملاً رایگان و بدون نیاز به لایسنس ویندوز.
از خیلی از بازیها (با گرفیک پایین) پشتیبانی میکنه.
❌ معایب:
بازیها با گرافیک سنگین تر ممکنه درست اجرا نشن یا نیاز به تنظیمات پیچیده داشته باشن.
چطور نصبش کنم؟
برای نصب Wine، میتونین از مدیر بستههای توزیعتون استفاده کنین. مثلاً تو اوبونتو این دستور رو بزنین:
sudo apt install wine
بعدش، برای اجرای بازی، کافیه فایل اجرایی (exe) بازی رو با این دستور باز کنین:
wine /path/to/game.exe
2️⃣ Proton (با Steam)
Proton یه ابزار فوقالعادهست که توسط Valve (شرکت سازندهی Steam) ساخته شده و در واقع نسخهی بهینهشدهی Wine برای گیمرهاست. با Proton میتونین بازیهای ویندوز رو مستقیماً از Steam روی لینوکس اجرا کنین.
✅ مزایا:
خیلی ساده و راحت کار میکنه.
بهروز و مناسب برای بازیهای جدید.
❌ معایب:
فقط برای بازیهای Steam کار میکنه.
چطور ازش استفاده کنم؟
اول Steam رو روی لینوکس نصب کنین. بعد تو تنظیمات Steam، بخش "Steam Play" رو پیدا کنین و گزینهی "Enable Steam Play for all titles" رو فعال کنین. حالا میتونین بازیهای ویندوز رو نصب و اجرا کنین
3️⃣ Lutris
Lutris یه پلتفرم مدیریت بازیه که کار نصب و اجرای بازیهای ویندوز رو روی لینوکس خیلی راحت میکنه. این ابزار از Wine، Proton و حتی شبیهسازها پشتیبانی میکنه.
✅ مزایا:
رابط کاربری ساده و جذاب.
پشتیبانی از بازیهای مختلف (Steam، GOG، Epic و غیره).
❌ معایب:
بعضی بازیها ممکنه نیاز به تنظیمات دستی داشته باشن.
چطور نصبش کنم؟
Lutris رو از سایت رسمیش یا مدیر بستهها نصب کنین. بعد از کتابخونهی بازیهاش، بازی مورد نظرتون رو انتخاب کنین و نصبش کنین. Lutris خودش تنظیمات رو براتون انجام میده.
4️⃣ PlayOnLinux
یه ابزار دیگهست که بر پایهی Wine کار میکنه و با اسکریپتهای آماده، نصب بازیها رو آسونتر میکنه و خود کار تنظیمات مربوط به گزافیک رو برای واین انجام میده.
✅ مزایا:
رابط کاربری گرافیکی ساده.
اسکریپتهای آماده برای بازیهای معروف.
❌ معایب:
بعضی بازیهای جدید ممکنه پشتیبانی نشن.
چطور ازش استفاده کنم؟
PlayOnLinux رو بر اسا توزیعتون نصب کنین، بازی مورد نظرتون رو از لیست انتخاب کنین و مراحل نصب رو دنبال کنین. این ابزار خودش نسخهی مناسب Wine رو برای هر بازی مدیریت میکنه.
نکات مهم برای اجرای بهتر بازیها🎮
برای اینکه تجربهی بهتری از بازیها روی لینوکس داشته باشین، این نکات رو رعایت کنین:
1️⃣ درایورهای گرافیک: حتماً درایورهای کارت گرافیکتون رو بهروز کنین (مثلاً درایور NVIDIA یا Mesa برای AMD).
2️⃣ Vulkan: خیلی از بازیها با Vulkan بهتر کار میکنن. مطمئن شین که Vulkan روی سیستمتون نصب باشه.
تنظیمات اضافی⚙️:
1️⃣برای بازیهای خاص، ممکنه لازم باشه تنظیمات Wine یا Proton رو دستی تغییر بدین. سایتهای ProtonDB و WineHQ اطلاعات خوبی دارن.
2️⃣ DXVK: این ابزار DirectX رو به Vulkan تبدیل میکنه و میتونه عملکرد بازیها رو بهتر کنه.
جمعبندی✍️
دیگه لازم نیست بین لینوکس و بازیهای ویندوز یکی رو انتخاب کنین با ابزارهایی مثل Wine، Proton، Lutris، PlayOnLinux و حتی ماشین مجازی، میتونین بازیهای مورد علاقهتون رو روی لینوکس اجرا کنین. اگه دنبال راه ساده هستین، Proton یا Lutris رو امتحان کنین. اگه بازیتون پشتیبانی نمیشه، ماشین مجازی هم تنها راه باقی موندست.
شما کدوم روش رو ترجیح میدین؟ تجربهتون رو با ما به اشتراک بذارین تا بقیه هم استفاده کنن. امیدوارم از بازی کردن لذت ببرین! 🎮
#️⃣ #linux #gaming #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
❤6
فرآیند بوت شدن سیستم های لینوکسی ⏳🚀
خب توی این پست فرآیند بوت شدن سیستم هایی که از لینوکس استفاده میکنن رو بررسی میکنیم.
1️⃣ فاز اولیه: اجرا شدن فریمور (BIOS/UEFI)
وقتی دکمهی پاور رو میزنی، اولین چیزی که اجرا میشه، BIOS (تو سیستمهای قدیمیتر) یا UEFI (تو سیستمهای جدید) هست. این قسمت سختافزار رو بررسی میکنه و مطمئن میشه که قطعات اصلی (مثل رم، پردازنده و دیسکها) درست کار میکنن.
تست اولیه: این مرحله به اسم POST (Power-On Self Test) شناخته میشه و اگه مشکلی باشه، مثلاً رم خراب باشه، معمولاً با یه سری بوق یا پیام خطا هشدار میده.
پیدا کردن بوت لودر: بعد از تست سختافزار، BIOS/UEFI دنبال دیسک قابل بوت میگرده (مثل SSD یا USB) و بوتلودر رو اجرا میکنه.
2️⃣ بوتلودر (GRUB یا systemd-boot)
بعد از اینکه دیسک بوت پیدا شد، بوتلودر (معمولاً GRUB) اجرا میشه. بوتلودر یه برنامهی کوچیکه که وظیفهی لود کردن کرنل لینوکس رو داره.
انتخاب سیستمعامل:
اگه چند تا سیستمعامل نصب کرده باشی (مثلاً لینوکس و ویندوز)، اینجا میتونی انتخاب کنی که کدوم یکی بوت بشه.
بارگذاری کرنل:
بعد از انتخاب سیستمعامل (یا بعد از چند ثانیه اگه گزینهای انتخاب نشه)، بوتلودر کرنل لینوکس (فایل vmlinuz) رو بارگذاری میکنه.
3️⃣ بارگذاری کرنل و initramfs
اینجا کرنل لینوکس اجرا میشه و شروع به کنترل سختافزار میکنه. اما چون هنوز فایلسیستم اصلی (Root) بارگذاری نشده، یه چیز به اسم initramfs وارد ماجرا میشه.
initramfs چیه؟
یه فایل موقتی که شامل درایورها و ابزارهای اولیه برای شناسایی و اتصال فایلسیستم اصلیه. به کرنل کمک میکنه که بتونه پارتیشنهای دیسک رو بشناسه و مونت کنه.
4️⃣ مونت شدن روت و اجرای systemd
بعد از اینکه کرنل تونست به فایلسیستم اصلی دسترسی پیدا کنه، حالا سیستم آمادهی راهاندازی سرویسها و بقیهی چیزهاست.
ورود systemd:
تو اکثر توزیعهای مدرن لینوکس، systemd اجرا میشه و وظیفهی مدیریت سرویسها و فرآیندهای سیستم رو به عهده داره.
راهاندازی سطح سیستم:
اینجا کلی سرویس اجرا میشن، مثل:
5️⃣ نمایش صفحهی لاگین
در نهایت، بعد از اینکه همه سرویسهای لازم اجرا شدن، یه ترمینال لاگین (TTY) یا محیط گرافیکی دسکتاپ (مثل KDE Plasma یا GNOME) نمایش داده میشه و میتونی با یوزرنیم و پسورد وارد سیستم بشی.
جمعبندی:
1. BIOS/UEFI اجرا میشه و سختافزار رو بررسی میکنه.
2. بوتلودر (GRUB) کرنل لینوکس رو لود میکنه.
3. کرنل و initramfs فایلسیستم رو راهاندازی میکنن.
4. systemd مدیریت سرویسها رو انجام میده.
5. صفحهی لاگین نمایش داده میشه و سیستم آمادهی استفادهست!
➖➖➖➖➖➖➖➖➖➖
خب توی این پست فرآیند بوت شدن سیستم هایی که از لینوکس استفاده میکنن رو بررسی میکنیم.
1️⃣ فاز اولیه: اجرا شدن فریمور (BIOS/UEFI)
وقتی دکمهی پاور رو میزنی، اولین چیزی که اجرا میشه، BIOS (تو سیستمهای قدیمیتر) یا UEFI (تو سیستمهای جدید) هست. این قسمت سختافزار رو بررسی میکنه و مطمئن میشه که قطعات اصلی (مثل رم، پردازنده و دیسکها) درست کار میکنن.
تست اولیه: این مرحله به اسم POST (Power-On Self Test) شناخته میشه و اگه مشکلی باشه، مثلاً رم خراب باشه، معمولاً با یه سری بوق یا پیام خطا هشدار میده.
پیدا کردن بوت لودر: بعد از تست سختافزار، BIOS/UEFI دنبال دیسک قابل بوت میگرده (مثل SSD یا USB) و بوتلودر رو اجرا میکنه.
2️⃣ بوتلودر (GRUB یا systemd-boot)
بعد از اینکه دیسک بوت پیدا شد، بوتلودر (معمولاً GRUB) اجرا میشه. بوتلودر یه برنامهی کوچیکه که وظیفهی لود کردن کرنل لینوکس رو داره.
انتخاب سیستمعامل:
اگه چند تا سیستمعامل نصب کرده باشی (مثلاً لینوکس و ویندوز)، اینجا میتونی انتخاب کنی که کدوم یکی بوت بشه.
بارگذاری کرنل:
بعد از انتخاب سیستمعامل (یا بعد از چند ثانیه اگه گزینهای انتخاب نشه)، بوتلودر کرنل لینوکس (فایل vmlinuz) رو بارگذاری میکنه.
3️⃣ بارگذاری کرنل و initramfs
اینجا کرنل لینوکس اجرا میشه و شروع به کنترل سختافزار میکنه. اما چون هنوز فایلسیستم اصلی (Root) بارگذاری نشده، یه چیز به اسم initramfs وارد ماجرا میشه.
initramfs چیه؟
یه فایل موقتی که شامل درایورها و ابزارهای اولیه برای شناسایی و اتصال فایلسیستم اصلیه. به کرنل کمک میکنه که بتونه پارتیشنهای دیسک رو بشناسه و مونت کنه.
4️⃣ مونت شدن روت و اجرای systemd
بعد از اینکه کرنل تونست به فایلسیستم اصلی دسترسی پیدا کنه، حالا سیستم آمادهی راهاندازی سرویسها و بقیهی چیزهاست.
ورود systemd:
تو اکثر توزیعهای مدرن لینوکس، systemd اجرا میشه و وظیفهی مدیریت سرویسها و فرآیندهای سیستم رو به عهده داره.
راهاندازی سطح سیستم:
اینجا کلی سرویس اجرا میشن، مثل:
مدیریت شبکه (NetworkManager یا systemd-networkd)
مدیریت لاگها (journald)
راهاندازی محیط گرافیکی (GDM، SDDM یا LightDM)
5️⃣ نمایش صفحهی لاگین
در نهایت، بعد از اینکه همه سرویسهای لازم اجرا شدن، یه ترمینال لاگین (TTY) یا محیط گرافیکی دسکتاپ (مثل KDE Plasma یا GNOME) نمایش داده میشه و میتونی با یوزرنیم و پسورد وارد سیستم بشی.
جمعبندی:
1. BIOS/UEFI اجرا میشه و سختافزار رو بررسی میکنه.
2. بوتلودر (GRUB) کرنل لینوکس رو لود میکنه.
3. کرنل و initramfs فایلسیستم رو راهاندازی میکنن.
4. systemd مدیریت سرویسها رو انجام میده.
5. صفحهی لاگین نمایش داده میشه و سیستم آمادهی استفادهست!
#️⃣ #linux #boot #kernel
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍9
چطور برنامه های پرتابل یا فایل های اجرایی که پکیج نشدن نصب کنیم؟ 💻
همه ما برنامه ها و فایل هایی مواجه شدیم که اون هارو دانلود کردیم اما فقظ تونستیم اجرا بکنیم اما نه روی سیستممون نصب داریم نه توی سرچ برنامه ها میان حالا بیاین راه های نصبشون رو برسی کنیم
چند نوع برنامه پرتابل داریم؟🤔
این برنامه ها اواع مختلفی دارن که دو نوع خیلی مرسومشون رو برسی میکنیم
1️⃣ فرمت AppImage
این فرمت کل برنامه و نیاز مندی هاش رو توی یه فایل به ما نحویل میده که میتونیم با کلیک ساده یا توی ترمینال خیلی ساده رانش کنیم مثل بعضی نسخه های nekoray
2️⃣ فایلهای اجرایی (.sh, .bin, ...):
فایل های اجرایی ساده و اسکریپت هایی که به فایل اجرایی تبدیل شدن هم ازین دسته فایل ها هستن که معمولا به صورت فشرده دسته بندی شدن و توی ترمینال بعد از اکسترکت به سادگی به ./script.sh ران میشن مثل پایچارم یا اندروید استودیو
چطوری نصبشون کنیم تا توی منوی برنامه ها بیاد؟🗂
ما برای نصب این برنامه ها به طور کلی به دو مرحله نیاز داریم
به طور مثال میخوایم پایچارم رو که پرتابل هست نصب کنیم
1️⃣ کپی فولدر برنامه یا فایل اکسنرکت شده توی فولدر
2️⃣ ساخت فایل .desktop توی مسیر ~/.local/share/applications:
توی این فولدر یه فایل دسکتاپ با نام دلخواهمون میسازیم مثال:
3️⃣ براساس برنامه تون این فایل رو میسازین:
و بعد از ذخیره اگر درست تنظیم کرده باشین باید برنامه داخل سرچ لینوکستون بیاد
چطور برنامه رو توی ترمینال با یه کامند برنامه رو اجرا کنم؟🤔
برای این کار باید مسیر اجرای برنامه رو داخل PATH ها قرار بدید و اگر میخواید همیشه دردسترش باشه این کار رو براساس ترمینالتون توی فایل bashrc یا zshrc یزارید تا همیشه در دسترس باشه
نکات مهم⚠️:
در صورتی که موقغ اجرای برنامه دیدین ارور میده که یه نیازمندی نصب نیست میتونید با کامند زیر لیست نیازمندی ها رو ببینید و نصب کنید. اگر نبود به داکیومنت برنامه مراجعه کنین
💬 خوحال میشیم نظراتتون رو با ما در میون بزارید😉
➖➖➖➖➖➖➖➖➖➖
همه ما برنامه ها و فایل هایی مواجه شدیم که اون هارو دانلود کردیم اما فقظ تونستیم اجرا بکنیم اما نه روی سیستممون نصب داریم نه توی سرچ برنامه ها میان حالا بیاین راه های نصبشون رو برسی کنیم
چند نوع برنامه پرتابل داریم؟🤔
این برنامه ها اواع مختلفی دارن که دو نوع خیلی مرسومشون رو برسی میکنیم
1️⃣ فرمت AppImage
این فرمت کل برنامه و نیاز مندی هاش رو توی یه فایل به ما نحویل میده که میتونیم با کلیک ساده یا توی ترمینال خیلی ساده رانش کنیم مثل بعضی نسخه های nekoray
2️⃣ فایلهای اجرایی (.sh, .bin, ...):
فایل های اجرایی ساده و اسکریپت هایی که به فایل اجرایی تبدیل شدن هم ازین دسته فایل ها هستن که معمولا به صورت فشرده دسته بندی شدن و توی ترمینال بعد از اکسترکت به سادگی به ./script.sh ران میشن مثل پایچارم یا اندروید استودیو
چطوری نصبشون کنیم تا توی منوی برنامه ها بیاد؟🗂
ما برای نصب این برنامه ها به طور کلی به دو مرحله نیاز داریم
به طور مثال میخوایم پایچارم رو که پرتابل هست نصب کنیم
1️⃣ کپی فولدر برنامه یا فایل اکسنرکت شده توی فولدر
/usr/local/bin/
نکته در بعضی اموزش ها برای این مورد فولدر opt پیشنهاد میشه که خیلی فرقی نمیکنه توی کدوم فولدر بریزین اما اگر برنامه تون تک فایل اجرایی ساده هست صرفا با ریختن توی همین فولدر بهش از طریق ترمینال دسترسی دارید و نیاز به تنظیماتی که در اخر مطلب گفته میشه نیست
2️⃣ ساخت فایل .desktop توی مسیر ~/.local/share/applications:
توی این فولدر یه فایل دسکتاپ با نام دلخواهمون میسازیم مثال:
nano ~/.local/share/applications/pycharm.desktop
3️⃣ براساس برنامه تون این فایل رو میسازین:
نکته: بخش Exec حتما باید مسیر کامل برنامه رو بدید
[Desktop Entry]
Name=PyCharm Portable
Exec=/home/you/Downloads/pycharm/bin/pycharm.sh
Icon=/home/you/Downloads/pycharm/bin/pycharm.png
Type=Application
Categories=Development;
و بعد از ذخیره اگر درست تنظیم کرده باشین باید برنامه داخل سرچ لینوکستون بیاد
چطور برنامه رو توی ترمینال با یه کامند برنامه رو اجرا کنم؟🤔
برای این کار باید مسیر اجرای برنامه رو داخل PATH ها قرار بدید و اگر میخواید همیشه دردسترش باشه این کار رو براساس ترمینالتون توی فایل bashrc یا zshrc یزارید تا همیشه در دسترس باشه
export PATH=/program_bin_folder/:$PATH # این رو داخل فایل .bashrc قرار بدید
نکات مهم⚠️:
در صورتی که موقغ اجرای برنامه دیدین ارور میده که یه نیازمندی نصب نیست میتونید با کامند زیر لیست نیازمندی ها رو ببینید و نصب کنید. اگر نبود به داکیومنت برنامه مراجعه کنین
ldd /مسیر/برنامه | grep not
💬 خوحال میشیم نظراتتون رو با ما در میون بزارید😉
#️⃣ #linux #install #portable
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍5🔥1
نصب AstroNvim🛠
همیشه کانفیگ vim یا nvim میتونه برای تازه کار ها سخت و برای حرفه ای ها زمان بر باشه برای همین کانفیگ های آماده ای به وجود اومدن که به کاربر اجازه میدادن با صرف زمان و انرژی کمتر یه کانفیگ خوب و قابل استفاده داشته باشه. یکی از این کانفیگ ها AstroNvim هست که روی nvim نصب میشه و تجربه ی کار با این ادیتور رو لذت بخش تر میکنه.
✨ویژگیهای AstroNvim
✅ سریع، زیبا و بهینهشده
✅ پشتیبانی از LSP، DAP و درخت فایل پیشرفته
✅ افزونههای از پیش تنظیمشده برای یه تجربهی عالی
✅ قابلیت شخصیسازی بالا
📌 نصب AstroNvim
اول از همه، نئوویم نسخه 0.9 یا بالاتر رو نصب کن:
حالا AstroNvim رو توی پوشه ی کانفیگ های nvim کلون کن:
حالا توی اولین اجرای nvim نصب کننده ی AstroNvim شروع به دانلود و نصب افزونه های مورد نیازش میکنه:
🔧نحوه ی کار کردن با AstroNvim:
برای استفاده از AstroNvim فقط کافیه nvim رو اجرا کنید، کانفیگ به طور خودکار لود میشه و آماده ی استفاده هست:
برای اینکه مستقیم یه فایل رو باهاش باز کنید میتونید دقیقا از دستور مشابه vim استفاده کنید:
توی هر اجرا شما صفحه ی اولیه ی AstroNvim رو میبینید که به شما امکان انتخاب سشن های قبلی یا پروژه های قبلی رو میده.
بیشتر فرمان های(حرکت ها، عملگر ها، دستورات و...) AstroNvim دقیقا مشابه فرمان های vim هستن و اگه به vim تسلط دارید میتونید خیلی راحت با این کانفیگ کار کنید.
📌 نصب افزونهها و LSPها
بعد از نصب، این دستورات رو توی نئوویم اجرا کن:
🔧 شخصیسازی AstroNvim
اگر میخوای تنظیمات خودت رو اضافه کنی، یه فولدر مخصوص تنظیمات ایجاد کن:
و داخل
💬 جمعبندی
AstroNvim یه کانفیگ آماده هست با طراحی مدرن و افزونههای از پیش تنظیمشده. این کانفیگ به شما امکان میده تا با سرعت و کارایی بیشتری کدنویسی کنید و محیطی زیبا و کاملاً شخصیسازیشده داشته باشید. اگر به دنبال تجربهای بهینهتر از nvim هستید، AstroNvim بهترین انتخابه.
میتونید با مراجعه به وبسایت AstroNvim اطلاعات بیشتری درموردش کسب کنید.
➖➖➖➖➖➖➖➖➖➖
همیشه کانفیگ vim یا nvim میتونه برای تازه کار ها سخت و برای حرفه ای ها زمان بر باشه برای همین کانفیگ های آماده ای به وجود اومدن که به کاربر اجازه میدادن با صرف زمان و انرژی کمتر یه کانفیگ خوب و قابل استفاده داشته باشه. یکی از این کانفیگ ها AstroNvim هست که روی nvim نصب میشه و تجربه ی کار با این ادیتور رو لذت بخش تر میکنه.
✨ویژگیهای AstroNvim
✅ سریع، زیبا و بهینهشده
✅ پشتیبانی از LSP، DAP و درخت فایل پیشرفته
✅ افزونههای از پیش تنظیمشده برای یه تجربهی عالی
✅ قابلیت شخصیسازی بالا
📌 نصب AstroNvim
اول از همه، نئوویم نسخه 0.9 یا بالاتر رو نصب کن:
sudo apt install neovim #Debian
sudo pacman -S neovim #Arch
sudo dnf install neovim #Fedora
حالا AstroNvim رو توی پوشه ی کانفیگ های nvim کلون کن:
git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/.config/nvim
حالا توی اولین اجرای nvim نصب کننده ی AstroNvim شروع به دانلود و نصب افزونه های مورد نیازش میکنه:
nvim
🔧نحوه ی کار کردن با AstroNvim:
برای استفاده از AstroNvim فقط کافیه nvim رو اجرا کنید، کانفیگ به طور خودکار لود میشه و آماده ی استفاده هست:
nvim
برای اینکه مستقیم یه فایل رو باهاش باز کنید میتونید دقیقا از دستور مشابه vim استفاده کنید:
nvim file.txt
توی هر اجرا شما صفحه ی اولیه ی AstroNvim رو میبینید که به شما امکان انتخاب سشن های قبلی یا پروژه های قبلی رو میده.
بیشتر فرمان های(حرکت ها، عملگر ها، دستورات و...) AstroNvim دقیقا مشابه فرمان های vim هستن و اگه به vim تسلط دارید میتونید خیلی راحت با این کانفیگ کار کنید.
البته میتونید توی حالت نرمال با استفاده از کلید Space به راهنمای AstroNvim دسترسی پیدا کنید. توی این راهنما هم نحوه ی استفاده از خود کانفیگ نوشته شده و هم نحوه ی کار با فرمان های برنامه، مثل یه برگه تقلب(Cheat Sheet) کنار دستتونه.برای مثال میتونید با کلید های Space + e توی حالت نرمال به فایل اکسپلورر داخلی برنامه دسترسی پیدا کنید و با کلید های CTRL + O بین فایل اکسپلورر و صفحه ی ادیتور جا به جا بشید.
📌 نصب افزونهها و LSPها
بعد از نصب، این دستورات رو توی نئوویم اجرا کن:
برای نصب و استفاده از بیشتر افزونه ها نیاز به npm دارید.
:LspInstall python
:MasonInstall eslint lua-language-server
🔧 شخصیسازی AstroNvim
اگر میخوای تنظیمات خودت رو اضافه کنی، یه فولدر مخصوص تنظیمات ایجاد کن:
mkdir -p ~/.config/nvim/lua/user
touch ~/.config/nvim/lua/user/init.lua
و داخل
init.lua
میتونی تنظیمات شخصی خودت رو اضافه کنی. 💬 جمعبندی
AstroNvim یه کانفیگ آماده هست با طراحی مدرن و افزونههای از پیش تنظیمشده. این کانفیگ به شما امکان میده تا با سرعت و کارایی بیشتری کدنویسی کنید و محیطی زیبا و کاملاً شخصیسازیشده داشته باشید. اگر به دنبال تجربهای بهینهتر از nvim هستید، AstroNvim بهترین انتخابه.
میتونید با مراجعه به وبسایت AstroNvim اطلاعات بیشتری درموردش کسب کنید.
#️⃣ #linux #terminal #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
AstroNvim
An aesthetically pleasing and feature-rich neovim config that is extensible and easy to use with a great set of plugins
👍6
🗓 تقویم جلالی توی ترمینال لینوکس
دیگه تقریبا همه cal رو میشناسن، همون تقویم کوچیک و بامزه که میتونیم با دستور cal بهش دسترسی پیدا کنیم. ولی خب همونطور که میدونید این ابزار برای تقویم های میلادی طراحی شده و تقویم میلادی رو نشون میده.امروز که 5 آوریل 2025 هست خروجی این دستور این شکلیه:
برای نمایش تقویم یه سال خاص:
یا نمایش تقویم یه ماه مشخص:
که در این مثال، تقویم آوریل 2019 نمایش داده میشه.
🔥 jcal، تقویم جلالی برای لینوکس
jcal یه جایگزین پیشرفته برای cal هست که علاوه بر تقویم میلادی، تقویم شمسی (جلالی) رو هم نمایش میده.
📌 نصب jcal
میتونید خیلی راحت از طریق مدیر بسته ی توزیعتون نصبش کنین:
📌 استفاده از jcal
برای دیدن تقویم ماه جاری به همراه تقویم شمسی، این دستور رو اجرا کنید:
برای نمایش کل سال شمسی:
برای نمایش تقویم یک سال خاص:
و نمایش یک ماه مشخص از سال خاص:
که در این مثال، تقویم شهریور 1401 نمایش داده میشه.
💬 جمعبندی
اگه فقط به یه تقویم ساده میلادی نیاز دارید، cal براتون کافیه. اما اگه به دنبال نمایش تقویم شمسی هستید و میخواید یه ابزار بهتر داشته باشید، jcal انتخاب خوبیه. میتونید به صفحه ی گیتهاب این ابزار هم یه نگاهی بندازید.
➖➖➖➖➖➖➖➖➖➖
دیگه تقریبا همه cal رو میشناسن، همون تقویم کوچیک و بامزه که میتونیم با دستور cal بهش دسترسی پیدا کنیم. ولی خب همونطور که میدونید این ابزار برای تقویم های میلادی طراحی شده و تقویم میلادی رو نشون میده.امروز که 5 آوریل 2025 هست خروجی این دستور این شکلیه:
cal
April 2025
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
برای نمایش تقویم یه سال خاص:
cal 2025
یا نمایش تقویم یه ماه مشخص:
cal 4 2019
که در این مثال، تقویم آوریل 2019 نمایش داده میشه.
🔥 jcal، تقویم جلالی برای لینوکس
jcal یه جایگزین پیشرفته برای cal هست که علاوه بر تقویم میلادی، تقویم شمسی (جلالی) رو هم نمایش میده.
📌 نصب jcal
میتونید خیلی راحت از طریق مدیر بسته ی توزیعتون نصبش کنین:
sudo apt install jcal #Debian
sudo pacman -S jcal #Arch
sudo dnf install jcal #Fedora
📌 استفاده از jcal
برای دیدن تقویم ماه جاری به همراه تقویم شمسی، این دستور رو اجرا کنید:
jcal
Farvardin 1404
Sh Ye Do Se Ch Pa Jo
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29
برای نمایش کل سال شمسی:
jcal -y
برای نمایش تقویم یک سال خاص:
jcal 1403
و نمایش یک ماه مشخص از سال خاص:
jcal 6 1401
که در این مثال، تقویم شهریور 1401 نمایش داده میشه.
💬 جمعبندی
اگه فقط به یه تقویم ساده میلادی نیاز دارید، cal براتون کافیه. اما اگه به دنبال نمایش تقویم شمسی هستید و میخواید یه ابزار بهتر داشته باشید، jcal انتخاب خوبیه. میتونید به صفحه ی گیتهاب این ابزار هم یه نگاهی بندازید.
#️⃣ #linux #terminal #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
GitHub
GitHub - ashkang/jcal: Jalali Calendar Library
Jalali Calendar Library. Contribute to ashkang/jcal development by creating an account on GitHub.
❤4👍1
🛠 چند alias کاربردی برای هر کاربر لینوکس
حتما با alias ها آشنایی دارین، همون لقب دادن به دستوراتمون.
کاربردش چیه؟ میتونیم کلی دستور طولانی یا حتی دستورایی که تایپ کردنشون هر دفعه مثل یه کابوس میمونه رو توی دستور مورد نظر خودمون خلاصه کنیم.
با این aliasها توی فایل
🔗برای راحتی کار میتونید فایل آماده ی alias هارو از لینک زیر دانلود کنید:
فایل آماده ی alias ها
📌 نکته: بعد از اضافه کردن aliasها، فراموش نکن که ترمینالت رو یه بار ببندی و باز کنی یا دستور زیر رو وارد کنی:
➖➖➖➖➖➖➖➖➖➖
حتما با alias ها آشنایی دارین، همون لقب دادن به دستوراتمون.
کاربردش چیه؟ میتونیم کلی دستور طولانی یا حتی دستورایی که تایپ کردنشون هر دفعه مثل یه کابوس میمونه رو توی دستور مورد نظر خودمون خلاصه کنیم.
ساده تر بگیم، درواقع با اینکار داریم به شل(zsh, bash, fish) میگیم که دستور مورد نظر a معادل دستور طولانی b هست.
با این aliasها توی فایل
~/.bashrc
یا ~/.zshrc
میتونی کلی زمان تو ترمینال صرفهجویی کنی 💻⚡️# ====== System Management ======
alias update="sudo apt update && sudo apt upgrade -y" # Fast system update
alias clean="sudo apt autoremove && sudo apt autoclean" # Clean cache and unnecessary packages
alias reboot="sudo reboot" # Reboot the system
alias ping="ping -c 5" # Ping with 5 packets
# ====== Navigation Shortcuts ======
alias home='cd ~' # Go to home directory
alias cd..='cd ..' # One directory up
alias ..='cd ..' # One directory up (short)
alias ...='cd ../..' # Two directories up
alias ....='cd ../../..' # Three directories up
alias .....='cd ../../../..' # Four directories up
# ====== File Search ======
alias f="find . -name" # Find file by name in current directory and subdirectories
# ====== Listing (ls) Aliases ======
alias la='ls -Alh' # List all files including hidden
alias ls='ls --color=always' # Enable colored output
alias lx='ls -lXBh' # Sort by extension
alias lk='ls -lSrh' # Sort by size
alias lc='ls -lcrh' # Sort by change time
alias lu='ls -lurh' # Sort by access time
alias lr='ls -lRh' # Recursive listing
alias lt='ls -ltrh' # Sort by date
alias lw='ls -xAh' # Wide listing format
alias ll='ls -Flsh' # Long listing format with type indicators
alias labc='ls -lap' # Alphabetical listing with hidden files
alias lf="ls -l | egrep -v '^d'" # List only files
alias ldir="ls -l | egrep '^d'" # List only directories
🔗برای راحتی کار میتونید فایل آماده ی alias هارو از لینک زیر دانلود کنید:
فایل آماده ی alias ها
📌 نکته: بعد از اضافه کردن aliasها، فراموش نکن که ترمینالت رو یه بار ببندی و باز کنی یا دستور زیر رو وارد کنی:
source ~/.bashrc # or ~/.zshrc
#️⃣ #linux #terminal #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍4
🔧 چطور یک داکر برای خودمون بسازیم؟ – قسمت اول
در این مجموعه پستها قصد داریم با کنار هم گذاشتن اجزای پایه های لینوکس، یک container runtime مینیمال مشابه Docker بسازیم. تو این مسیر، با مفاهیم کلیدی مثل namespaceها، cgroups، mount isolation، و root filesystem کار میکنیم تا پایه لینوکس خودمون رو تقویت کنیم.
🧩 cgroups چیست و چرا مهم هست؟
در ساختار یک کانتینر، این قابلیت باعث میشه که:
1️⃣ یک کانتینر بیش از سهم خود از CPU یا RAM استفاده نکنه.
2️⃣ فشار زیاد از سوی یک کانتینر باعث اختلال در کل سیستم نشه.
3️⃣ مدیریت منابع میان چند کانتینر با دقت بیشتری انجام بشه.
✅ چه چیزهایی را میشه با اون کنترل کرد؟
در cgroup نسخه ۲ میتونیم انواع مختلفی از منابع رو محدود کنیم. به طور مثال:
1️⃣ با memory.max میتونیم حداکثر میزان RAM قابل استفاده رو تعیین کنیم. مثلاً مقدار 536870912 یعنی محدودیت ۵۱۲ مگابایت.
2️⃣ گزینه cpu.max برای کنترل میزان مصرف CPU استفاده میشه. مثلاً مقدار 50000 100000 به معنی استفاده از ۵۰٪ ظرفیت CPU هست.
3️⃣ با pids.max میتونیم تعداد پراسس هایی که داخل یک cgroup ایجاد میشن رو محدود کنیم. مثلاً مقدار 50 یعنی فقط ۵۰ پراسس مجاز هستن.
4️⃣ و در نهایت، با io.max میتونیم سرعت دسترسی به دیسک رو کنترل کنیم. مثلاً rbps=1048576 یعنی حداکثر سرعت خواندن از دیسک یک مگابایت بر ثانیه خواهد بود.
🧪 ایجاد یک cgroup
در این مرحله میخوایم بهصورت دستی یک cgroup بسازیم و محدودیت RAM را روی پراسس فعلی اعمال کنیم:
از این لحظه به بعد، پراسس فعلی فقطمجازه که از ۵۱۲ مگابایت RAM استفاده کنه.
🐳 و containerd کجای ماجراست؟
ابزارهای مدرنی مثل Docker، در پشت صحنه از
✍️ جمع بندی
در پست بعدی، در مورد namespaceها توضیح میدیم؛ ابزاری که باعث میشه پراسس ها بتونن محیط مجزای خودشون رو داشته باشن (مثلاً PID یا network مجزا).
اگر سوالی درباره cgroups یا محدودسازی منابع داشتید توی کامنتها با ما در میون بزارید.
➖➖➖➖➖➖➖➖➖➖
در این مجموعه پستها قصد داریم با کنار هم گذاشتن اجزای پایه های لینوکس، یک container runtime مینیمال مشابه Docker بسازیم. تو این مسیر، با مفاهیم کلیدی مثل namespaceها، cgroups، mount isolation، و root filesystem کار میکنیم تا پایه لینوکس خودمون رو تقویت کنیم.
🧩 cgroups چیست و چرا مهم هست؟
Control Groups
یا بهاختصار cgroups
مکانیزمی در لینوکس هست که اجازه میده میزان منابع مصرفی یک یا چند پراسس را محدود کنیم.در ساختار یک کانتینر، این قابلیت باعث میشه که:
1️⃣ یک کانتینر بیش از سهم خود از CPU یا RAM استفاده نکنه.
2️⃣ فشار زیاد از سوی یک کانتینر باعث اختلال در کل سیستم نشه.
3️⃣ مدیریت منابع میان چند کانتینر با دقت بیشتری انجام بشه.
✅ چه چیزهایی را میشه با اون کنترل کرد؟
در cgroup نسخه ۲ میتونیم انواع مختلفی از منابع رو محدود کنیم. به طور مثال:
1️⃣ با memory.max میتونیم حداکثر میزان RAM قابل استفاده رو تعیین کنیم. مثلاً مقدار 536870912 یعنی محدودیت ۵۱۲ مگابایت.
2️⃣ گزینه cpu.max برای کنترل میزان مصرف CPU استفاده میشه. مثلاً مقدار 50000 100000 به معنی استفاده از ۵۰٪ ظرفیت CPU هست.
3️⃣ با pids.max میتونیم تعداد پراسس هایی که داخل یک cgroup ایجاد میشن رو محدود کنیم. مثلاً مقدار 50 یعنی فقط ۵۰ پراسس مجاز هستن.
4️⃣ و در نهایت، با io.max میتونیم سرعت دسترسی به دیسک رو کنترل کنیم. مثلاً rbps=1048576 یعنی حداکثر سرعت خواندن از دیسک یک مگابایت بر ثانیه خواهد بود.
🧪 ایجاد یک cgroup
در این مرحله میخوایم بهصورت دستی یک cgroup بسازیم و محدودیت RAM را روی پراسس فعلی اعمال کنیم:
# ساخت دایرکتوری برای cgroup
sudo mkdir /sys/fs/cgroup/mycontainer
# تنظیم محدودیت حافظه (۵۱۲ مگابایت)
echo 536870912 | sudo tee /sys/fs/cgroup/mycontainer/memory.max
# افزودن پراسس جاری به این cgroup
echo $$ | sudo tee /sys/fs/cgroup/mycontainer/cgroup.procs
از این لحظه به بعد، پراسس فعلی فقطمجازه که از ۵۱۲ مگابایت RAM استفاده کنه.
🐳 و containerd کجای ماجراست؟
ابزارهای مدرنی مثل Docker، در پشت صحنه از
containerd
برای اجرای کانتینرها استفاده میکنن. این ابزار مسئولیت تنظیم cgroupها، namespaceها و mountها را بر عهده داره. ما اما در این مجموعه، سعی میکنیم این مفاهیم رو بهصورت مستقیم و بدون واسطه تجربه کنیم.✍️ جمع بندی
در پست بعدی، در مورد namespaceها توضیح میدیم؛ ابزاری که باعث میشه پراسس ها بتونن محیط مجزای خودشون رو داشته باشن (مثلاً PID یا network مجزا).
اگر سوالی درباره cgroups یا محدودسازی منابع داشتید توی کامنتها با ما در میون بزارید.
#️⃣ #linux #containers #cgroups #build_your_own_docker
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
🔥4⚡1
🔧 چطور یک داکر برای خودمون بسازیم؟ – قسمت دوم
در قسمت قبل با cgroups آشنا شدیم و دیدیم چطور میتونیم مصرف منابع مثل RAM و CPU رو برای یک پراسس محدود کنیم. حالا وقتشه به سراغ دومین جزء اصلی کانتینرها بریم:
🧩 namespace چیه و چرا مهمه؟
Namespaceها مکانیزمی در کرنل لینوکس هستن که اجازه میدن یک پراسس (یا گروهی از اونها) نمای متفاوتی از بخشهای مختلف سیستم ببینن. به زبان سادهتر، با namespaceها میتونیم یک محیط ایزوله برای پراسسها بسازیم.
مثال:
1️⃣ هر کانتینر PIDهای خودش رو داشته باشه و PIDهای بیرونی رو نبینه.
2️⃣ فضای شبکهی مخصوص خودش رو داشته باشه، با IP و interface جدا.
3️⃣ فقط فایلهای خاصی از سیستم فایل رو ببینه، نه کل چیزی که روی سیستم هست.
📦 چه namespaceهایی به صورت دیفالت وجود داره؟:
-
-
-
-
-
-
-
🧪 چطور با یک namespace جدید پراسس هارو ایزوله کنیم؟
با استفاده از ابزار
حالا توی این شِل جدید اگر
🧩 چطور با cgroup ترکیبش کنیم؟
وقتی namespace رو با cgroup ترکیب کنیم، عملاً داریم پایهی یک کانتینر واقعی رو میسازیم: یه محیط ایزوله که هم منابعش محدوده، هم چیزی از بیرون نمیبینه.
🎯 مثال:
حالا که داخل شل جدید هستیم، میخوایم این پراسس جدید رو به cgroupای که قبلاً ساختیم اضافه کنیم. همونطور که گفتیم، باید این کار از داخل شل انجام بشه چون فقط از داخل میتونیم بهراحتی به PID فعلی (با $$) دسترسی داشته باشیم:
حالا برای اینکه چک کنیم محدودیت ها اعمال شدن از این دستور داخل شل استفاده میکنیم:
با این کار، شل جدید ما (و تمام پراسسهایی که از داخل اون اجرا میشن) تحت محدودیتهایی که برای cgroup تعریف کردیم قرار میگیرن مثل محدودیت RAM، CPU یا I/O. به این ترتیب، کمکم داریم ساختار اولیه یک container ساده رو شکل میدیم.
✍️ جمعبندی
در این پست با namespaceها آشنا شدیم و دیدیم چطور میتونن محیط یک پراسس رو از بقیهی سیستم جدا کنن به صورت عملی یه کانتینر خیلی جمع و جور ساختیم. در قسمت بعد، سراغ root filesystem و mount namespace میریم تا بتونیم فایلسیستم اختصاصی برای کانتینرمون بسازیم.
اگه سوالی درباره namespaceها داشتید توی کامنت ها با ما در میون بزارید.
➖➖➖➖➖➖➖➖➖➖
در قسمت قبل با cgroups آشنا شدیم و دیدیم چطور میتونیم مصرف منابع مثل RAM و CPU رو برای یک پراسس محدود کنیم. حالا وقتشه به سراغ دومین جزء اصلی کانتینرها بریم:
🧩 namespace چیه و چرا مهمه؟
Namespaceها مکانیزمی در کرنل لینوکس هستن که اجازه میدن یک پراسس (یا گروهی از اونها) نمای متفاوتی از بخشهای مختلف سیستم ببینن. به زبان سادهتر، با namespaceها میتونیم یک محیط ایزوله برای پراسسها بسازیم.
مثال:
1️⃣ هر کانتینر PIDهای خودش رو داشته باشه و PIDهای بیرونی رو نبینه.
2️⃣ فضای شبکهی مخصوص خودش رو داشته باشه، با IP و interface جدا.
3️⃣ فقط فایلهای خاصی از سیستم فایل رو ببینه، نه کل چیزی که روی سیستم هست.
📦 چه namespaceهایی به صورت دیفالت وجود داره؟:
-
pid
: برای جداسازی فضای پراسس ها (Process IDs) -
net
: برای جداسازی تنظیمات شبکه مثل interface، routing و ... -
mnt
: برای مدیریت جداگانهی mountها و filesystem -
uts
: برای جداکردن hostname و domainname -
ipc
: برای جداکردن فضای ارتباط بین پردازهها (مثل shared memory) -
user
: برای جداسازی فضای کاربری و دسترسیها -
cgroup
: برای اینکه هر پراسس فقط cgroup خودش رو ببینه 🧪 چطور با یک namespace جدید پراسس هارو ایزوله کنیم؟
با استفاده از ابزار
unshare
میتونیم پراسس جدیدی بسازیم که در namespaceهای جداگانه اجرا میشه. مثلاً برای اجرای یک شِل با PID namespace جداگانه:sudo unshare --pid --fork --mount-proc bash
حالا توی این شِل جدید اگر
ps
بگیریم، فقط پراسس خودمون رو میبینیم و PID ما از دید درون این namespace معمولاً 1
خواهد بود. 🧩 چطور با cgroup ترکیبش کنیم؟
وقتی namespace رو با cgroup ترکیب کنیم، عملاً داریم پایهی یک کانتینر واقعی رو میسازیم: یه محیط ایزوله که هم منابعش محدوده، هم چیزی از بیرون نمیبینه.
🎯 مثال:
# ساخت cgroup با محدودیت RAM
sudo mkdir /sys/fs/cgroup/mycontainer
echo 268435456 | sudo tee /sys/fs/cgroup/mycontainer/memory.max # ۲۵۶ مگابایت RAM
# اجرای یک شِل در namespace جدید با PID مجزا
sudo unshare --pid --fork --mount-proc bash
حالا که داخل شل جدید هستیم، میخوایم این پراسس جدید رو به cgroupای که قبلاً ساختیم اضافه کنیم. همونطور که گفتیم، باید این کار از داخل شل انجام بشه چون فقط از داخل میتونیم بهراحتی به PID فعلی (با $$) دسترسی داشته باشیم:
echo $$ | sudo tee /sys/fs/cgroup/mycontainer/cgroup.procs
حالا برای اینکه چک کنیم محدودیت ها اعمال شدن از این دستور داخل شل استفاده میکنیم:
cat /sys/fs/cgroup/mycontainer/memory.max
با این کار، شل جدید ما (و تمام پراسسهایی که از داخل اون اجرا میشن) تحت محدودیتهایی که برای cgroup تعریف کردیم قرار میگیرن مثل محدودیت RAM، CPU یا I/O. به این ترتیب، کمکم داریم ساختار اولیه یک container ساده رو شکل میدیم.
✍️ جمعبندی
در این پست با namespaceها آشنا شدیم و دیدیم چطور میتونن محیط یک پراسس رو از بقیهی سیستم جدا کنن به صورت عملی یه کانتینر خیلی جمع و جور ساختیم. در قسمت بعد، سراغ root filesystem و mount namespace میریم تا بتونیم فایلسیستم اختصاصی برای کانتینرمون بسازیم.
اگه سوالی درباره namespaceها داشتید توی کامنت ها با ما در میون بزارید.
#️⃣ #linux #containers #namespaces #build_your_own_docker
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
🔥5