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

Advertise : @LinAdvertise

By @LinAcademy
Download Telegram
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
#روزی_یک_نکته با دلاتو

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

راجب alias برای commit و push کردن داخل git:
ساده بگم، از دست
git commit -am "blah blah blah"

git push

خلاص شدم، دستور زیر رو میزنید و از این به بعد داخل هر شلی که باشید خودش کل مراحل بالا رو با یه
git cmp "blah blah blah"
ردیف میکنه:
git config --global alias.cmp '!f() { git add -A && git commit -m "$@" && git push; }; f'
Source

🔅@LinFAQ
🔅@LinAcademy
👍4👎1
#روزی_یک_نکته با A.R.S

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

کسایی که پکیجینگ برای توزیع های مختلف لینوکسی انحام میدن. این حتما بدردتون میخوره. تا حالا خواستید که
make install

رو روی یه مقصد خاصی جز روت بزنید و این همه دنبال makefile یا استراکچر مسیر بیلد نگردید.

این کارتون رو خیلی آسون میکنه
کافیه که فلگ DESDIR رو ست کنید روی مسیری که میخواید نصب بشه و جای مسیر روت توزیعتون میاد اون مسیر رو روت فرض میکنه و طبق اون فولدر ها و فایل هارو میسازه یا کپی میکنه.
make DESTDIR=/path/to/dir install
خیلی این کار پکیجینگ رو ساده میکنه.

Source

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

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

باز کردن ابزار های tui داخل eshell:

اگه ابزار tui رو از طریق eshell باز کنید، به صورت پیش فرض فقط نمایش درست کار میکنه و کلید ها پاسخ نمیدن، اما با دستور زیر میشه ردیفش کرد:
(setq eshell-visual-commands'("bash" "crawl" "htop" "ssh" "top"))
البته صرفا یه راه حل... رو مخ! اجباری! هست چون کیفیت خیلی خوبی ارائه نمیده و اگه کلیدی با ایمکس مشترک باشه، به جای ابزار، ایمکس کلید رو میخونه
(مثل f10 برای htop).


منابع:
1- https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/emacs/config.org

2- https://www.emacswiki.org/emacs/EshellVisualCommands

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

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

نمایش تصاویر داخل ایمکس:
خیلی ساده و با find-file، همونطور که فایل های عادی رو باز میکنید، به صورت پیش فرض میشه تصاویر رو هم باز کرد (((((=

Source


"خب من برم nsxiv رو حذف کنم که دیگه نیازی بهش ندارم"

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

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

باز کردن فایل با کمک dired:
کافیه وقتی داخل dired هستید، نشانگر رو روی فایلی که میخواید باز کنید ببرید، بعد ! رو بزنید، در انتها اسم ابزار
(مثل mpv برای فایل ویدئویی)

رو وارد کنید و فایل مورد نظر از داخل اون ابزار باز میشه.

Source

"خب دیگه فایل منیجر هم ردیف شد"

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

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

راجب دستور man داخل eshell:

اگه
which man
رو داخل eshell بزنید با این نتیجه مواجه میشید... ((((=
یعنی man هم به lisp بازنویسی شده و میتونید راحت manpage ها رو از داخل eshell باز کنید و پیش فرض هایلایت ردیف هست و...
"امیدوارم درست بیان کرده باشم، سطح هوشیاریم پایینه"

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

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

راجب دستور diff داخل eshell:

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

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

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

داشتم پیام های گروه میخوندم دیدم دارن از ربات (GPT) سوال میپرسن بعد دیدم جالبه دلاتو هم فرستاد برام دیگه به عنوان نکته گذاشتم

در Emacs ، می‌توانید از قابلیت ‍‍‍eshell برای پنهان کردن modeline استفاده کنید. برای این کار می‌توانید دستور زیر را به init.el یا فایل تنظیمات خود در Emacs اضافه کنید:


(add-hook 'eshell-mode-hook (lambda () (setq mode-line-format nil)))


با اضافه کردن این قطعه کد، modeline در eshell مخفی خواهد شد. اگر می‌خواهید بار دیگر نمایش داده شود، می‌توانید این تغییرات را بازنشانی کنید.

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

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

اضافه کردن melpa
(Milkypostman’s Emacs Lisp Package Archive)

و بروز کردن مخازن داخل ایمکس:
از کد زیر استفاده میکنید
(داخل init.el قرارش میدید):

(require 'package)
(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/"))
(package-initialize)
(unless package-archive-contents
  (package-refresh-contents))

اگه اون لاین unless package-archive-contents نباشه هر سری موقع لود ایمکس مخازن رو رفرش میکنه و زمان لود شدیدا بالا میره.

Source

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

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

راجب لود چندین فایل به صورت همزمان داخل lisp:

یه فایل داشتم که محتواش به این شکل بود، یعنی داشت سعی میکرد چندین فایل رو لود کنه و هر فایل داخل بلوک مخصوص به خودش بود با کلی کد تکراری.
یکی از دوستان پیشنهاد اصلاحش رو داد، منم از chatpgt سوال کردم و جواب این شد:
(defun load-multiple-files (file-list)
  (dolist (file file-list)
    (load (expand-file-name file))))
 
(let ((files-to-load '("file1.el" "file2.el" "file3.el")))
  (load-multiple-files files-to-load))


و خیلی هم عالی کار کرد.
مثالش که کد خودم باشه میشه این
(جهت جلوگیری از شلوغی و وضوح بیشتر لینکش رو میدم):


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

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

ردیف کردن lsp داخل emacs
language server protocol

کافیه دستور زیر رو به کانفیگتون اضافه کنید
(نمونه برای python هست، اسم مد رو بسته به زبان/ زبان ها عوض کنید):

(use-package eglot
  :ensure nil
  :hook
  (python-mode . eglot-ensure))
طبیعتا باید lsp برای اون زبان نصب باشه
(مثلا pyright رو از مخازن رسمی آرچ گرفتم).

اگه lsp رو تشخیص نداد باید دستی بهش مسیر بدید.

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

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

نحوه اضافه کردن alias به eshell ایمکس:
کافیه داخل eshell بنویسید:
eshell (emacs shell)

alias command1 'command2'
که هر دفعه command1 رو بزنید command2 اجرا میشه.
خودش alias رو به فایل alias داخل مسیر زیر اضافه میکنه:
~/.emacs.d/eshell/
البته دقت کنید که باید آرگومان ها رو دقیق معلوم کنید، مثال برای باز کردن فایل:
alias vim 'find-file $1'
وگرنه آرگومان رو قبول نمیکنه
(تو اینجا اسم فایل هدف رو).


Source

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

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

اضافه کردن auto completion به ایمکس:

کافیه پکیج corfu رو نصب کنید،  مراحل کامل کانفیگ و نصب اینجا گفته شده و چون یکم دستورات طولانی هستن اینجا تایپ نمیکنم که شلوغ نشه... و خب همش کپی پیسته.
راجب اون popup menu ای که داره توضیحات نشون میده، برای فعال کردنش
(corfu-popupinfo-mode)

رو به بخش init ااون use-package اضافه کنید، اگه موفق نشیدید یا سوالی داشتید راحت باشید و بپرسید.

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

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

برای دیباگ کردن کد پایتون داخل ایمکس با pdb
(بدون نیاز به پکیج اضافه یا...):

اول alt x (در واقع M-x) رو میزنید.
بعد pdb رو تایپ میکنید و اینتر میزنید.
بعد دستور رو
(خودش python -m pdb رو اول داره، اسم فایل رو به انتهاش اضافه کنید)

وارد میکنید، مثال:
python -m pdb test.py
الان وارد دیباگر شدید، بقیه مراحل مشابه این ویدئو پیش میره:
Command-Line Python Debugging with pdb

دقت کنید محتوای ویدئو داخل هر جایی قابل انجامه و به ادیتور/ ide وابسته نیست.

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

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

اجرای دستورات شل به صورت async داخل ایمکس:
کافیه M-x رو بزنید و بعد async-shell-command رو انتخاب کنید و بعد از اینتر زدن دستورتون رو وارد کنید.
اگه project-async-shell-command رو انتخاب کنید دستور داخل root پروژه اجرا میشه
(که هنوز نمیدونم چجوری تشخیص میده و باید بیشتر تحقیق کنم و پیش برم).


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

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

ردیف کردن tree-sitter داخل ایمکس:

گام اول باید require ش کنید.

گام دوم لیست کردن گرامر هاست.

گام سوم نصبشونه.

گام چهارم باید به major mode ها hook شون کنید که جایگزین بشن.

نمونه: خط های 443 و 444 که کامنتشون کردم مربوط به مرحله سوم یعنی نصب هست و برای این کامنت هستن که با هر بار اجرای ایمکس از نو clone نشه و...

بعد اگه eglot استفاده میکنید یا هر چیزی هست که به major mode اولیه hook شده، باید به این مد هم hook بشه وگرنه اجرا نمیشه، نمونه.

منبع جهت توضیح کامل:

لیست گرامر ها:


میدونم توضیحاتم کم بود ولی دلیل این بود که منبع گفته شده، به صورت کامل توضیح داده و توضیح قضیه طولانی میشد برای همین خلاصه گفتم


اگه سوالی هم داشتید
(که با وجود توضیح کمم احتمالا پیش بیاد)

راحت باشید و بپرسید.

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

🔅@LinFAQ
🔅@LinAcademy