16.04.202507:48
🌀چطوری توی گرداب برنچ های مختلف دبیان غرق نشیم؟
احتمالا تا حالا شنیدید که دبیان سه تا شاخه(branch) توسعه داره: Stable, Testing, Unstable. چون معمولا از نسخه ی پایدار یا همون Stable استفاده میشه اون دوتای دیگه خیلی به چشم نمیان. توی این پست میخوایم تفاوت این نسخه ها و اینکه اصلا کاربرد این سه تا نسخه چیه رو بررسی کنیم.
Debian Stable قدیمی ولی قابل اعتماد✅
همونطور که از اسمش مشخصه، پایداری خوبی رو ارائه میده. به شدت تست شده و تا وقتی که خودتون نخواید هیچ چیز جدیدی نصب نمیکنه. دیر به دیر آپدیت میده اگر هم آپدیت بده زیاد آپدیت بزرگ و حماسی ای نمیده. برای کسایی که میخوان بدون هیچ دردسری از کامپیوترشون استفاده کنن عالیه. نکته ای که داره اینه که نرم افزار ها و پکیج ها توی این نسخه قدیمی هستن ولی به شدت قابل اعتمادن و میتونین تقریبا بهشون بگین بدون باگ!
Debian Stable به روز و قابل استفاده🔄
توی این نسخه خبری از ثبات کامل نیست اما نرم افزار ها نسبت به نسخه ی پایدار جدیدترن. درواقع نسخه های جدید نرم افزار ها قبل از اینکه وارد نسخه ی پایدار بشن مدتی رو توی این نسخه میمونن و باگ ها و مشکلاتشون با آپدیت برطرف میشه. برای کسایی که نرم افزار های نسبتا به روز میخوان ولی دوست ندارن هرروز کرش ببینن مناسبه.
Debian Unstable به روز ولی پرحاشیه⚠️
همه چی اول از اینجا شروع میشه! نسخه های آزمایشی پکیج ها، باگ ها، آپدیت های لحظه ای و ... برای کسایی که دوست دارن روی لبه ی تکنولوژی حرکت کنن، همیشه به روز ترین هارو داشته باشن و باگ براشون تفریحه. ممکنه یه آپدیت بده کاملا باگ و کار نکردن و ممکنه یه آپدیت بده کاملا درست و بدون باگ، قابل اعتماد نیست و باید انتظار باگ رو داشته باشین.
کدوم رو استفاده کنیم؟🤔
خب، اگه یه سیستم عامل بدون دردسر میخواین و با یکمی قدیمی بودن نرم افزار ها میتونین کنار بیاین یا برای سرور، دنبال سیستم عامل میگردین نسخه ی پایدار برای شماست.
اگه هم تحمل قدیمی بودن نرم افزار هارو ندارید و هم از باگ خیلی خوشتون نمیاد، شاخه ی تست بهترین انتخابه.
اگه میخواین لبه ی تکنولوژی باشین، دوست دارین زودتر از همه به ورژن های جدید نرم افزار ها دسترسی پیدا کنید و سر و کله زدن با باگ براتون تفریح حساب میشه میتونین نسخه ی ناپایدار رو امتحان کنید.
➖➖➖➖➖➖➖➖➖➖
احتمالا تا حالا شنیدید که دبیان سه تا شاخه(branch) توسعه داره: Stable, Testing, Unstable. چون معمولا از نسخه ی پایدار یا همون Stable استفاده میشه اون دوتای دیگه خیلی به چشم نمیان. توی این پست میخوایم تفاوت این نسخه ها و اینکه اصلا کاربرد این سه تا نسخه چیه رو بررسی کنیم.
Debian Stable قدیمی ولی قابل اعتماد✅
همونطور که از اسمش مشخصه، پایداری خوبی رو ارائه میده. به شدت تست شده و تا وقتی که خودتون نخواید هیچ چیز جدیدی نصب نمیکنه. دیر به دیر آپدیت میده اگر هم آپدیت بده زیاد آپدیت بزرگ و حماسی ای نمیده. برای کسایی که میخوان بدون هیچ دردسری از کامپیوترشون استفاده کنن عالیه. نکته ای که داره اینه که نرم افزار ها و پکیج ها توی این نسخه قدیمی هستن ولی به شدت قابل اعتمادن و میتونین تقریبا بهشون بگین بدون باگ!
Debian Stable به روز و قابل استفاده🔄
توی این نسخه خبری از ثبات کامل نیست اما نرم افزار ها نسبت به نسخه ی پایدار جدیدترن. درواقع نسخه های جدید نرم افزار ها قبل از اینکه وارد نسخه ی پایدار بشن مدتی رو توی این نسخه میمونن و باگ ها و مشکلاتشون با آپدیت برطرف میشه. برای کسایی که نرم افزار های نسبتا به روز میخوان ولی دوست ندارن هرروز کرش ببینن مناسبه.
Debian Unstable به روز ولی پرحاشیه⚠️
همه چی اول از اینجا شروع میشه! نسخه های آزمایشی پکیج ها، باگ ها، آپدیت های لحظه ای و ... برای کسایی که دوست دارن روی لبه ی تکنولوژی حرکت کنن، همیشه به روز ترین هارو داشته باشن و باگ براشون تفریحه. ممکنه یه آپدیت بده کاملا باگ و کار نکردن و ممکنه یه آپدیت بده کاملا درست و بدون باگ، قابل اعتماد نیست و باید انتظار باگ رو داشته باشین.
کدوم رو استفاده کنیم؟🤔
خب، اگه یه سیستم عامل بدون دردسر میخواین و با یکمی قدیمی بودن نرم افزار ها میتونین کنار بیاین یا برای سرور، دنبال سیستم عامل میگردین نسخه ی پایدار برای شماست.
اگه هم تحمل قدیمی بودن نرم افزار هارو ندارید و هم از باگ خیلی خوشتون نمیاد، شاخه ی تست بهترین انتخابه.
اگه میخواین لبه ی تکنولوژی باشین، دوست دارین زودتر از همه به ورژن های جدید نرم افزار ها دسترسی پیدا کنید و سر و کله زدن با باگ براتون تفریح حساب میشه میتونین نسخه ی ناپایدار رو امتحان کنید.
#linux #debian
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
19.03.202508:33
نصب 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
حالا 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
و داخل
init.lua
میتونی تنظیمات شخصی خودت رو اضافه کنی. 💬 جمعبندی
AstroNvim یه کانفیگ آماده هست با طراحی مدرن و افزونههای از پیش تنظیمشده. این کانفیگ به شما امکان میده تا با سرعت و کارایی بیشتری کدنویسی کنید و محیطی زیبا و کاملاً شخصیسازیشده داشته باشید. اگر به دنبال تجربهای بهینهتر از nvim هستید، AstroNvim بهترین انتخابه.
میتونید با مراجعه به وبسایت AstroNvim اطلاعات بیشتری درموردش کسب کنید.
#️⃣ #linux #terminal #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
12.03.202508:55
۱۰ ابزار خط فرمان که هر کاربر لینوکس باید بشناسه 🛠
ترمینال لینوکس پر از ابزارهای فوقالعادهایه که میتونه کارها رو سریعتر و راحتتر کنه. این ۱۰ ابزار قدرتمند تجربهی کار با لینوکس رو خیلی بهتر میکنن.
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
اجرا:
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 # نمایش فایل با رنگبندی
5️⃣ tldr راهنمای سریع و خلاصه برای دستورات 📖
🔹 اگر man توضیحات زیادی داره، tldr خلاصه و مثالهای کاربردی میده.
نصب:
sudo apt install tldr
مثال:
tldr tar # راهنمای سریع برای tar
6️⃣ ripgrep (rg) جستجوی سریع متن در فایلها 🔍
rg جایگزین سریعتر grep هست و استفاده ازش راحتتره.
نصب:
sudo apt install ripgrep
مثال:
rg "TODO" # جستجو در همه فایلهای پروژه
7️⃣ lsd نسخه مدرن و زیباتر ls 🎨
lsd جایگزین پیشرفتهی ls هست که آیکون فایلها رو نمایش میده و خروجی مرتبتری داره.
نصب:
sudo apt install lsd
مثال:
lsd -l # نمایش فایلها با جزئیات
8️⃣ fd جستجوی سریع فایلها 📁
fd جایگزین سریعتر و راحتتر find هست.
نصب:
sudo apt install fd-find
مثال:
fd ".py$" # پیدا کردن همه فایلهای .py در پروژه
9️⃣ tmux مدیریت همزمان چندین ترمینال🖥
tmux بهت اجازه میده چندین سشن ترمینال رو در یک صفحه مدیریت کنی. برای کار با سرورها فوقالعادهست!
نصب:
sudo apt install tmux
مثال:
tmux # اجرای tmux و شروع یک سشن جدید
🔟 bpytop مانیتورینگ گرافیکی سیستم 📊
bpytop اطلاعات پردازنده، رم، دیسک و شبکه رو با یه رابط گرافیکی زیبا نشون میده.
نصب:
sudo apt install bpytop
اجرا:
bpytop
جمعبندی ✍️
این ابزارها باعث میشن سرعت و کاراییت توی لینوکس افزایش پیدا کنه. کدوم یکی رو قبلاً استفاده کردی؟ اگر ابزار دیگهای میشناسی که باید تو این لیست باشه، بگو
#️⃣ #linux #terminal #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
04.03.202513:17
فایل سیستم، درخت زندگی سیستمهای لینوکسی 🌿🐧
فایل سیستم (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
24.02.202508:34
چرا میگن بگیم "گنو/لینوکس" و نگیم "لینوکس"؟
با یه پست جدید در خدمتتونیم 😊
یکی از صحبتهایی که همیشه بین حرفهای و تازهکارا شکل میگیره اینه که نباید بگیم
لینوکس بلکه باید بگیم گنو/لینوکس.
خب چرا؟
بیاید برگردیم به 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
14.04.202508:42
🔧 چطور یک داکر برای خودمون بسازیم؟ – قسمت دوم
در قسمت قبل با 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
حالا که داخل شل جدید هستیم، میخوایم این پراسس جدید رو به 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
17.03.202514:33
چطور برنامه های پرتابل یا فایل های اجرایی که پکیج نشدن نصب کنیم؟ 💻
همه ما برنامه ها و فایل هایی مواجه شدیم که اون هارو دانلود کردیم اما فقظ تونستیم اجرا بکنیم اما نه روی سیستممون نصب داریم نه توی سرچ برنامه ها میان حالا بیاین راه های نصبشون رو برسی کنیم
چند نوع برنامه پرتابل داریم؟🤔
این برنامه ها اواع مختلفی دارن که دو نوع خیلی مرسومشون رو برسی میکنیم
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 قرار بدید
نکات مهم⚠️:
در صورتی که موقغ اجرای برنامه دیدین ارور میده که یه نیازمندی نصب نیست میتونید با کامند زیر لیست نیازمندی ها رو ببینید و نصب کنید. اگر نبود به داکیومنت برنامه مراجعه کنین
💬 خوحال میشیم نظراتتون رو با ما در میون بزارید😉
#️⃣ #linux #install #portable
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
10.03.202512:24
📦 همه چیز درمورد کانتینرها
کانتینرها مثل "جعبههای نرمافزاری" هستن که همه چیز رو برای اجرای یک برنامه (مثلاً یک وبسرور یا اپلیکیشن) آماده میکنن. برخلاف ماشینهای مجازی (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
سپس با دستور
docker build -t my-app .
ایمیج رو بساز
📚 LXC/LXD: کانتینرهای "شبه VM"
LXC (Linux Containers) کانتینرهایی میسازه که بیشتر شبیه یه سیستم عامل کاملن مثلاً میتونی یه کانتینر اوبونتو داشته باشی و تقریباً همه کارهایی که توی یه VM میکنی رو انجام بدی.
مثال ایجاد کانتینر با LXD:
lxc launch ubuntu:22.04 my-container # ساخت کانتینر
🌟 مزایای کانتینرها:
1️⃣ پورتابل: یه بار بساز، همه جا اجرا کن (حتی روی سرور)
2️⃣ سریع: راهاندازی کانتینر ها خیلی سریع انجام میشه
3️⃣ صرفهجویی در منابع: دهها کانتینر میتونی روی یک سرور اجرا کنی بدون نیاز به سختافزار اضافه.
4️⃣ اسکیل آسان: با ابزارهایی مثل Kubernete**s میتونی هزاران کانتینر رو مدیریت کنی.
⚠️ نکات امنیتی:
کانتینرها کاملاً ایزوله نیستن اگر تنظیمات اشتباه باشه، ممکنه به سیستم یا سرور آسیب بزنن.
همیشه:
1️⃣ از Imageهای رسمی و معتبر استفاده کن.
2️⃣ کانتینرها رو با کاربر غیر root اجرا کن.
3️⃣ به کانتینرها دسترسی بیش از حد نده (مثلاً --privileged در Docker خطرناکه).
🎯 کاربردهای کانتینرها:
توسعه نرمافزار (DevOps و CI/CD)
اجرای میکروسرویسها (مثل وبسرور، دیتابیس و ...)
تست نرمافزار در محیطهای مختلف
ساخت محیطهای توسعه یکسان برای کل تیم
🔧 شروع کار با Docker روی لینوکس:
1️⃣ بر اساس توزیعت Docker رو نصب کن و اگر خواستی استارت اپش رو فعال کن:
sudo apt install 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
01.03.202510:35
خب امروز میخوایم اسنپ استور رو بررسی کنیم و ببینیم چرا خیلیا دوست ندارن ازش استفاده کنن. 🤔
❓ اسنپ چیه؟
اسنپ یه فروشگاه نرمافزاریه که از بستههای 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
09.04.202509:45
🛠 چند alias کاربردی برای هر کاربر لینوکس
حتما با alias ها آشنایی دارین، همون لقب دادن به دستوراتمون.
کاربردش چیه؟ میتونیم کلی دستور طولانی یا حتی دستورایی که تایپ کردنشون هر دفعه مثل یه کابوس میمونه رو توی دستور مورد نظر خودمون خلاصه کنیم.
با این aliasها توی فایل
🔗برای راحتی کار میتونید فایل آماده ی alias هارو از لینک زیر دانلود کنید:
فایل آماده ی alias ها
📌 نکته: بعد از اضافه کردن aliasها، فراموش نکن که ترمینالت رو یه بار ببندی و باز کنی یا دستور زیر رو وارد کنی:
➖➖➖➖➖➖➖➖➖➖
حتما با alias ها آشنایی دارین، همون لقب دادن به دستوراتمون.
کاربردش چیه؟ میتونیم کلی دستور طولانی یا حتی دستورایی که تایپ کردنشون هر دفعه مثل یه کابوس میمونه رو توی دستور مورد نظر خودمون خلاصه کنیم.
ساده تر بگیم، درواقع با اینکار داریم به شل(zsh, bash, fish) میگیم که دستور مورد نظر a معادل دستور طولانی b هست.
با این aliasها توی فایل
~/.bashrc
یا ~/.zshrc
میتونی کلی زمان تو ترمینال صرفهجویی کنی 💻⚡️# ====== System Management ======
🔗برای راحتی کار میتونید فایل آماده ی alias هارو از لینک زیر دانلود کنید:
فایل آماده ی alias ها
📌 نکته: بعد از اضافه کردن aliasها، فراموش نکن که ترمینالت رو یه بار ببندی و باز کنی یا دستور زیر رو وارد کنی:
source ~/.bashrc # or ~/.zshrc
#️⃣ #linux #terminal #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
16.03.202508:37
فرآیند بوت شدن سیستم های لینوکسی ⏳🚀
خب توی این پست فرآیند بوت شدن سیستم هایی که از لینوکس استفاده میکنن رو بررسی میکنیم.
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
28.02.202511:59
🟢 خب دوستان فایلهای تکراری یکی از مشکلاتیه که خیلی از ما باهاش مواجهیم. این فایلها نهتنها فضای اضافی میگیرن، بلکه سیستم رو شلوغ و نامرتب میکنن.
ما برای حل مشکل یه اسکریپت ساده نوشتیم که فایلهای تکراری رو پیدا میکنه، اونها رو حذف میکنه و به جای هر کدوم یه symlink (لینک نمادین) ایجاد میکنه تا ساختار فایل ها حفظ بشه و مشکلی توی اجرای برنامه ها نباشه
به عنوان ارگومنت یه path دریافت میکنه (اگر ندادی محل اجرای اسکریپت رو در نظر میگیره) و تمام زیر فولدر هارو برای فایل تکراری اسکن میکنه
🔗 این اسکریپت رو از این لینک میتونی دانلود کنی
نکته: نیازه قبل از اجرا بسته fdupes رو نصب کنی
💬 هر نظر و سوال یا بهبود کد مدنظرته باهامون به اشتراک بزار 😊
➖➖➖➖➖➖➖➖➖➖
مثال فایلهای تکراری مثل venv یا node_modules که چندین بار کپی شدن و فضای هارد رو اشغال کردن. (برای خودم نیم گیگ فضا اشغال کرده بود)
ما برای حل مشکل یه اسکریپت ساده نوشتیم که فایلهای تکراری رو پیدا میکنه، اونها رو حذف میکنه و به جای هر کدوم یه symlink (لینک نمادین) ایجاد میکنه تا ساختار فایل ها حفظ بشه و مشکلی توی اجرای برنامه ها نباشه
به عنوان ارگومنت یه path دریافت میکنه (اگر ندادی محل اجرای اسکریپت رو در نظر میگیره) و تمام زیر فولدر هارو برای فایل تکراری اسکن میکنه
🔗 این اسکریپت رو از این لینک میتونی دانلود کنی
نکته: نیازه قبل از اجرا بسته fdupes رو نصب کنی
💬 هر نظر و سوال یا بهبود کد مدنظرته باهامون به اشتراک بزار 😊
#️⃣ #script #suggest
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
05.04.202507:48
🗓 تقویم جلالی توی ترمینال لینوکس
دیگه تقریبا همه cal رو میشناسن، همون تقویم کوچیک و بامزه که میتونیم با دستور cal بهش دسترسی پیدا کنیم. ولی خب همونطور که میدونید این ابزار برای تقویم های میلادی طراحی شده و تقویم میلادی رو نشون میده.امروز که 5 آوریل 2025 هست خروجی این دستور این شکلیه:
برای نمایش تقویم یه سال خاص:
یا نمایش تقویم یه ماه مشخص:
که در این مثال، تقویم آوریل 2019 نمایش داده میشه.
🔥 jcal، تقویم جلالی برای لینوکس
jcal یه جایگزین پیشرفته برای cal هست که علاوه بر تقویم میلادی، تقویم شمسی (جلالی) رو هم نمایش میده.
📌 نصب jcal
میتونید خیلی راحت از طریق مدیر بسته ی توزیعتون نصبش کنین:
📌 استفاده از jcal
برای دیدن تقویم ماه جاری به همراه تقویم شمسی، این دستور رو اجرا کنید:
برای نمایش کل سال شمسی:
برای نمایش تقویم یک سال خاص:
و نمایش یک ماه مشخص از سال خاص:
که در این مثال، تقویم شهریور 1401 نمایش داده میشه.
💬 جمعبندی
اگه فقط به یه تقویم ساده میلادی نیاز دارید، cal براتون کافیه. اما اگه به دنبال نمایش تقویم شمسی هستید و میخواید یه ابزار بهتر داشته باشید، jcal انتخاب خوبیه. میتونید به صفحه ی گیتهاب این ابزار هم یه نگاهی بندازید.
➖➖➖➖➖➖➖➖➖➖
دیگه تقریبا همه cal رو میشناسن، همون تقویم کوچیک و بامزه که میتونیم با دستور cal بهش دسترسی پیدا کنیم. ولی خب همونطور که میدونید این ابزار برای تقویم های میلادی طراحی شده و تقویم میلادی رو نشون میده.امروز که 5 آوریل 2025 هست خروجی این دستور این شکلیه:
cal
برای نمایش تقویم یه سال خاص:
cal 2025
یا نمایش تقویم یه ماه مشخص:
cal 4 2019
که در این مثال، تقویم آوریل 2019 نمایش داده میشه.
🔥 jcal، تقویم جلالی برای لینوکس
jcal یه جایگزین پیشرفته برای cal هست که علاوه بر تقویم میلادی، تقویم شمسی (جلالی) رو هم نمایش میده.
📌 نصب jcal
میتونید خیلی راحت از طریق مدیر بسته ی توزیعتون نصبش کنین:
sudo apt install jcal #Debian
📌 استفاده از jcal
برای دیدن تقویم ماه جاری به همراه تقویم شمسی، این دستور رو اجرا کنید:
jcal
برای نمایش کل سال شمسی:
jcal -y
برای نمایش تقویم یک سال خاص:
jcal 1403
و نمایش یک ماه مشخص از سال خاص:
jcal 6 1401
که در این مثال، تقویم شهریور 1401 نمایش داده میشه.
💬 جمعبندی
اگه فقط به یه تقویم ساده میلادی نیاز دارید، cal براتون کافیه. اما اگه به دنبال نمایش تقویم شمسی هستید و میخواید یه ابزار بهتر داشته باشید، jcal انتخاب خوبیه. میتونید به صفحه ی گیتهاب این ابزار هم یه نگاهی بندازید.
#️⃣ #linux #terminal #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
14.03.202509:13
چجوری بازیهای ویندوز رو روی لینوکس اجرا کنیم؟🎮
اگه عاشق بازی هستین و در عین حال از سیستمعامل لینوکس استفاده میکنین، احتمالاً براتون سوال شده که چجوری میشه بازیهای ویندوز رو روی لینوکس اجرا کرد. خبر خوب اینه که راههای مختلفی برای این کار وجود داره پس با من همراه باشین تا بتونین بازیهای مورد علاقهتون رو روی لینوکس هم تجربه کنین
راههای اجرای بازیهای ویندوز روی لینوکس
برای اینکه بازیهای ویندوز رو روی لینوکس اجرا کنین، چند ابزار و روش اصلی وجود داره که هر کدوم ویژگیهای خاص خودشون رو دارن. بیاین این روشها رو با هم ببینیم:
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
07.03.202514:09
🔧 چطوری با TestDisk پارتیشن های حذف شده رو برگردونیم؟
🔸گاهی وقتا اشتباهی یه پارتیشن رو پاک میکنیم یا فایل ها هست اما سیستم بوت لودر رو شناسایی نمیکنه! چطور برش گردونیم؟ 🚀
مرحله ۱: نصب TestDisk
براساس توزیع تون پکیج testdisk رو نصب کنید
مرحله ۲: برنامه رو توی ترمینال با دسترسی sudo ران کنید:
مرحله ۳: انتخاب دیسک
🔸- لیست دیسکها میاد. مثلاً ممکنه اسم دیسک شما
- با کلیدهای بالا و پایین کیبورد، دیسک مدنظر رو انتخاب کنید و اینتر بزنید.
مرحله ۴: نوع جدول پارتیشن رو مشخص کنید
🔸- برای اکثر سیستم های معمولی (MBR یا GPT)، گزینه ی Intel رو انتخاب کنید و اینتر
مرحله ۵: اسکن و بازیابی
1️⃣ از منوی اصلی، گزینهی Analyse (تجزیه و تحلیل) رو انتخاب کنید.
2️⃣ صبر کنید تا TestDisk دیسک رو اسکن کنه. ممکنه چند دقیقه طول بکشه☕️
3️⃣ وقتی پارتیشن حذفشده پیدا شد، روشنش کنید (با کلید → و اینتر).
4️⃣ حالا گزینهی Write (نوشتن) رو بزنید تا تغییرات ذخیره بشن.
5️⃣ سیستم رو ریاستارت کنید و نتیجه رو ببینید!
هشدارهای مهم ❗️
- قبل از هر کاری، از داده هاتون بکاپ بگیرید! ممکنه اشتباهی اوضاع بدتر بشه!
- اگر پارتیشن تو لیست نیست، از منوی اصلی گزینهی Deeper Search رو امتحان کنید (اسکن عمیقتر).
- اگر مطمئن نیستید، Write نزنید! اول با یه آدم باتجربه مشورت کنید.
اگر سیستم اصلاً بوت نمیشه چی؟
🔸- یه USB لایو لینوکس بسازید و از اون بوت کنید بعد TestDisk رو نصب کرده و همین مراحل رو تکرار کنید.
💬 هر نظری داشتید خوشحال میشیم با ما در میون بزارید
➖➖➖➖➖➖➖➖➖➖
🔸گاهی وقتا اشتباهی یه پارتیشن رو پاک میکنیم یا فایل ها هست اما سیستم بوت لودر رو شناسایی نمیکنه! چطور برش گردونیم؟ 🚀
مرحله ۱: نصب TestDisk
براساس توزیع تون پکیج testdisk رو نصب کنید
مرحله ۲: برنامه رو توی ترمینال با دسترسی sudo ران کنید:
مرحله ۳: انتخاب دیسک
🔸- لیست دیسکها میاد. مثلاً ممکنه اسم دیسک شما
/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
Показано 1 - 17 из 17
Войдите, чтобы разблокировать больше функциональности.