امیرحسین امانی
امیرحسین امانی
خواندن ۷ دقیقه·۳ ماه پیش

دستوارت مهم و پرکاربرد لینوکسی برای دستگاه Raspberry Pi

تقاضا: در صورتی که با مشکل تایپی، دستوری و یا مفهومی در این مقاله برخورد کردید، از شما دوست عزیز و گرامی، صمیمانه تقاضا می‌کنم که اینجانب را مطلع کرده، تا نسبت به تصحیح و یا تکمیل آن، در اسرع وقت، اقدام نمایم.
با کمال تشکر
امیرحسین امانی
کانال تلگرام: Amh_78@
نشانی پست الکترونیکی: a42464849@gmail.com
نسخه مقاله: ۱.۰ - تاریخ بروزرسانی: ۱۴۰۳/۰۶/۲۹

سلام دوستان عزیزم

بسیاری از دستوراتی که در ذیل نوشته می‌شوند، صرفا دستورات Linux بوده و بعضی از آن‌ها به طور تخصصی مربوط به Raspberry Pi می‌باشند، ولی گردآوری اکثر آن‌ها در یک مقاله، شاید خالی از لطف نباشد.

نکته: قبل از دستوراتی که به طور خاص، مربوط به Raspberry Pi می‌باشند، کلمه [RASPI] نوشته می‌شود!

بعد از Login به سیستم، و در محیط Shell، برای این‌که در ابتدای تقریبا هر دستوری، از کلمه (عبارت) sudo استفاده نکنیم، می‌توانیم از دستور ذیل استفاده نماییم:

sudo su

برای Update کردن سیستم از دو دستور ذیل استفاده می‌کنیم:

apt update -y apt upgrade -y apt full-upgrade -y

نکته: نوشتن y- برای آن است که در هنگام Update یا Upgrade کردن، دیگر از ما سوالی پرسیده نشود!

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

[RASPI] rpi-eeprom-update

نکته: برای به‌روزرسانی Firmware دستگاه، از دستور ذیل استفاده می‌کنیم:

[RASPI] rpi-eeprom-update -d -a reboot

نکته: سیستم‌عامل Linux، بر خلاف سیستم‌عامل Windows، خیلی نیاز به Reboot شدن ندارد! ولی توصیه می‌شود که بعد از بعضی از دستورات خاص، از دستور reboot استفاده نماییم.

برای آپدیت کردن Raspberry Pi، از دستور ذیل استفاده می‌کنیم:

[RASPI] rpi-update reboot

برای تغییر دادن تنظیمات دستگاه Raspberry Pi، از دستور ذیل استفاده می‌کنیم:

[RASPI] raspi-config reboot

نکته:‌ در صورتی که وارد محیط Configuration شده و هیچ تغییری ایجاد نکرده باشیم، نیازی به اجرای دستور reboot نمی‌باشد.

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

apt autoremove

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

hostname

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

hostname -i ip address ifconfig

نکته: اگر اجرای دستور ifconfig با خطا مواجه شد، می‌توانیم با استفاده از دستور ذیل، Package مربوط به آن‌را ابتدا نصب کرده و سپس از دستور مذکور استفاده نماییم:

apt install -y net-tools

برای این‌که ببینیم با چه کاربری Login کرده‌ایم، از دستور ذیل استفاده می‌کنیم:

whoami

برای این‌که بدانیم که چه سیستم‌عاملی بر روی دستگاه ما نصب شده است، می‌توانیم یکی از دستورات ذیل را استفاده نماییم:

uname uname -a

برای این‌که ببینیم که چه سرویس‌هایی بر روی سیستم راه‌اندازی شده است، می‌توانیم یکی از دستورات ذیل را استفاده نماییم:

ps ps -aux top htop

برای مشاهده مشخصات دستگاه (از نظر سخت‌افزاری) و نیز سیستم‌عامل Raspberry Pi نصب شده، ابتدا Package ذیل را نصب کرده و سپس آن‌را اجرا می‌کنیم:

apt install -y neofetch neofetch

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

shutdown -h now

در مقاله قبل، نصب VNC را آموزش دادم، و در این مقاله می‌خواهم که نحوه راه‌اندازی Remote Desktop را آموزش دهم! برای راه‌اندازی Remote Desktop از دستور ذیل استفاده می‌کنیم:

apt install -y xrdp reboot

با نصب Package فوق، می‌توانیم از طریق محیط Windows و با استفاده از برنامه Remote Desktop به دستگاه Raspberry Pi متصل شده و محیط گرافیکی آن را ببینیم.

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

ls ls -l ls -a ls -a -l ls -al

نکته: پارامتر a مخفف all بوده و همه فایل‌ها و پوشه‌ها، حتی آن‌هایی که مخفی می‌باشند را نیز نمایش می‌دهد.

بر خلاف محیط Windows، و در محیط Command Prompt که همیشه متوجه می‌شویم که دقیقا در کدام Drive یا Folder‌ قرار داریم، در محیط Linux Shell، این مساله خیلی شفاف و واضح نمی‌باشد! لذا برای این‌که متوجه شویم که در حال حاضر در چه مسیری قرار داریم، از دستور Print Working Directory استفاده می‌کنیم:

pwd

برای حرکت در پوشه‌ها (مشابه محیط Windows)، از دستور ذیل استفاده می‌کنیم:

cd / cd .. cd [Path] cd /[Path]

نکته: بر خلاف محیط Windows، قبل از / و .. باید یک Space قرار دهیم!

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

mkdir [SomeFolderName]

برای ایجاد یک فایل خالی (با حجم صفر بایت) از دستور ذیل استفاده می‌کنیم:

touch [SomeFileName.SomeExtension]

دستورات هیجان‌انگیز:

touch Hello World My Name Is Dariush ls

با اجرای دستور فوق، خواهیم دید که شش فایل به نام‌هایی که در مقابل دستور touch نوشته شده‌اند، ایجاد می‌شود.

یک دستور هیجان‌انگیز دیگر!

touch Dariush{1..5} ls

با اجرای دستور فوق، خواهیم دید که پنج فایل به نام‌های Dariush1, Dariush2, Dariush3, Dariush4, Dariush5 ایجاد می‌شود!

با استفاده از دستور echo، می‌توانیم یک متن را بر روی صفحه نمایش چاپ کنیم. ولی اگر بعد از عبارت مورد نظر از علامت بزرگتر (>) استفاده نماییم، می‌توانیم متن مورد نظر را در داخل یک فایل بریزیم:

echo &quotHello, World!&quot echo &quotHello, World!&quot > [SomeFileName.txt]

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

nano [SomeFileName.SomeExtension]

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

cat [SomeFileName.SomeExtension] less [SomeFileName.SomeExtension] head [SomeFileName.SomeExtension] tail [SomeFileName.SomeExtension]

نکته: دو دستور آخر، صرفا ابتدا و انتهای فایل (در صورتی که حجم فایل زیاد باشد) را نمایش می‌دهند!

برای ایجاد یک کاربر، از دستور ذیل استفاده می‌کنیم:

useradd [SomeUsername]

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

passwd

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

passwd [SomeUsername]

برای دانلود یک فایل از اینترنت از دستور ذیل استفاده می‌کنیم:

wget [Url]

برای جستجوی یک فایل، از دستور ذیل استفاده می‌کنیم:

find [Path] -name '[SomeFileName.SomeExtension]

مثال: دستور ذیل تمام فایل‌هایی که نام آن‌ها با کلمه Dariush شروع می‌شوند را در کل سیستم، جستجو می‌کند:

find / -name 'Dariush*'

برای مقایسه دو فایل متنی، می‌توانیم یکی از دستورات ذیل را استفاده نماییم:

cmp [SomeFileName.SomeExtension] [AnotherFileName.SomeExtension] diff [SomeFileName.SomeExtension] [AnotherFileName.SomeExtension]

فرض کنید که تعدادی از دستوارت فوق، و یا دستورات دیگری را در داخل یک فایل با پسوند sh قرار داده‌ایم، این فایل‌ها بسیار شبیه فایل‌هایی با پسوند bat در محیط Windows می‌باشند. برای این‌که این فایل را Executable نماییم، از دستور ذیل استفاده می‌کنیم:

chmod +x [SomeFileName].sh

برای مشاهده DNS Server تنظیم شده بر روی سیستم، ابتدا وارد فایل resolv.conf شده و در صورت نیاز آن‌را تغییر می‌دهیم. قابل توجه دوستانی که می‌خواهند از DNS Server های سایت Shecan.ir استفاده نمایند:

nano /etc/resolv.conf

توجه: در نام فایل، resolv، حرف e ندارد!

برای صرفا مشاهده DNS تنظیم شده بر روی سیستم،‌ می‌توانیم یکی از دستورات ذیل را استفاده نماییم:

cat /etc/resolv.conf resolvectl status

مشابه محیط Windows، برای Ping کردن یک سایت، می‌توانیم از دستور ذیل استفاده نماییم:

ping [SomeDomainName] ping -c 5 [SomeDomainName] ping -s 500 [SomeDomainName]

نکته: در دستور فوق، s مربوط به Size of Packet می‌باشد!

مشابه محیط Windows، برای Trace کردن یک دامنه، می‌توانیم از دستور ذیل استفاده نماییم:

traceroute [SomeDomainName]

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

netstat netstat -tulpn ss ss -tulpn

برای فعال یا غیرفعال کردن و نیز مشاهده وضعیت Firewall از دستورات ذیل استفاده می‌کنیم:

ufw status ufw enable ufw disable

برای این‌که یک Port را بر روی دستگاه باز یا بسته کنیم (Firewall):

ufw allow 80 ufw deny 80

برای این‌که متوجه شویم که چه مقدار از Ram دستگاه استفاده شده و چه مقدار خالی می‌باشد،‌ از دستور ذیل استفاده می‌کنیم:

free

برای این‌که متوجه شویم که چه مقدار از فضای هارد دیسک / SSD دستگاه استفاده شده و چه مقدار خالی می‌باشد،‌ از دستور ذیل استفاده می‌کنیم:

df df -H

برای از کارانداختن یک Process مثلا به نام Googooli از روش ذیل استفاده می‌کنیم:

ps -aux | grep Googooli

در فهرست ظاهر شده، Process Id را یادداشت کرده و سپس با دستور ذیل، آن Process را اصطلاحا Kill می‌کنیم:

kill -9 [SomeProcessId] pkill -f [SomeProcessId]

نکته: پارامت f در دستور فوق، به معنی Force می‌باشد!

خب دوستان عزیزم، اگر تا اینجای این مقاله را مطالعه کرده‌اید و دستورات را اجرا کرده و متوجه رفتارها و پارامترهای آن شده باشید، به شما تبریک عرض می‌کنم،‌ شما تقریبا LPIC1 را یاد گرفته‌اید... هر چند باز هم دستورات زیادی داریم و هر دستوری نیز پارامترهای زیادی دارد و شاید اشاره کردن به بعضی از دستورات مهم دیگری مانند grep, zip, unzip و غیره فهرست نشده باشند، ولی شما با همین دستورات و البته اعتماد به نفسی که گرفته‌اید، می‌توانید به صورت Command Prompt / Shell در محیط Linux کار کنید و لذت ببرید.

raspberry pilinux
سلام به همه رفقا من قصد دارم تجربیات چند سال گذشتم رو در خدمت شما بزارم #با_هم_پیشرفت_کنیم
شاید از این پست‌ها خوشتان بیاید