Ninja Learn | نینجا لرن
1.26K subscribers
101 photos
38 videos
11 files
313 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.iss.one/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.iss.one/+td1EcO_YfSphNTlk
Download Telegram
چرا میگن بگیم "گنو/لینوکس" و نگیم "لینوکس"؟

با یه پست جدید در خدمتتونیم 😊
یکی از صحبت‌هایی که همیشه بین حرفه‌ای و تازه‌کارا شکل می‌گیره اینه که نباید بگیم

لینوکس بلکه باید بگیم گنو/لینوکس.
خب چرا؟
بیاید برگردیم به 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👍5👌1
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️کاربرهای سیستم عامل های مختلف:

تجربه ی کار با سیستم عامل های دیگه مثل BSD رو داشتین؟🤔

#️⃣ #linux #bsd #meme


🐧 CHANNEL | GROUP
🤣8
خب خب خب آشنایی با Windows Subsystem for Linux (WSL) 🐧

امروز می‌خوایم درباره‌ی یه ابزار کاربردی تو ویندوز حرف بزنیم: Windows Subsystem for Linux یا به اختصار WSL. اگه تا حالا باهاش کار نکردین، حتماً این پست رو بخونین، چون قراره کلی چیزای جدید یاد بگیرین


🧠 WSL چیه؟

Windows Subsystem for Linux (WSL)‏ یه ویژگی تو ویندوز ۱۰ و ۱۱ هست که به شما اجازه می‌ده یه محیط لینوکس رو مستقیماً روی ویندوز اجرا کنین. یعنی می‌تونین دستورات لینوکس رو اجرا کنین، فایل‌های لینوکس رو مدیریت کنین و حتی برنامه‌های لینوکسی رو اجرا کنین، همه اینا بدون اینکه نیاز به ماشین مجازی یا دوال بوت داشته باشین. این ابزار برای توسعه‌دهنده‌ها، به خصوص کسایی که با پروژه‌های open source کار می‌کنن، خیلی مفیده چون منابع کمتری نسبت به یه ماشین مجازی کامل مصرف می‌کنه و کار باهاش خیلی راحت‌تره.

📚 نسخه‌های WSL

‏WSL دو نسخه داره که هر کدوم ویژگی‌های خاص خودشون رو دارن:

1️⃣WSL 1:
این نسخه سال ۲۰۱۶ معرفی شد و یه لایه‌ی سازگاری بود که از کرنل ویندوز برای اجرای برنامه‌های لینوکسی استفاده می‌کرد. ولی چون از کرنل لینوکس واقعی استفاده نمی‌کرد، بعضی وقت‌ها محدودیت‌هایی داشت.

2️⃣‏ WSL 2:

این نسخه سال ۲۰۱۹ اومد و یه کرنل لینوکس واقعی رو تو یه ماشین مجازی سبک اجرا می‌کنه. به همین خاطر، عملکرد و سازگاری بهتری داره، به خصوص تو عملیات سنگین مثل کار با فایل‌ها.

‏WSL 2‏ از تکنولوژی Hyper-V (یه سیستم مجازی‌سازی تو ویندوز) استفاده می‌کنه و به همین دلیل توصیه می‌شه ازش استفاده کنین، چون امکانات بیشتری داره و سریع‌تره.


🚀 نصب WSL
نصب WSL خیلی سادست و بسته به نسخه‌ی ویندوزتون فرق می‌کنه:

تو ویندوز ۱۱:
‏WSL به صورت پیش‌فرض نصب شده، ولی باید یه توزیع لینوکس (مثل Ubuntu یا Debian) رو از Microsoft Store دانلود و نصب کنین.

تو ویندوز ۱۰:
باید WSL رو دستی نصب کنین. برای این کار، PowerShell رو با دسترسی Administrator باز کنین و دستور زیر رو اجرا کنین:

wsl --install


این دستور WSL رو همراه با یه توزیع پیش‌فرض (معمولاً Ubuntu) نصب می‌کنه. اگه می‌خواین توزیع دیگه‌ای نصب کنین، از این دستور استفاده کنین:

wsl --install -d <Distribution Name>


مثلاً برای نصب Debian:

wsl --install -d Debian


‏WSL‏ از توزیع‌های مختلفی مثل Ubuntu، Debian، Kali و Fedora پشتیبانی می‌کنه که می‌تونین هر کدوم رو که دوست دارین انتخاب کنین.


🛠 استفاده از WSL

با WSL، می‌تونین یه محیط توسعه‌ی کامل لینوکس رو تو ویندوز داشته باشین. چند تا مثال از کارایی که می‌تونین بکنین:

دستورات لینوکس:
از دستوراتی مثل ls (البته تو لینوکس dir نیست، اینجا منظورم ls-مانندها بود)، grep، awk و غیره استفاده کنین.

ویرایشگرهای متنی:
می‌تونین از Vim، Emacs یا حتی VS Code با افزونه‌ی WSL کار کنین.
ابزارهای توسعه: Git، Docker، Node.js و خیلی چیزای دیگه رو نصب و استفاده کنین.

سرورهای وب:
می‌تونین سرورهایی مثل Apache یا Nginx رو تو WSL اجرا کنین و با مرورگر ویندوز بهشون دسترسی داشته باشین.


📂 دسترسی به فایل‌ها

یکی از ویژگی‌های جذاب WSL اینه که می‌تونین بین ویندوز و لینوکس فایل‌هاتون رو به اشتراک بذارین:

از WSL به ویندوز:
فایل‌های ویندوز تو مسیر /mnt/c (یا /mnt/d برای درایوهای دیگه) قابل دسترسی هستن.

از ویندوز به WSL:
فایل‌های لینوکس رو می‌تونین تو File Explorer ویندوز از مسیر \\wsl$\<Distribution Name> ببینین.

برای عملکرد بهتر، پیشنهاد می‌شه فایل‌های پروژه‌تون رو تو فایل‌سیستم لینوکس (نه درایو ویندوز) نگه دارین، به خصوص اگه از WSL 2 استفاده می‌کنین.


🔍 نکات و ترفندها
عملکرد بهتر با WSL 2:
WSL 2 به خاطر استفاده از کرنل واقعی لینوکس و Hyper-V، تو عملیات سنگین مثل کار با فایل‌ها خیلی بهتر عمل می‌کنه.

مدیریت توزیع‌ها:
می‌تونین چند تا توزیع لینوکس نصب کنین و با دستور
 wsl -d <Distribution Name>

بینشون جابه‌جا بشین.

به‌روزرسانی WSL:
برای آپدیت کردن WSL، از این دستور استفاده کنین:
wsl --update

دسترسی به GPU:
WSL 2 از GPU پشتیبانی می‌کنه که برای کارهای ماشین لرنینگ یا گرافیکی عالیه.

محدودیت‌ها:
‏WSL از systemd پشتیبانی نمی‌کنه، که ممکنه برای بعضی سرویس‌ها مشکل‌ساز باشه، ولی راه‌حل‌های غیررسمی برای این موضوع وجود داره.


✍️ جمع‌بندی
Windows Subsystem for Linux (WSL) یه ابزار فوق‌العاده‌ست که به شما اجازه می‌ده ویندوز و لینوکس رو با هم داشته باشین. چه توسعه‌دهنده باشین، چه فقط بخواین لینوکس رو امتحان کنین، WSL یه راه سریع و ساده برای این کاره.

#️⃣ #porgramming #wsl #linux #windows


🥷 CHANNEL | GROUP
👍102❤‍🔥1👌1
فرآیند بوت شدن سیستم های لینوکسی 🚀
خب توی این پست فرآیند بوت شدن سیستم هایی که از لینوکس استفاده میکنن رو بررسی میکنیم.

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
👍10🔥1
Forwarded from Denver
🛠 چند 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
13