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

Advertise : @LinAdvertise

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

دسته‌بندی: #آموزشی #کاربردی #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