۱۰ ابزار خط فرمان که هر کاربر لینوکس باید بشناسه 🛠
ترمینال لینوکس پر از ابزارهای فوقالعادهایه که میتونه کارها رو سریعتر و راحتتر کنه. این ۱۰ ابزار قدرتمند تجربهی کار با لینوکس رو خیلی بهتر میکنن.
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
نصب 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
میرور ها توی لینوکس🐧
حتما توی استفاده از لینوکستون از دستور های آپدیت پکیج منیجر ها(مثل apt update) استفاده کردید. دستور هایی که نسخه های پکیج های مختلف نرم افزاری رو از مخزن بسته ها دریافت میکنن و اگه نیاز به بروزرسانی داشته باشن براتون بروزرسانی انجام میدن. ولی این مخزن ها چی هستن؟
Mirror ها یا مخازن🪞
هر پکیج منیجر یه مخزن یا به اصطلاح Mirror داره. مخزن ها سرورهایی هستن که نسخه های مشابهی از یه پکیج نرم افزاری رو نگه میدارن. این مخزن ها توی سراسر دنیا هستن و یه جورایی پخش شدن. اینجوری دیگه همه ی کاربرا از فقط یه سرور استفاده نمیکنن. توی نقاط مختلف ایران مخزن های مختلفی وجود داره تا دانلود ها سریع تر و پایدار بشن.
مثلا:
اینجا apt میره از یکی از مخزن ها پکیج vim رو میگیره و نصب میکنه.
چرا این همه Mirror به وجود اومدن؟🤔
اگه این مخازن توی نقاط مختلف پخش نشده بودن یا فقط یه سرور واحد وجود داشت، با درخواست آپدیت همزمان کاربرا سرعت دانلود میومد پایین و همچنین دانلود ناپایدار بود. اما اینجوری هرکی میتونه مخزن مناسب خودش(مثلا نزدیک به محل زندگیش یا کشور خودش) رو انتخاب کنه و پکیج هاشو از اونجا دانلود کنه.
اینجوری بار این همه درخواست بین سرورهای مختلف تقسیم میشه و سرعت و پایداری هم بالا میره. توی بعضی موارد(مثل کالی یا فدورا) هم میتونیم با عوض کردن مخازن تحریم هارو دور بزنیم.
چطوری نسخه ها هماهنگ میمونن؟🔄
وقتی دستور apt update رو میزنید، سیستم میره سراغ فایلهایی مثل Packages.gz و Release توی مخزن (repository) که لیست کامل بستهها، نسخهها و هشها رو نگه میدارن. این فایلها از سرورهای مخزن ها میان، ولی اصلشون از مخزن اصلی (مثلاً deb.debian.org) تولید میشه. حالا میرورها با استفاده از ابزارهایی مثل rsync یا apt-mirror بهصورت خودکار و منظم با مخزن اصلی همگام میشن و فقط فایلهای جدید یا تغییر کرده رو میگیرن. اینطوری همه میرورها تقریباً همیشه نسخهی هماهنگی از پکیجها دارن و وقتی چیزی نصب میکنید، از نزدیکترین یا سریعترین میرور دانلود میشه.
پکیج ها توی مخازن دستکاری نمیشن؟🔐
برای اینکه هیچکس نتونه پکیج های داخل مخزن ها رو دستکاری کنه یا نسخه ی مخرب آپلود کنه، هر پکیج با کلید دیجیتال(GPG) امضا میشه. وقتی از دستورهای آپدیت استفاده میکنین سیستم فایل Release.gpg رو بررسی میکنه که امضای دیجیتال پکیج هارو توی خودش داره. این امضا فقط با کلید رسمی توزیع قابل اعتبار سنجیه.
پکیج منیجر هش هر پکیج رو با چیزی که توی فایل Packages.gz ثبت شده مقایسه میکنه، اگه حتی یه بیت از پکیج دستکاری شده باشه هش تایید نمیشه و پکیج نصب نمیشه.
جمع بندی✍️
میرورها نسخههای کپیشدهای از مخزنهای اصلی لینوکس هستن که با ابزارهای خودکار مرتب همگامسازی میشن. اینطوری دانلود پکیجها سریعتر، پایدارتر و در دسترستر میشه. امنیت پکیجها هم با امضای دیجیتال و بررسی هش تضمین میشه، پس حتی اگه یه میرور دستکاری بشه، سیستم متوجه میشه و نصب رو متوقف میکنه.
➖➖➖➖➖➖➖➖➖➖
حتما توی استفاده از لینوکستون از دستور های آپدیت پکیج منیجر ها(مثل apt update) استفاده کردید. دستور هایی که نسخه های پکیج های مختلف نرم افزاری رو از مخزن بسته ها دریافت میکنن و اگه نیاز به بروزرسانی داشته باشن براتون بروزرسانی انجام میدن. ولی این مخزن ها چی هستن؟
Mirror ها یا مخازن🪞
هر پکیج منیجر یه مخزن یا به اصطلاح Mirror داره. مخزن ها سرورهایی هستن که نسخه های مشابهی از یه پکیج نرم افزاری رو نگه میدارن. این مخزن ها توی سراسر دنیا هستن و یه جورایی پخش شدن. اینجوری دیگه همه ی کاربرا از فقط یه سرور استفاده نمیکنن. توی نقاط مختلف ایران مخزن های مختلفی وجود داره تا دانلود ها سریع تر و پایدار بشن.
مثلا:
sudo apt update
sudo apt install vim
اینجا apt میره از یکی از مخزن ها پکیج vim رو میگیره و نصب میکنه.
چرا این همه Mirror به وجود اومدن؟🤔
اگه این مخازن توی نقاط مختلف پخش نشده بودن یا فقط یه سرور واحد وجود داشت، با درخواست آپدیت همزمان کاربرا سرعت دانلود میومد پایین و همچنین دانلود ناپایدار بود. اما اینجوری هرکی میتونه مخزن مناسب خودش(مثلا نزدیک به محل زندگیش یا کشور خودش) رو انتخاب کنه و پکیج هاشو از اونجا دانلود کنه.
اینجوری بار این همه درخواست بین سرورهای مختلف تقسیم میشه و سرعت و پایداری هم بالا میره. توی بعضی موارد(مثل کالی یا فدورا) هم میتونیم با عوض کردن مخازن تحریم هارو دور بزنیم.
چطوری نسخه ها هماهنگ میمونن؟🔄
وقتی دستور apt update رو میزنید، سیستم میره سراغ فایلهایی مثل Packages.gz و Release توی مخزن (repository) که لیست کامل بستهها، نسخهها و هشها رو نگه میدارن. این فایلها از سرورهای مخزن ها میان، ولی اصلشون از مخزن اصلی (مثلاً deb.debian.org) تولید میشه. حالا میرورها با استفاده از ابزارهایی مثل rsync یا apt-mirror بهصورت خودکار و منظم با مخزن اصلی همگام میشن و فقط فایلهای جدید یا تغییر کرده رو میگیرن. اینطوری همه میرورها تقریباً همیشه نسخهی هماهنگی از پکیجها دارن و وقتی چیزی نصب میکنید، از نزدیکترین یا سریعترین میرور دانلود میشه.
پکیج ها توی مخازن دستکاری نمیشن؟🔐
برای اینکه هیچکس نتونه پکیج های داخل مخزن ها رو دستکاری کنه یا نسخه ی مخرب آپلود کنه، هر پکیج با کلید دیجیتال(GPG) امضا میشه. وقتی از دستورهای آپدیت استفاده میکنین سیستم فایل Release.gpg رو بررسی میکنه که امضای دیجیتال پکیج هارو توی خودش داره. این امضا فقط با کلید رسمی توزیع قابل اعتبار سنجیه.
پکیج منیجر هش هر پکیج رو با چیزی که توی فایل Packages.gz ثبت شده مقایسه میکنه، اگه حتی یه بیت از پکیج دستکاری شده باشه هش تایید نمیشه و پکیج نصب نمیشه.
جمع بندی✍️
میرورها نسخههای کپیشدهای از مخزنهای اصلی لینوکس هستن که با ابزارهای خودکار مرتب همگامسازی میشن. اینطوری دانلود پکیجها سریعتر، پایدارتر و در دسترستر میشه. امنیت پکیجها هم با امضای دیجیتال و بررسی هش تضمین میشه، پس حتی اگه یه میرور دستکاری بشه، سیستم متوجه میشه و نصب رو متوقف میکنه.
#️⃣#linux #terminal #tools
➖➖➖➖➖➖➖➖➖➖
🐧 CHANNEL | GROUP
👍2