کانال مهرداد لینوکس – Telegram
کانال مهرداد لینوکس
3.5K subscribers
713 photos
24 videos
8 files
550 links
لینوکس حرفه ای و اخبار فنی به زبان ساده
تمام محتوای کانال تحت مجوز کرییتیو کامنز (Creative Commons license) CC BY قابل استفاده است

هشتگ:
#Linux
#AI
#Python
#Programming
#DevOps
#دیوار_لینوکس
#Utility
Download Telegram
کانال مهرداد لینوکس
🔥 میدانیم امکان کامپایل کد های زبان C و اجرا روی یک فایل PDF و word وجود داره اما تا چه حد دست بازه ؟ جواب خیلی برای درک بهتر به عنوان مثال : اجرای بازی Doom روی PDF بازی Doom بیش از 30 سال پیش برای اولین بار برای MS-DOS منتشر شده روی پلتفرم‌ها و بسترهای…
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 پروژه DoomPDF را یادتونه ؟ این بار اجرای لینوکس داخل PDF 😎

به کمک emulator معماری RISC-V
میتوانید آنلاین تست کنید

فرمت PDF از جاوااسکریپت با کتابخانه‌ی استاندارد خودش پشتیبانی می‌کنه. مرورگرهای مدرن (کرومیوم، فایرفاکس) این رو به عنوان بخشی از موتورهای PDF خودشون پیاده‌سازی کردن. با APIهای خیلی محدود

نوع کامل JS در فایل‌های PDF فقط توسط Adobe Acrobat پیاده‌سازی شده و شامل چیزهای عجیبی مثل قابلیت رندر سه‌بعدی، ارسال درخواست HTTP و تشخیص نمایشگرهای متصل به سیستم کاربره.
🚨در مرورگرها، به دلیل نگرانی‌های امنیتی، فقط یه زیرمجموعه‌ی کوچیک از این API پیاده‌سازی شده.

کد C رو میشه با استفاده از یه نسخه‌ی قدیمی از Emnoscripten که asm.js رو به جای WebAssembly استفاده میکنه، کامپایل کرد تا توی یه فایل PDF اجرا بشه
با این کار، یه نسخه‌ی از شبیه‌ساز TinyEMU RISC-V که با asm.js کامپایل شده می‌تونه توی PDF اجرا بشه

⚠️ چیزی که در فیلم است برای من اجرا نشد حتی سعی کردم با Adobe Acrobat Reader تست کنم چون ویندوز نداشتم با wine تست کردم خیلی خطا داشت. تست کردید توی کامنت ها بنویسید

❤️ ممنون از حمایت هاتون 💐🌺
🤯10🔥6
🔥تعریف دوباره حریم خصوصی!!
⁉️چت کردن بدون ID، بله حتی بدون RandomID 😎
⚠️در نرم افزار های Signal, Matrix, Sessionو ... شما ID دارید

ولی در simplex نه

چرا داشتن ID برای حریم خصوصی بده؟
وقتی شما همیشه یک ID دارید، حتی تصادفی، این امکان وجود داره مهاجم نحوه اتصال کابر، تعداد پیام و ... را ببینه و با وصل کردن این اطلاعات به دیگر شبکه های اجتماعی هویت واقعی را تعیین کنه.
حتی برنامه هایی که از Tor V3 استفاده می کنند، اگر با دو مخاطب مختلف از طریق همان پروفایل صحبت کنید ، می توان ثابت کرد که با یک نفر دارید صحبت میکنید
نرم افزار Simplex با نداشتن شناسه کاربری در طراحی خود در برابر این حملات محافظت می کند.
و اگر از حالت ناشناس استفاده می کنید ، برای هر مخاطب نام نمایش متفاوتی خواهید داشت و از هرگونه داده مشترک بین آنها جلوگیری می کنید.

نرم افزار simplex چطور کار میکنه؟
نرم افزار Simplex از anonymous pairwise identifiers of message queues استفاده می کند
از نشت ابرداده های کاربران در سطح برنامه جلوگیری،حریم خصوصی بهبود میدهد
پیام ها با 2-layer End-to-end encryption ارسال می شوند.


❤️ ممنون از حمایت هاتون 💐🌺
🔥95🤯5
مشاهده و تحلیل ارتباط HTTP و HTTPS با httptap
🔥 قابلیت برسی HTTP endpoints و مخصوصا برسی مشکلات DNS-over-HTTP(doh)
🗓قابلیت هدایت خروجی ابزار های دیگر مخصوصا Python
💠 گرفتن خروجی HAR برای آنالیز در سایت هایی مثل toolbox.googleapps.com
شروع تست :
httptap -- curl -sL https://digikala.com -o /dev/null
---> GET https://digikala.com/
<--- 301 https://digikala.com/ (166 bytes)
---> GET https://www.digikala.com/
<--- 200 https://www.digikala.com/ (7768 bytes)

یا در پایتون
httptap -- python -c "import requests; requests.get('https://x.com/Mehrdadlinux')"

میخواهید HTTP endpoints های CLI ی Google Cloud را ببنید یا kubectl از Kubernetes یا ...
$ httptap -- gcloud compute instances list
---> POST https://oauth2.googleapis.com/token
<--- 200 https://oauth2.googleapis.com/token (997 bytes)

از مهمترین آپشن ها --doh-url است برای تحلیل DNS-over-HTTP همراه با
📒 اپشن -v را برای توضیحات بیشتر
httptap --dump-har out.har -- curl -Lso /dev/null https://www.digikala.com

❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی
#Utility
👍12🔥4
🔥 ساخت عکس از کدهای برنامه نویسی یا خروجی ترمینال با freeze

گرفتن یک Screenshot تمیز از کد یا ترمینال لینوکس با ابزار های مختلف کمی سخته
اما نه با ابزار freeze 😎 به راحتی فقط با یک دستور یک خروجی عالی تهیه کنید

🗓 برای گرفتن عکس از خروجی یک کامند :
freeze --execute "eza -lah"

🗓 برای گرفتن عکس از یک قطعه کد :
freeze MehrdadLinux.py

🟡 یک ویژگی فوق العاده آپشن
freeze --interactive

که به شما اجازه تنظیم فونت رنگ اندازه تم و ... را میدهد
بخش Readme پروژه کامله بخونید Help خوبی هم داره و میتوانید فایل کانفیگ بسازید زبان مشخص کنید و ...
حتی TUI هم ساپورت میکنه 🫠
برای نصب :
brew install charmbracelet/tap/freeze
go install github.com/charmbracelet/freeze@latest

❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی #Utility #linux #لینوکس
👍13🔥41
اگر تحت تاثیر ویژگی developer-specific ویندوز سرور 2025 به اسم Dev Drive که از فناوری ReFS (که در سرور 2012 معرفی و از ویندوز ۸ به دسکتاپ اضافه شده) قرار گرفته اید

در مورد ZFS و BTRFS بیشتر مطالعه کنید😏
🤬و سر لایسنس ZFS هم به Oracle فحش بدید

اگر علاقه داشتید یک زمانی در موردش مینویسم
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 نرم افزار isd (interactive systemd) روشی بهتر برای کار با units های systemd

اگر با SystemD آشنایی ندارید اینجا و اینجا قبلا توضیح دادم

🗓 نرم افرار ISD یک TUI است که جستجوی فازی برای units ، پیش نمایش های auto-refreshing ، کار با sudo به صورت هوشمند و یک رابط کاملاً قابل تنظیم برای کاربران حرفه ای و تازه واردان را به طور یکسان ارائه می دهد.

💠 مستندات پروژه :
در اینجا میتوانید دسترسی داشته باشید

💠 نصب :
هم با UV نصب میشه هم با NIX من پیشنهادم AppImage است که تست کنید دوست داشتید نصب کنید
اگر سوالی برای نصب دارید اینجا کلیک کنید

❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی #لینوکس #Utility#linux
👍8
😰 دستورها و آپشن کامندها یادت میره ؟
خواندن صفحه‌های manpage برات سخته ؟ 😭

🔥نگران نباش صفحات TLDR یک تلاش جامعه محور برای ساده کردن man pages با نمونه های عملیه
🗓 کافیه tldr را نصبش کنی
npm install -g tldr
pip3 install tldr
brew install tlrc

🗓برای استفاده هم :
مثلا برای دستور tar
tldr tar

تازه کتاب هم داره میتونی از اینجا دانلود کنی
📒نسخه فارسی هم از اینجا
⚠️ با دستور زیر میتوانید دیتابیس را اپدیت کنید
فقط حواستون باشه اولین بار یه
tldr -u 

بزنید که دیتابیسش اپدیت شه
⚖️ معادل های و دستورات مشابه tealdeer

❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی #لینوکس #Utility#linux
👍16🙏1
دیگه History دستورات لینوکس و ویندوز را نگرد
🔥 ابزار intelli-shell یک code-completion مثل IntelliSense برای ترمینال لینوکس است 😎
💠 برای Bash, Zsh, Fish حتی PowerShell هم کار میکنه
💠 برای Linux و,MacOS حتی Windows 😁

نصب :
mkdir -p ~/.local/share/intelli-shell/bin
curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.sh > ~/.local/share/intelli-shell/bin/intelli-shell.sh

روش استفاده :
با دستور زیر دستورات tldr را دانلود و ذخیره میکنه
 intelli-shell fetch

با دستور export و import خروجی میگیره و بک آپ شما را برمیگردانه
شورت کات های مهم:
ctrl + b bookmark دستور جاری
ctrl + space نمایش پیشنهاد ها
ctrl + l جایگذاری labelsبا
ctrl + d حذف کردن
ctrl + e یا ctrl + u یا F2 ویرایش

🔥از این آسون تر؟
❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی #لینوکس #Utility#linux
17🔥4👍2
🔥برگه راهنمای دستورات مهم شبکه، درلینوکس
سیو کنید داشته باشید به کارتون میاد

دستور ها سخته؟
قبلا در مورد
صفحات TLDR و IntelliSense صحبت کردیم کار را خیلی راحت کرده اگر آشنایی ندارید
روی لینک ها کلیک کنید توضیح دادم

🔥از این آسون تر؟😎

❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی #لینوکس #Utility#linux
#cheat_sheet
🔥15👍6🙏2
پایتون ۳.۱۴ و مفسر Tail-Call
یکی از ویژگی های مهم نسخه بعدی Python
پشتیبانی از Tail-Call Optimization (TCO) است.

📈یک تکنیک بهینه‌سازی برای اجرای کارآمدتر کد کاهش هزینه‌ی اجرای توابع بازگشتی

🗓 مفسر CPython از TCOپشتیبانی نمی‌کنه، چون پایتون روی Debugging و traceback خوانا متمرکزه
در نسخه‌ی جدید Tail-Call Interpreter جدید اضافه شده

🔥 درک مفهوم Tail Call
ویژگی Tail Call به فراخوانی تابعی گفته می‌شود که آخرین عملیات قبل از بازگشت مقدار در تابع باشد. به عنوان مثال:
def tail_recursive(n, acc=1):
if n == 0:
return acc
return tail_recursive(n - 1, acc * n) # این یک Tail Call است


💠 به‌طور معمول، در هر فراخوانی جدید، یک فریم جدید روی پشته‌ی فراخوانی (Call Stack) ذخیره می‌شود. این موضوع باعث مصرف زیاد حافظه و احتمال رخ دادن خطای Stack Overflow در بازگشت‌های عمیق می‌شود.

💠 در Tail-Call Optimization (TCO)، به‌جای ایجاد یک فریم جدید برای هر فراخوانی، همان فریم قبلی مجدداً استفاده می‌شود. این کار از پر شدن پشته جلوگیری کرده و عملکرد را بهبود می‌بخشد.

❤️ ممنون از حمایت هاتون 💐🌺
#Python
#پایتون
7👍4🔥2
سوریه اولین کنفرانس بین المللی tech خودش را بعد از 50 سال اجرا کرد
کار آفرین های سوریه ای-امریکایی و سرمایه گذار ها امیدوار هسند 25,000 هزار شغل جدید در سوریه ایجاد کنند
https://sync.sy/syria/
تفسیر خبر با شما ...
توضیحات بیشتر
🔥9👍5
مدیر بسته Pip در Python بسته‌های نرم‌افزاری را از
PyPI (Python Package Index)
نصب، به‌روزرسانی و حذف میکنه.
☑️در pip install، از براکت‌ها [ ] برای نصب نسخه‌های خاص یا افزونه‌ها (extras) یک بسته استفاده میشه
pip install requests[security]

در اینجا، پکیج requests به همراه بسته‌های اضافی مرتبط با ویژگی‌های امنیتی نصب میشه

⚠️ در شل ZSH در لینوکس
اگر بخواهید از [] در شل ZSH استفاده کنید چون ZSH از [] برای globbing / pattern matching استفاده میکنه باید به صورت :
pip install 'requests[security]'

استفاده بشه
💡این از یک Tips and Tricks پایتونی لینوکس امیدوارم مفید باشه
به نظر شما باز هم از این نکات و ترفندها بنویسم؟


❤️ ممنون از حمایت هاتون 💐🌺
#Python #پایتون
19👍7
کانفیگ Nginx خیلی ساده است
ولی چقدر مشکلات امنیتی را برسی کردی؟ SSRF ، HTTP Splitting و ...

🔥 معرفی ابزار GIXY به عنوان یک تحلیل گر Nginx configuration با هدف جلوگیری از security misconfiguration و تشخیص خودکار نقصها

ابزار Nginx یک وب‌سرور نرم افزار آزاد / متن‌باز که به عنوان
سرویس‌دهنده وب Web server،
پراکسی معکوس reverse proxying،
سیستم کش caching،
سیستم load balancing،
استریمینگ media streaming
تعادل بار load balancer
ایمیل پروکسی mail proxy
وب کش HTTP cache
و …
استفاده میشه


اول نصب کنید
pip install gixy       نسخه قدیمی
pip install gixy-ng نصب نسخه آپدیت فورک شده

و راحت استفاده کنید
gixy /etc/nginx/nginx.conf

برای آپدیت بودن میتوانید از این فورک استفاده کنید چون نسخه اصلی چند وقتی است فعال نیست
با تشکر از مهدی عزیز برای یاد آوری

❤️ ممنون از حمایت هاتون 💐🌺
#security #devops #linux
👍20🔥7
🔥 مناظرهٔ تاننباوم–توروالدز «LINUX منسوخ شده است»

🗓بین اندرو اس. تاننباوم، خالق سیستم‌عامل آموزشی مینیکس
🗓 و لینوس توروالدز، خالق هستهٔ لینوکس، بود.
💠این مناظره در گروه خبری Usenet به نام comp.os.minix در سال ۱۹۹۲ رخ داد

موضوع سر معماری هسته‌های سیستم‌عامل، به‌ویژه مقایسهٔ هسته‌های یکپارچه (monolithic) و ریزهسته‌ها (microkernel)، تمرکز داشت.

🔥 تاننباوم بحث را با استدلال اینکه طراحی هستهٔ یکپارچهٔ لینوکس از نظر مفهومی قدیمی و ریزهسته‌ها به دلیل قابلیت حمل و پایداری، برتر هستند آغاز کرد
و گفت معماری پردازنده‌های x86 که لینوکس بر پایهٔ آن توسعه یافته، در آینده جای خود را به معماری‌های RISC خواهد داد.

🔥 توروالدز در پاسخ، ضمن اذعان به مزایای نظری ریزهسته‌ها، از تصمیم خود برای استفاده از هستهٔ یکپارچه دفاع کرد.
او اشاره کرد که مینیکس دارای محدودیت‌هایی مانند نبود پشتیبانی از چندنخی (multithreading) و هدف او از توسعهٔ لینوکس، ایجاد یک سیستم‌عامل کاربردی برای استفادهٔ شخصی بوده است.

با گذشت زمان،
هر دو مدل هسته در حوزه‌های مختلف به کار گرفته شدند

منبع wikipedia
#linux
15👍6
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 دسترسی به برگه‌راهنمای (Cheat sheet) نرم افزارها در ترمینال با navi
دیگه لازم نیست دنبال دستورات در Cheat sheet ها بگردید
مستقیم در ترمینال دستورات به فرمان شما
🗓نصب :
در اکثر مدیر بسته ها در دسترس است ولی پیشنهاد
brew install navi

مخازن را آپدیت کنید (خشاب ها را پر کنید 🤠)
$ navi repo browse
$ navi و بزن تمام

حتی میتوانید از tldr یا cheat.sh هم بخونید
navi --cheatsh docker

اگر با نرم افزار cheatshh کار کرده باشید از نرم افزار navi لذت زیادی خواهید برد
❤️ ممنون از حمایت هاتون 💐🌺
#linux
👍122🔥2
😎میخواهی بتونی هر محتوای ویدئویی را که در 30 سال گذشته ساخته شده را پردازش، ویرایش و تبدیل کنی؟!!!
🔥استاد ویرایش و تبدیل انواع فرمت فیلم فقط FFmpeg
ویندوز، لینوکس، مک، اندروید و iOS
یک بار برای همیشه یادبگیر
سری آموزش FFMPEG شماره ۱

🗓 نصب :
در لینوکس در نصاب ها (مثل apt) به سادگی در دسترس هستند

💠 نمایش اطلاعات فایل ویدیویی/صوتی (hide_banner- حذف اطلاعات اضافی)
ffmpeg -i file_name -hide_banner

💠 تبدیل فرمت فایل های ویدیویی/صوتی:
برای تبدیل فایل های ویدیویی یا صوتی به فرمت های مختلف در ffmpeg چندین راه وجود دارد که آسان ترین آن ها تغییر پسوند است! بله فقط با تغییر پسوند ffmpeg به صورت خودکار همه چیز را انتخاب کرده و فرآیند transcoding را شروع می کند
ffmpeg -i video_input.mp4 video_output.avi
ffmpeg -i video_input.webm video_output.flv
ffmpeg -i audio_input.mp3 audio_output.ogg
ffmpeg -i audio_input.wav audio_output.flac

🗓 لینک cheatsheet یا برگه های راهنما :
لینک ۱
لینک ۲
مرجع آموزشی سایت اصلی

🔥منتظر ادامه آموزش باشید
❤️ ممنون از حمایت هاتون 💐🌺
#linux
👍223🙏3🔥1
🔥 چطور با FFmpeg فیلم ببینیم ؟
وقتی در مورد FFmpeg صحبت میکنیم داریم در مورد سه ابزار
💠ابزار FFmpeg
💠ابزار FFplay
💠ابزار FFprob
صحبت میکنیم که همراه با FFmpeg نصب میشه. در پست قبلی خیلی مقدماتی بخش FFmpeg Tool را معرفی کردم حالا FFplay
ابزار FFplay ساده و قدرتمند
بر پایه SDL (Simple DirectMedia Layer) و از FFmpeg برای رمزگشایی و پخش استفاده می‌کنه.

ویژگی‌های خاص FFplay
😎 سبک و سریع کم‌حجم است
🔥 می‌توان ویدیوها را مستقیماً از آدرس‌های اینترنتی (مانند RTMP، HLS، HTTP، RTP) پخش کرد:
ffplay http://example.com/stream.m3u8

پخش فریم به فریم
مکث: Space
حرکت فریم به فریم: s

پشتیبانی از فیلترهای ویدیویی در لحظه
ffplay -i input.mp4 -vf "hflip"

پخش زنده از وب‌کم و دستگاه‌های ورودی
ffplay -f v4l2 -i /dev/video0

نمایش اطلاعات متاداده در لحظه
ffplay -i input.mp4 -stats

کنترل سرعت پخش – امکان تغییر سرعت پخش با استفاده از گزینه‌هایی مانند -af atempo=1.5 برای افزایش سرعت صدا.
🔥منتظر ادامه آموزش باشید
❤️ ممنون از حمایت هاتون 💐🌺
#linux
🔥16👍73
استخراج زیر نویس فیلم؟
محاسبه مدت زمان فیلم؟(برای شب قبل امتحان خوبه 😁)
اطلاعات تخصصی Codec ها؟
🔥استخراج کی فریم (Keyframe) های فیلم؟
به سادگی با سومین بخش FFmpeg یعنی FFprobe
💠اگر نیاز به اطلاعات یک فایل صوتی/تصویری/ یا stream دارید
ffprobe input.mp4
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

شامل اطلاعات فرمت (MP4, MKV, AVI, etc.) ، مدت زمان، سرعت Bitrate ،اطلاعات Codec میشه میتوانید
این اطلاعات را در قالب Json هم دریافت کنید (در برنامه نویسی به کارتون میاد)

🔥 برای به دست آوردن مدت زمان یک فیلم (۳۰ تا فیلم آموزشی دارید میخواهید بدانید هر کدام چقدر زمان دارد😎)
ffprobe -i input.mp4 -show_entries format=duration -v quiet -of csv="p=0" | awk '{print $1/60 " minutes"}'

⛏️ 👷🏻‍♂️فیلم هایی هستند ۱۰ تا زیرنویس دارند میخواهید فایل زیرنویس را استخراج کنید ترجمه کنید
ffmpeg -i input.mkv -map 0:s:0 -c:s srt sub.srt

میتوانید keyframe (I-frame) های یک فیلم را استخراج کنید و ...

پایان آموزش های FFmpeg امیدوارم مفید بوده باشه

❤️ ممنون از حمایت هاتون 💐🌺

#linux
👍21🔥5