LinFAQ
314 subscribers
23 photos
4 videos
3 files
54 links
GNU/Linux FAQ

Advertise : @LinAdvertise

By @LinAcademy
Download Telegram
#روزی_یک_نکته با دلاتو

دسته‌بندی: #کاربردی #آموزشی #emacs

راجب دووم آوردن داخل ایمکس تو روز اول، پارت دوم:
گام بعدی و واجب برای بقا در این محیط خشن، رسیدن به آتش برای تامین غ... منظورم اینه کی بایند هاست، خب لیست از کی بایند هایی که نیازم شد رو سعی میکنم این وسط جا بدم
(M منظور alt و C منظور ctrl هست، پس C-a مثلا یعنی ctrl a):

رفتن به ابتدای لاین: C-a
رفتن به انتهای لاین: C-e
مشابه visual mode برای انتخاب: C-SPC
(منظور از SPC همون space هست).

کات کردن: C-w
کپی کردن: C-W
پیست کردن: C-y
جا به جایی مشابه hjkl داخل متن:
C-b, C-n, C-p, C-f
جا به جایی به یک کلمه بعد یا قبل:
M-b, M-f
سرچ از مکان فعلی کرسر تا انتهای فایل: C-s
سرچ از مکان فعلی کرسر تا ابتدای فایل: C-r
مشابه command mode داخل ویم: M-x
برای help موارد مختلف: C-h
سیو کردن: C-x C-s
خروج: C-x C-c
برای سوییچ بین بافر ها
(همون eshell ای که اول باز کردید یکیشونه):

C-x b
بستن بافر: C-x k
ایجاد split:
C-x 2, C-x 3
برای سوییچ بین split ها: C-x o
بستن سایر split ها: C-x 1
بستن split فعلی: C-x 0
برای undo و redo کردن: C-x u
(برای redo باید undo رو undo کنید P:)
برای تغییر زوم، اول C-x میزنید، بعد با موارد زیر زوم رو کم و زیاد میکنید:
C-=, C--
برای حذف کاراکتر: C-d
برای حذف کلمه: M-d
برای حذف از مکان فعلی کرسر تا انتهای لاین: C-k
برای رفتن به ابتدا و انتهای فایل:
M->, M-<
فکر کنم این کی بایند ها برای دووم آوردن داخل ایمکس برای روز اول کافی باشن.

اضافه کنم: اگه درست یادم باشه
(تست نکردم)

میشه با C-u و بعد عدد کی بایند ها رو تکرار کرد، مثلا:
C-u 3 M-f
3 کلمه کرسر رو به جلو حرکت میده.

در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.

🔅@LinFAQ
🔅@LinAcademy
👍31
#روزی_یک_نکته این قسمت با خودم (رضا)

دسته‌بندی: #کاربردی #آموزشی #wayland

میخواستم یه اسکرین شات بگیرم ولی از اونجایی که لپتاپ به مانیتور وصل بود از جفت صفحه ها اسکرین شات میگرفت
و چون از sway wm استفاده میکنم
(ویلند عه)

و تنها ابزاری که میشناختم اسکرین شات بگیره grim بود

رفتم دنبالش ببینم باید چیکار کنم تا با موس قسمتی که select میکنم اسکرین شات بگیره
که با Slurp آشنا شدم احتمالا خیلی هاتون میدونید چیه و یا کار هم کردید باهاش ولی ،
یه سری آپشن ها داره که منطقه ای که select می‌کنی رو مختصات اون مکان رو میگه و یا به عنوان color picker هم میتونید استفاده کنید و خیلی کارهای دیگه

و خب معلومه باید این ابزار رو داخل grim استفاده کنیم
برای مثال
grim -g "$(slurp)"
و خب میتونیم بیشتر دسترسی کاستوم کردن تو فایل نهایی عکس داشته باشیم
مثلا کامند زیر از مانیتور فوکوس شده میگیره
(همونی که الان آیکون موس روشه و پنجره ها فعال)


grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')
یا مثال دیگه با این کامند با استفاده از
image magick
کار
Color picker
انجام میدیم

grim -g "$(slurp -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:-

Source
نکته: jq رو یادتون نره نصب کنید

🔅@LinFAQ
🔅@LinAcademy
#روزی_یک_نکته با دلاتو

دسته‌بندی: #کاربردی #آموزشی

راجب وارد کردن محتوای چند فایل به stdin:
بعضی مواقع یه اسکریپت یا دستوری دارید (مثل دستور
sudo pacman -Syu --needed - < packages.txt
که داخل یکی از نکات قبلی بیان شد) و نیازه که به جای یه فایل، چند فایل رو به عنوان ورودی بهش بدید
(تو همین مورد بالا به عنوان مثال بخواید لیست پکیج هاتون رو داخل فایل های مختلف قرار بدید و دسته بندی کنید).

اولین چیزی که به ذهن میرسه اینه که شخص کل اون فایل ها رو پشت هم لیست کنه، اما جواب نمیده و فقط یکیشون رو به عنوان ورودی ارائه میکنه (فکر کنم مورد آخر؟). راه حلش هم ساده هست، مثال:
cat < <(cat file.txt file2.txt)
که دستور بالا محتوای هر 2 فایل رو نمایش میده، اما اگه تست کنید
cat < file.txt file2.txt
فقط محتوای فایل دوم نمایش داده میشه و اگه از
cat < cat file.txt file2.txt
استفاده کنید احتمالا
(اگه فایلی به اسم cat تو اون مسیر نداشته باشید P:)

با خطای "no such file or directory" مواجه میشید
(پس بین این 3 مورد فقط مورد اول درست جواب میده).

در نهایت تاکید کنم اون cat ابتدای 3 دستور بالا صرفا جهت بررسی صحت مقدار stdin از طریق پرینتش هست و طبیعتا باید با دستور یا اسکریپت مد نظرتون جایگزین بشه.

منابع بیشتر:
https://stackoverflow.com/questions/33157198/multiple-input-text-files-as-stdin-under-unix

https://unix.stackexchange.com/questions/20285/shorthand-for-feeding-contents-of-multiple-files-to-the-stdin-of-a-script

https://stackoverflow.com/questions/1487319/submitting-multiple-files-from-shell-script-through-standard-input

https://stackoverflow.com/questions/44552188/redirect-multiple-files-to-stdin

🔅@LinFAQ
🔅@LinAcademy
#روزی_یک_نکته با دلاتو

دسته‌بندی: #آموزشی #کاربردی #emacs

یه سری منابع برای mu4e
(هنوز سراغش نرفتم، صرفا تحقیقه):


راستی یه کپی از emacswiki راجب mu4e برم:
mu4e is an email client for Emacs. It’s based on the mu email indexer/searcher.

- قبلا یه ویدئو distrotube راجبش داده:

Setting Up The Mu4e Email Client In Doom Emacs

https://youtu.be/LKp3hQP2VxQ

کم و بیش درسته، فقط اون mbsync-git رو تا جایی که میدونم نیاز نیست نصب کنید، isync داخل مخازن رسمی هست.
اگه میخواید راجب isync بیشتر مطالعه کنید
(به صورت کلی چیز جالبیه، بنظرم به چک کردنش میرزه):

https://wiki.archlinux.org/title/isync
منابع بیشتر راجب mu4e:
https://www.emacswiki.org/emacs/mu4e
اسکرین شات ها و منبع رسمی:
https://www.djcbsoftware.nl/code/mu/mu4e.html
میتونید کانفیگ gavin رو هم راجبش چک کنید:
https://github.com/Gavinok/emacs.d/blob/main/lisp/mu4e-config.el

🔅@LinFAQ
🔅@LinAcademy
#روزی_یک_نکته با دلاتو

دسته‌بندی: #آموزشی #کاربردی #emacs

راجب hook و فعال کردن لاین نامبر در مد های مورد نیاز داخل ایمکس:
وقتی میخوان یه فانکشن بعد از یه رویدادی
(مثل اجرای یه فانکشن دیگه یا مد خاصی یا...)

اجرا بشه، از hook استفاده میکنن
(یا حداقل برداشت من از hook اینطوری بوده).


یه نمونه هم ازش بخوام بگم این هست:
(add-hook 'prog-mode-hook 'display-line-numbers-mode)

که  در واقع داره میگه اگه major mode بافر جزو prog-mode بود، بیاد لاین نامبر رو هم فعال کنه.
اینطوری داخل چیز هایی مثل dired که مدیر فایل هست یا کلا هر جایی که کد نیست، لاین نامبر رو هم نمیبینیم.

کلا major mode هایی که زبان برنامه نویسی هستن توی این دسته قرار میگیرن (در کل مفهوم major mode مشابه file type داخل (نئو)ویم هست).


حالا کد زیر رو داریم:
(use-package display-line-numbers
  :hook org-mode prog-mode
  )

تو اینجا داریم از use-package استفاده میکنیم، برای همین اسم پکیجی که فانکشن display-line-numbers-mode شامل میشه رو به کار میبریم، بعد بهش میگیم که تو کدوم پکیج ها قراره لاین نامبر نمایش داده بشه، اینطوری ۲ سود داره:
1- به جای اسم فانکشن ها، اسم پکیج ها رو به کار میبریم که عموما کوتاه تره.
2- همونطور که میبینید میتونم با یه بار نوشتن hook، داخل هر چند مدی که میخوام لاین نامبر رو نمایش بدم. مثلا اینجا علاوه بر prog-mode، داخل فایل هایی که org هستن هم لاین نامبر نمایش داده میشه.
راجب use-package بخوام مختصر بگم، برای کانفیگ ساده تر ازش استفاده میشه و پیش فرض توی نسخه های جدید ایمکس نصب هست.

جهت فهمیدن این که function یا variable مربوط به کدوم پکیج هست میتونید کی بایند C-h f یا C-h v رو بسته به function یا variable بودن بزنید و بعد اسمش رو وارد کنید، همون چند خط اول نوشته که برای کدوم پکیج هست، میتونید از طریق پسوند el تشخیص بدید.


اگه توی نکته ایرادی بود پیشاپیش عذر میخوام، به دلیل آشنایی کمم با ایمکس هست چون کلا یه هفته هست که دارم ازش استفاده میکنم و تو این یه هفته هم شاید بیشتر از ۱۰ ساعت ازش استفاده نکردم، ضمنا خوشحال میشم اگه خواستید ایراد رو اصلاح و بیان کنید.

در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.

🔅@LinFAQ
🔅@LinAcademy
1
#روزی_یک_نکته با دلاتو

دسته‌بندی: #کاربردی #آموزشی #makefile

راجب make:
احتمالا تا حالا Makefile رو دیده باشید
مخصوصا اگه از ابزارا suckless استفاده کردید.

تعریفم شاید دقیق نباشه، اما سعی میکنم واضح بیانش کنم: make یه ابزار هست که محتوای Makefile رو میخونه و بر اساس آرگومانی که بهش میدیم، میاد یه کاری رو انجام میده.
طوری که بهش نگاه میکنم: یه جورایی Makefile انگار یه فایل با یه سری switch case هست که وجود یا بروز بودن یه فایل یا یه case دیگه رو نگاه میکنه و بر اساس اون آرگومانی که بهش میدید، یه سری دستوراتی رو انجام میده.
کاربرد اصلیش بیلد کردن پکیج ها و کامپایل، اکسپورت کردن و... هست
مثلا جای این که بنویسید gcc... میاید میزنید make و تمام.

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

و عدم تکرار اسم فایل ها و... هست.
میتونید متغیر براش تعریف کنید.

نمونه کار های خلاقانه دیگه ای که براش دیدم میشه از مدیریت کانفیگ ها گفت:
How To Manage Your Dotfiles With Make

خودم خیلی باهاش کار نکردم، پس هم در حد پایه گفتم و هم خیلی اعتبار این نکته بالا نیست، اما قابل بیان دونستمش، اگه توضیح کامل میخواید منبع رسمی شاید بهترین گزینه باشه.

داخل یوتیوب هم آموزش راجبش زیاد هست، 2 تا آموزش کوتاه و یه نکته ای که نسبتا باید حواستون بهش باشه رو اضافه میکنم:
How to Create a Simple Makefile - Introduction to Makefiles

Learn make in 60 seconds.

Why that "Perfect" Makefile Doesn't Work.

چون 3 لینک بالا رو اضافه کردم و توضیحاتشون رو بیشتر از دانش خودم دونستم، پس نحوه نوشتن Makefile رو دیگه توضیح نمیدم. صرفا یه نمونه که برای نیاز خودم نوشتم رو ضمیمه این پست میکنم.

در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.

🔅@LinFAQ
🔅@LinAcademy
👍3
#روزی_یک_نکته با دلاتو

دسته‌بندی: #آموزشی #کاربردی #emacs

قابلیت های پیش فرض ایمکس که برام جالب و مهم بودن و آشنایی باهاشون موقع تغییر ادیتور به ایمکس نسبتا واجبه:

- مورد اول org mode هست، میشه یه سری پکیج مثل org-modern نصبید که ظاهر بهتر بشه، اما حتی وجود خود org mode و گرفتن خروجی کد داخل هر فایل دیگه و... قابلیت مفیدیه.

- مورد بعد eshell هست، عملا بهتون یه شل میده که داخلش میتونید از فانکشن های ایمکس استفاده کنید، مثلا بیاید با find-file یه فایل رو داخل همون پنجره ایمکس باز کنید و...

- برا مدیر فایل هم dired رو داریم. ازش زیاد استفاده نکردم پس نظری نمیدم، اما قابلیت هاش رو نگاه بندازید جالبه.

- میشه داخل هر فایلی (تا جایی که میدونم هر بافری که میشه داخلش تایپ کرد) کد elisp نوشت و با C-x C-e اجراش کرد. مثلا وسط کد نوشتن جای این که M-x بزنید، داخل همون فایل فانکشن رو مینویسید و اجراش میکنید و بعد لاین رو حذف میکنید.

- کلید تب به صورت پیش فرض indent اون خط رو اصلاح میکنه.

- سیستم daemon client. هم زمان باز شدن پنجره رو صفر میکنه و هم میتونید باهاش از طریق شل یا ابزار های مختلف به ایمکس فرمان بدید.
ضمنا دیگه نیاز نیست نگران اشتباهی بستن پنجره باشید.
پیشنهاد میدم ویدئو زیر از protesilaos stavrou رو براش ببینید:
Basics of Emacs client (`emacsclient' program)

- تو نسخه جدید ایمکس، use-package به صورت builtin وجود داره که استفاده ازش کمک میکنه کانفیگ خیلی منظم تر بشه (علاوه بر بهبود سرعت لود اولیه و...).

- وجود major modes و prog-mode. تا حدی مشابه file type هستن، اما انگار درک خیلی بهتری دارن.
برای لیست زبان هایی که دیفالت major mode شون ردیفه قبلا لینک داده بودم.

- سیستم راهنماش. چند نکته راجبش هست:
1- راهنما های بخش های مختلف کی بایند هاشون جدا و دسته بندی شده.
مثلا C-h v برای variable ها.

2- وقتی راهنمای function یا variable یا... رو چک میکنید، داخل split ای که براش باز میشه فقط مطالب مربوط به همون function یا variable یا... رو میبینید.
3- داخل راهنما گفته شده که اون function یا... برای کدوم پکیج هست.
4- اگه درست یادم باشه مقدار پیشفرض و مقدار فعلی اون variable یا... رو میگه.

- گرافیکی بودنش و پشتیبانی عالی از ligatures و زبان فارسی و...

اینا قابلیت هایی بودن که تو چند ساعت اول کار با ایمکس به چشمم اومدن و هنوز قابلیت هایی مثل compiler و debugger رو نگاه هم ننداختم.

🔅@LinFAQ
🔅@LinAcademy
#روزی_یک_نکته با دلاتو

دسته‌بندی: #کاربردی #آموزشی #emacs

(خیلی فواصل نکات نامنظم شده) راجب نمایش انواع داکیومنت داخل emacs:

- ایمکس یه DocView mode داره که میتونید باهاش انواع فرمت های داکیومنت رو ببینید.
- برای نمایش هم کاملا مشابه بقیه فایل ها عمل میکنید، مثلا find-file test.pdf از داخل ایمکس.
- برای نمایش pdf از ghostscript یا mupdf استفاده میکنه، پس طبیعتا حداقل یکیشون باید نصب باشه.
- اگه محتوای داکیومنت بروز شده بود، میتونید برای refresh کردن محتوایی که داره داخل DocView نمایش داده میشه از کلید g استفاده کنید.
- با C-c C-c میتونید بین نمایش فایل با DocView و تکست سوییچ کنید.
برای فایل هایی مثل pdf طبیعتا فقط DocView نیاز میشه، اما تو svg میتونه قضیه فرق کنه.

- اصولا برای هر فرمت داکیومنتی که خودش اشاره کرده جوابه، اما احتمالا چون هیچ آفیسی روی سیستم نصب نداشتم نتونستم ppt رو با ایمکس باز کنم.
- میتونید این رو هم جهت مطالعه بیشتر چک کنید.
- ضمنا pdf-tools رو هم نگاه بندازید خوبه، این stackoverflow رو هم میتونید براش چک کنید.
خودم تستش نکردم ولی فکر کنم از DocView عملکرد بهتری نشون بده.


source

🔅@LinFAQ
🔅@LinAcademy
#روزی_یک_نکته با سهراب

دسته‌بندی: #آموزشی #کاربردی #Debian

بعد از نصب دبیان چه کارهایی رو باید انجام بدیم؟ 🫡

اگر شما به تازگی توزیع دبیان رو نصب کردین یا قصد نصب کردنشو دارید پیشنهاد میکنم این متن رو بخونید.

۱. بعد از نصب توزیع دبیان حتما مخازن nonfree و contrib رو فعال کنید.

چطور؟
با استفاده از ادیتوری که دوست دارید، فایل
/etc/sources.list
رو باز کنید و جلوی لینک مخازن مثل نمونه پایین اگه مخزن لینکش:
deb https://deb.debian.org/debian/ bullseye main


هست اون رو به

deb https://deb.debian.org/debian/ bullseye main contrib non-free

تغییر بدید.
این کار رو برای همه مخازن از جمله مخازن اپدیت انجام بدید.


۲. فعال کردن نتورک منیجر.

اگه توزیع دبیان رو با دسکتاپ مدنظرتون نصب کنید ، بعد از اولین لاگین ممکنه که در افزونه نتورک منیجر با عبارت no connection و یا در nmcli با عبارت unmanaged روبرو بشید.
چطور این رو درست کنیم؟
کافیه فایل
/etc/NetworkManager/NetworkManager.conf

رو باز کنید ( حروف بزرگ و کوچیک رعایت شود)
و در این فایل managed=false رو به managed=true تغییر بدید و ذخیره کنید سپس نتورک منیجر رو ری استارت کنید.
sudo systemctl restart NetworkManager


۳. دادن دسترسی sudo به یوزر

معمولا بعد از نصب دبیان یوزری که ساختید دسترسی روت نداره و وقتی از sudo استفاده میکنید با خطا مواجه میشید.
برای درست کردن این نیز ۲ راه دارید
راه اول:
اضافه کردن یوزر به گروه sudo
برای این کار باید دستور:
usermod -aG sudo username

رو بزنید و سپس با استفاده از دستور:
getent group sudo

برسی کنید که آیا یوزر شما به این گروه اضافه شده و یا نه اگر این کار رو بکنید دسترسی sudo برای یوزر شما باز میشه.
راه دوم:
ادیت کردن مستقیم فایل sudoers
اگر به هر دلیلی راه بالا براتون کارنکرد میتونید از این راه هم برید
برای این کار اول دسترسی روت رو بگیرید
با استفاده از کامند su و وارد کردن رمز روت شما دسترسی روت رو میگیرید
سپس باید فایل
/etc/sudoers
رو با ادیتورتون باز کنید و بعد در اون فایل زیر خط
root ALL=(ALL) ALL

با توجه به یوزرنیمتون یکی مثل همون بنویسید مثلا اگه یوزرنیم شما sohrab هست باید
sohrab ALL=(ALL) ALL

رو بنویسید و ذخیره کنید تا دسترسی sudo برای یوزرتون باز بشه.

۴. فعال کردن لیست یوزر ها در lightdm
اگه از lightdm استفاده میکنید ممکنه که ببینید که از شما برای لاگین کردن یوزرنیم میخواد بجای اینکه یوزرنیم شمارو نشون بده برای رفع این مشکل باید فایل کانفیگ lightdm که
/etc/lightdm/lightdm.conf

هست رو باز کنید و قسمت
greeter-hide-users=false

رو از کامنت بودن در بیارید ( عبارت # پشتش رو پاک کنید)

و یک نکته که توی پست بعدی میگم........
source


🔅@LinFAQ
🔅@LinAcademy
LinFAQ
یک نکته که توی پست بعدی میگم
#روزی_یک_نکته با سهراب

دسته‌بندی: #آموزشی #کاربردی #Debian

ادامه نکته قبل
اگه هدفتون نصب دبیان sid هستش.
موقع نصب دسکتاپ انتخاب نکنید
دبیان رو به صورت مینیمال نصب کنید
و بعدش توی کانفیگ مخازن بعد از نصب که فایل
/etc/apt/sources.list
هستش رو باز کنید
همه مخازن داخلش رو پاک کنید چون دبیان sid نیازی به مخازن اپدیت دبیان نداره و رولینگ هست
جز این مخزن که مخزن اصلی هستش که این رو

deb https://deb.debian.org/debian/ bullseye main


به


deb https://deb.debian.org/debian/ sid main non-free contrib

تغییر بدید
یک دور دبیان رو کاملا اپدیت کنید:
sudo apt update && sudo apt upgrade

تبریک الان دبیان sid دارید
دسکتاپی که هم دوست دارید یا دستی و یا با کامند
tasksel 

نصب کنید.
حالا چرا گفتم دسکتاپ نصب نکنید؟
چون اگه دسکتاپ نصب کنید و بعدش مخازن رو به sid تغییر بدید، حجم اپدیتی که ازتون میگیره زیاد هست و به صرفه نیست.

و حتما مراحل پست بالا رو برای sudo و lightdm و network manager انجام بدید.

source

🔅@LinFAQ
🔅@LinAcademy
#روزی_یک_نکته با دلاتو

دسته‌بندی: #آموزشی #کاربردی #shell

راجب چک کردن دستوری که alias اجرا میکنه:
این سری خیلی کوتاهه.

کافیه از دستور زیر استفاده کنید:
type <alias>

مثال:
دستور زیر


برای تعریف کردن alias
alias vim='nvim'


type update
داخل کانفیگ خودم خروجی زیر رو داره:
update is aliased to `sudo pacman -Syu --needed - < $HOME/nEwRA/packages.txt'

🔅@LinFAQ
🔅@LinAcademy
#روزی_یک_نکته با دلاتو

دسته‌بندی: #آموزشی #کاربردی #neovim

یه مطلبی بود که راجب یادگیری نئوویم نوشتم
اول ببین با کی بایند ها راحتی؟
میتونی توی فایل جا به جا شی و redo و undo کنی؟
بعد از یه مدت که دیگه نیاز نداشتی دستت رو ببری روی ماوس یا arrow keys، برو سراغ مباحث بعدی.
اگه هنوز با پیش فرض ها راحت نیستی، کی بایند ها رو یاد بگیر، ترمینال باز کن و بنویس vimtutor و باهاش پیش برو یا این که این ویدئو رو ببین.
خودم نحوه hjkl و esc و wq: رو یاد گرفتم و بعد هر چیزی نیازم شد مثل undo رو با یه سرچ ساده بدست آوردم.

تاکید میکنم، برای رفتن به نرمال مد به جای esc، اول alt رو نگه دار و بعد کاری که میخوای انجام بدی رو بزن. مثالش اینه که alt j میبرتت به نرمال مد و بعد کرسر رو یه خط پایین میبره.

بهتره توی این مرحله با visual mode آشنا بشی و نحوه جستجو داخل متن رو تا حد نیاز یاد بگیری.

بعد از یادگیری کی بایند ها در حد نیاز، چون با پایه ها راحتی ابزار رو گسترش میدی، پس باید بری سراغ کانفیگ جهت اضافه کردن قابلیت هایی که نیاز داری مثل suggestion بهتر یا... به نئوویم.
پیشنهاد میدم اول این ویدئو و این یکی رو ببینی تا متوجه شی نئوویم چه قابلیت هایی رو بدون پلاگین ارائه میده، بعد این ویدئو رو ببین تا یه کانفیگ پایه آماده با پلاگین بدست بیاری و یا این که برو سراغ nvpak که کانفیگ علی باشه.
در انتها مطالبی مثل macro میمونه که اگه بدونی خیلی کمکت میکنه.
جدای از این ها خیلی از قابلیت ها مثل کامند make هستن که کمک میکنه، اما توی جامعه خیلی کمتر میبینی و پیدا کردن مطالب براش به این راحتی نیست.

بعد از کل موارد بالا اگه به نقطه ای رسیدی که خواستی نئوویم رو از صفر کانفیگ کنی این منبع خیلی کمکت میکنه.
یه نکته ای رو داشت یادم میرفت، هر چیزی برات سوال شد داخل کامند مد h و بعد چیزی که میخوای راجبش بیشتر بدونی رو بزن.


source

🔅@LinFAQ
🔅@LinAcademy
#روزی_یک_نکته با دلاتو

دسته‌بندی: #آموزشی #کاربردی

راجب disown و nohup :

اگه بخواید ابزار گرافیکی رو از طریق ترمینال اجرا کنید 3 مسئله هست:
1- خروجی های ابزار گرافیکی به ترمینال فرستاده میشه و اگه دنبال پیدا کردن خطا یا... نباشید دیدنشون فقط رو مخه.
2- شل رو آزاد نمیکنه و ترمینال عملا بلا استفاده میشه.
3- بعد از بستن ترمینال، ابزار گرافیکی هم بسته میشه.

مورد دوم رو با & انتهای دستور میشه حل کرد، اما باز مورد اول و سوم میمونن.

برای حل این قضیه 2 راه داریم:
1- استفاده از nohup.
مثال:
nohup zathura file.pdf &
دقت کنید اگه اون & انتها نباشه شل آزاد نمیشه.


2- استفاده از disown. مثال:
zathura file.pdf &
disown



نکته :
zathura (document viewer)
عه که استفاده شده


البته یه قضیه هم راجب nohup هست: یه فایل nohup.out داخل مسیری که هستین میسازه و خروجی ها رو به جای ترمینال، داخل اون فایل قرار میده.

راجب توضیح دقیق این که disown و nohup چی کار میکنن و فرقشون چیه بهتره که این 3 لینک رو چک کنید:
به هر حال توضیح من یه برداشت ناقص از این منابع میشد.

https://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and

https://askubuntu.com/questions/439187/how-to-open-a-gui-application-and-disconnect-it

https://man.archlinux.org/man/nohup.1.en

source

🔅@LinFAQ
🔅@LinAcademy
👍4
#روزی_یک_نکته با حسن

دسته‌بندی: #آموزشی #کاربردی

بحث راجب این بود که چرا فایلی رو داریم انتقال میدیم یا کار های دیگه انجام میدیم باهاش توی لینوکس روی 100% زمان بیشتری طول میکشه یا گیر میکنه.

توضیح اتفاقی که میفته به صورت کامل :

اتفاقی که میفته از این قرار هست که هسته لینوکس فایلی که قراره کپی بشه با سرعت بالایی توی بافر حافظه اصلی (RAM) کپی میکنه و سرعت بسیار بالایی داره .

این وسط مدیر فایل وقتی هسته، فایل رو به بافر منتقل کرد فکر میکنه که واقعا فایل توی مقصد کپی شده (ولی در اصل فایل توی بافر (RAM) کپی شده و فایل منیجر سعی میکنه کپی کردن رو کنسل کنه !!! ولی هسته داره فایل رو از بافر به هارد یا یو اس بی کپی میکنه و فایل منیجر چاره ای نداره جز اینکه هنگ کنه و منتظر سیگنال هسته باشه و دقیقا بعد از اینکه هسته لینوکس کپی کردن رو تموم میکنه فایل منیجر هم تموم پنجره رو میبنده .

اتفاقی که میفته این هست که پیشروی کپی کردن رو به صورت ریل تایم نمیبینی ...!!!

راه حل هم داره .

راه حل این مشکل :

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

این فایل رو باید توی این مسیر ایجاد کرد :
etc/sysctl.d/90-dirty.conf

و داخل این فایل این کامند رو گذاشت:
vm.dirty_background_bytes=16777216 vm.dirty_bytes=50331648

خب حالا این کامند چیه؟

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


حتما بعد از کانفینگ یک بار ریستارت کنید سیستم رو

🔅@LinFAQ
🔅@LinAcademy
👍2👎1🔥1
LinFAQ
راه حل این مشکل :
راه حل موقت برای تست:
این کامند رو یک بار توی ترمینال بزنید

echo 15728640 > /proc/sys/vm/dirty_bytes

نکته: این راه حل موقتی هست و هربار سیستم بوت میشه باید دوباره بزنید ولی روش کانفینگ دائمی هست

میزان بافر اینجا ۱۵ مگابایت محدود شده .

🔅@LinFAQ
🔅@LinAcademy
🥰1
#داستان_های_FOSS

دسته‌بندی: #داستان #آموزشی #دوال‌بوت
#dualboot

این قسمت مشکلات A.R.S با ویندوز و دبیان

#part1

ماجراجویی امروز داستان جالبی بود.
بزارید تعریف کنم. تا دوستان در این رابطه احتیاط کنن.

امروز یک سری تغییرات داخل پارتیشن لینوکسیم داده بودم.
این تغییرات شامل حذف یه سریاشون و extend کردن بود.
لینوکس با این موضوع هیچ مشکلی نداشت.
اما ویندوز به boot loop میخورد آخرش به recovery میرفت.


طبق معمول Automatic Repair Startup کار نمیکرد.
ابزاری عملا بدردنخور.

مجبور شدم ترمینال رو باز کنم به دستی رسیدگی کنم.
اولین موضوعی که باید بگم اینه که دوستان.
ابزار ریکاوری ویندوز باگ داره و اونطوری که میبینید نباید استفاده کنید.
روشی که برای من جواب داد عین این ویدیو بود

چند نکته راجب این ویدیو بگم.
در اینجا جدا از پارتیشن C پارتیشن دیگه ای که بارگذاری میشه system reserved هست.
منظور همون پارتیشن UEFI هستش. جاش همون رو بارگذاری کنید.
اگر تمامی مراحل رو درست برید احتمال اینکه ویندوزتون فیکس بشه بالاست.


سوتی که بنده دادم. از اینترنت یه سری مراحلی که انجام دادم شامل فرمت کردن پارتیشن UEFI بود که عملا GRUB مربوط به لینوکسم رو حذف کرد.

ادامه ماجراجویی در پست بعد

🔅@LinFAQ
🔅@LinAcademy
LinFAQ
ادامه ماجراجویی در پست بعد
#داستان_های_FOSS

دسته‌بندی: #داستان #آموزشی #دوال‌بوت
#dualboot

این قسمت مشکلات A.R.S با ویندوز و دبیان
#part2

حالا که ویندوز رو فیکس کردم.
نوبت فیکس کردن دبیان بود.

فکر میکردم کار ساده ای باشه ولی داستان پیچیده شد.
اول اینکه ورژن 11 دبیان رو داشتم برای live usb و دوم اینکه با داکیومنت دبیان جلو نرفتم اولش.

اگر میخواید خوب یاد بگیرید سیستم تعمیر کنید.
1- به Busybox مسلط باشید. یعنی دستورات POSIX و استانداردی که در خیلی از سیستم های Unix هست.
2- همیشه سعی کنید که از داکیومنتیشن پیش برید. (مگر ویندوز آشغال که برنامه هاشم درست نیست چه برسه داکیومنتاش)

وقتی که وارد دبیان شدم وارد بخش Graphical Rescue شدم و تمام مراحل رو که شبیه نصب دبیان هستند پیش رفتم.
ولی آخرش از شما میخواد که یه پارتیشن رو انتخاب کنید.

روش دستی رو برید و پارتیشنی انتخاب نکنید و مستقیم وارد ترمینال Busybox بشید.
و بقیش رو از اینجا پیش برید.
https://wiki.debian.org/GrubEFIReinstall

چند نکته مهم:
اول:
قبل از chroot کردن حواستون باشه که boot ماونت شده باشه و در دسترس باشه.
من فکر میکردم کرنل و initrd هام داخل خود پارتیشن روت هستن در حالی که نبودن و داخل boot بودن و حواسم نبود که اونارو mount کنم. سر این یکم زمان هدر رفت.

دوم:
for i in /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run; do sudo mount -B $i /mnt$i; done

این دستور تو سیستم من کار نمیکرد.
و نیاز به تغییر داشت. از طرفی:
The mount executable supplied with busybox does not support the -B option, use "mount -o bind" in this case.
بهتره معمولی به این صورت بزنید.
mount /dev -o bind /mnt/dev
mount /dev/pts -o bind /mnt/dev/pts
...

وقتی وارد محیط chroot شدید برای اینکه مستقیم بپرید داخل شل خودتون
sudo su
بزنید.

من جای
grub-install

grub-install --efi-directory=/boot/efi

و جای
update-grub

grub-mkconfig -o /boot/grub/grub.cfg
استفاده کردم جهت اطمینان بیشتر. شما هم میتونید استفاده کنید.

🔅@LinFAQ
🔅@LinAcademy
👍2
LinFAQ
#داستان_های_FOSS دسته‌بندی: #داستان #آموزشی #دوال‌بوت #dualboot این قسمت مشکلات A.R.S با ویندوز و دبیان #part2 حالا که ویندوز رو فیکس کردم. نوبت فیکس کردن دبیان بود. فکر میکردم کار ساده ای باشه ولی داستان پیچیده شد. اول اینکه ورژن 11 دبیان رو داشتم برای…
#داستان_های_FOSS

دسته‌بندی: #داستان #آموزشی #دوال‌بوت
#dualboot

این قسمت مشکلات A.R.S با ویندوز و دبیان
#part3
source_part


در ضمن. اگر دیدید که فایل های inf درایور رو داخل live media ویندوز نیاز دارید.
میتونید داخل فلش کپی کنید و از همون داخل خط فرمان با این دستور لودش کنید.
داکیومنتش خوب توضیح داده:

drvload:
https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/drvload-command-line-options?view=windows-11

همینطور داکیومنت دستورات دیگه ای که ممکنه استفاده کنید:
bootsect:
https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/bootsect-command-line-options?view=windows-11

bootrec:
https://support.microsoft.com/en-us/topic/use-bootrec-exe-in-the-windows-re-to-troubleshoot-startup-issues-902ebb04-daa3-4f90-579f-0fbf51f7dd5d

BCDBoot:
https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/bcdboot-command-line-options-techref-di?view=windows-11

راستش جز اولی بقیه مفید واقع نشدن چون مثل لینوکس لاگ یا چیز بدردبخوری نشون نمیده که بدونیم مشکل از کجاست.
source

🔅@LinFAQ
🔅@LinAcademy
#روزی_یک_نکته با رضا

دسته‌بندی: #آموزشی #کاربردی #sshpass

نمی‌دونم شده براتون پیش بیاد موقع ssh زدن ، خسته بشید از رمز زدن
یا رمز رو بخواهید داخل فایل بزارید اون فایل رو بخواهید استفاده کنید
یا یه متغیر تعریف کنید رمز اونجا بزارید
(دیگر نگران نباشید :)

خب برای همه اینکارا یه ابزار هست
به اسم sshpass میتونید از مخازن بگیرید اکثر مخازن های رسمی هم دارنش

حالا چجوری کار می‌کنه
یکسری فلگ داره
مثل
-f filename  
-d number 
-p password
-e  Password is passed as env-var "SSHPASS"
-h  Show help
-V  print version

حالا خب چندتاشون مثال میزنم
sshpass -p 'پسورد سرور' ssh root@example
روش فایل
sshpass -f password_file ssh root@example
و خب البته میتونید به کمک ابزار های دیگه مثل scp رو ... هم استفاده کنید
یا alias براش بزارین

اینم یه سری لینک مفید
man sshpass
توضیح با مثال flag ها
اینم یه cheat sheet خوب
امیدوارم مفید باشه ابزار دیگه ای می‌شناسید معرفی کنید

🔅@LinFAQ
🔅@LinAcademy
👍1👏1
#روزی_یک_نکته با دلاتو

دسته‌بندی: #آموزشی #کاربردی #latex #rubber

راجب rubber برای کامپایل latex:

مقدمه: اگه از latex/xelatex برای کامپایل استفاده کنید، نیاز به چند سری کامپایل برای گرفتن خروجی درست هست وگرنه داخل pdf تولید شده، فهرست یا... درست نمایش داده نمیشن.
سرچ زدم و ظاهرا یه راه حل ساده داره: rubber
داخل مخازن رسمی آرچ بیسا هستش، بقیه توزیع ها رو نمیدونم.

برای کامپایل هم خیلی ساده از دستور زیر استفاده میکنید:
rubber -m xelatex <file>
"اسم file رو باید بدون پسوند tex بنویسید"


بخش وسطش هم برای اینه که اگه متنتون فارسی باشه اصولا با xelatex برای کامپایل سر و کار دارید و این میگه که از xelatex استفاده بشه.
مثال:
rubber -m xelatex myfile

جهت اطلاعات بیشتر میتونید من پیجش رو بخونید.

منبعی که منو با rubber آشنا کرد این stackoverflow بود.

در انتها اگه این مطلب براتون مفید بود و دلتون خواست، لطفا برای شادی روح یحیی تجری فرزند حسین یه فاتحه بخونید.

🔅@LinFAQ
🔅@LinAcademy
👍1