تعجب نکنید اگر بگم توسط لینوکس محاصرهشدیم! سیستمعامل اندروید، ستآپ باکسها، دستگاههای ATM ،سیستمهای هوشمند خودرو، سرورها و خیلی چیزهای دیگه مبتنیبر لینوکساند. در اکثر حوزههای برنامهنویسی و مهندسی بهخصوص وبسرور، مثل سیستمهای خانگی خیلی خبری از ویندوز نیست. حتی وقتی با چند تا از دوستام که برای ادامه تحصیل به خارج از کشور اپلایکردن صحبتمیکردم، فهمیدم دانشجوها در اکثر دانشگاه-های مطرح دنیا فقط از لینوکس استفادهمیکنند. پس کمکم به اهمیت این سیستمعامل پیبردم و شروعکردم به یادگیری. شاید اگر مثل من فقط تجربهی کار با ویندوز را داشتهباشید، شروع لینوکس سخت و پیچیده بهنظر بیاد. (مخصوصاً با دیدن صفحهی سیاهرنگی که کلی نوشته بالا و پایین میشه و ما رو به یاد هکرها تو فیلم پلیسیا میاندازه!) اما وقتی با لینوکس آشنا بشید، میبینید مثل همین پنگوئن ساده و نازه!
این مجموعهی آموزشی به رزبریپای و پروژههای مربوط به آن میپردازد، اما باتوجه به این که اصول و دستورات لینوکس در تمام زمینهها مشابه است، برای همهی علاقهمندان به یادگیری میتواند مفید باشد. پس اگر قصد کارکردن با رزبریپای و اینترنت اشیا را دارید، یادگیری لینوکس از نون شب هم برای شما واجبتره! اگر هم با رزبرپای سر و کار ندارید و میخواهید لینوکس یادبگیرید، باز هم این مطلب برای شماست. اصلاً اگر الکی این صفحه را بازکردید، قسمت بوده لینوکس یاد بگیرید. ضرر نمیکنید!!
در این بخش قصد دارم دستورات مهم و پایهای برای کار با رزبریپای و لینوکس را بهطور کامل به شما معرفیکنم. پس از تسلط بر مباحث اصلی، برای یادگیری بیشتر میتوانید به کتابها و سایتهای مرتبط مراجعهکنید. پس در ادامه با من همراهباشید تا هر آنچه در مورد لینوکس و کار با آن نیاز دارید، با مثال و به زبان ساده یاد بگیریم.
لینوکس چیست؟
وقتی عبارت سیستمعامل را میشنویم، ناخودآگاه بهیاد ویندوز میافتیم. تعجبی هم ندارد، زیرا روی اکثر کامپیوترها و لپتاپها بهصورت پیشفرض ویندوز نصبشدهاست. در چند سال اخیر با فراگیرشدن استفاده از تبلت و موبایل و محصولات مختلف Apple، گوشهای ما با نام سیستمعاملهای دیگری مانند Android، IOS و OS X آشنا شد. حالا لینوکس هم مثل اسمهای بالا یک نوع سیستمعامل است. یکی از پرکاربردترین آنها! لینوکس در همهجا هست، از سیستمهای شبکه تا خودرو و لوازم خانگی هوشمند، سیستمهای اینترنت اشیا و حتی اندروید که بر پایهی لینوکس نوشتهشده!
حالا اولین سوال که پیش میآید این است:
چرا لینوکس انقدر مهم و محبوب شده؟
اولین دلیل میتواند منبعباز بودن آن باشد. حالا سوال دوم:
منبعباز یعنی چی؟
به زبان ساده، نرمافزار منبعباز نرمافزاری است که کد اصلی آن (Source Code) بهصورت رایگان در اختیار عموم قراردادهشده و هرکس میتواند باتوجه به نیاز و توانایی خود آن را تغییر و نسخهی جدیدتری را در اختیار بقیه قراردهد. بنابراین وقتی میگوییم لینوکس منبعباز است، یعنی میتوان آن را بهصورت رایگان نصبکرد، تغییرداد و نسخهی تغییر دادهشده را منتشر کرد. این ویژگی باعث پویایی و توسعهی سریع این دسته از نرمافزارها میشود. بهطوری که بهسرعت آپدیتشده و باگهای آن توسط برنامهنویسان شناسایی و برطرفمیشود.
حالا برگردیم به سوال اول. ویژگی دوم که باعث محبوبیت لینوکس شده، تسلط و کنترل شما بر سیستمعامل است. دلیل آن کار با دستورات و کدها بهجای آیکونها و فضای گرافیکی محدودشده است. البته برای لینوکس هم مانند ویندوز، نسخهی دسکتاپ منتشرشده اما قدرت اصلی آن در Command-Line و دسترسی به جزئیات سیستمعامل است.
اگر قصد دارید این سیستمعامل را دانلود و نصبکنید، با توزیعهای بسیار زیادی از آن روبهرو میشوید که هرکدام در یک حوزه کاربرد بیشتری دارد. این نکته با توجه به Open Source بودن لینوکس خیلی هم عجیب نیست. همانطورکه گفتیم هر شخص و گروهی میتواند نسخهی جدیدی از لینوکس را طراحی و منتشر کند. توصیهمی-کنم در قدم اول خودتان را خیلی درگیر انواع توزیعها نکنید. کافیست با اصول و نحوهی کار با لینوکس آشنا شوید و بعداً بر اساس نیاز و حوزهی کاری خود، توزیع مناسب را انتخابکنید. بنابراین نگران نباشید، نحوهی کار با همه-ی توزیعها مشابهبوده و فقط محیط گرافیکی و ویژگیهایی که ارائهمیکنند باهم متفاوت است. در اینجا آموزش را روی رزبریپای و رزبین که بر پایهی توزیع دبیان نوشتهشده جلو میبریم، اما شما میتوانید هر نسخه از لینوکس که میخواهید روی برد یا کامپیوتر خود نصب و در ادامهی آموزش با من همراهباشید. البته اگر از کامپیوتر استفادهمیکنید، در ابتدا بهتر است لینوکس را بهصورت مجازی (Virtual) روی سیستم خود نصب و پس از آشنایی، از آن بهعنوان سیستمعامل اصلی استفادهکنید.
در این آموزش فرض شده که رزبریپای شما از قبل دارای سیستمعامل است. در غیر این صورت برای نصب سیستمعامل میتوانید به آموزش راهاندازی رزبریپای ۴ با نصب سیستمعامل رزبین مراجعه کنید.
معرفی دستورات و مفاهیم پایهای و کاربردی برای شروع کار با لینوکس
پس از این که به اهمیت لینوکس پیبردم، تصمیمگرفتم با جستجو در صفحات مختلف و بررسی کتابهای متنوع، یادگیری این سیستمعامل را شروعکنم. (خیلی به کلاس رفتن و صرف هزینه و وقت زیاد برای یادگیری محدود مطالب اعتقاد ندارم). در ابتدا مسلماً با سیل عظیمی از اطلاعات روبهروشدم. وقتی هیچ آشنایی اولیهای با یک مطلب نداشتهباشید، قطعاً این که از کجا شروعکنید خیلی در فرآیند یادگیری و علاقهی شما تاثیرگذار خواهدبود. بنابراین از آن جایی که با این حس سردرگمی و مطالعهی زمانبر آشنا هستم، تصمیمگرفتم اطلاعاتم در این زمینه را بهصورت کاربردی و خلاصه با شما به اشتراک بگذارم تا در عین استفادهی بهینه از وقت، بتوانید هر آنچه برای شروع کار با لینوکس نیاز دارید در این بخش پیدا کنید. قطعاً نمیتوانگفت با یادگیری این دستورات، لینوکسکار حرفهای خواهیدشد اما تسلط بر آنها برای کار با رزبریپای کافی است.
قبل از معرفی دستورات بهتر است ابتدا با مفاهیم زیر آشنا شویم:
- Kernel: کرنل را میتوان قلب سیستمعامل نامید. در واقع کرنل یا هستهی سیستمعامل ارتباط بین نرمافزار و سختافزار را برقرار و عملکرد سختافزار را کنترلمیکند. در حقیقت لینوکس کرنل و Ubuntu، Raspbian، RedHAT سیستمعاملاند. (کرنل رو میشه گفت نسخهی ساده شده و پایهای سیستمعامل برای ارتباط با سختافزاره)
- Shell: یک رابط بین User و کرنل است که دستورات نوشتهشده توسط کاربر را اجرا و نتیجه را نمایش می-دهد. Shell دارای انواع مختلفی است که در رزبین بهصورت پیشفرض از Bash استفادهمیشود. مزیت Shell نسبت به رابطهای گرافیکی، قدرت و تسلط بالای شما روی کرنل و سیستمعامل است اما در مقابل نیاز دارید دستورات لارم برای کار با آن را حفظکنید (درواقع به هر رابط کاربری برای کار با سیستمعامل Shell گفتهمیشه اما این عبارت برای رابطهای متنی Command-Line رایجتره). منظور ما از دستورات لینوکس همین دستورات کار با Shell است که در ادامه با آنها آشنا میشویم. قطعاً کسی نمیتواند همهی دستورات را حفظکند. بنابراین کافیست دستورات پایهای را بهخاطر سپرده و بقیه را درصورت نیاز در مراجع جستوجو کنید.
- Terminal: به محیط و برنامهی لازم برای نمایش و راهاندازی Shell ، ترمینال میگویند. ترمینال یک رابط متنی برای دریافت ورودی و خروجی است و Shell دستورات نوشتهشده در آن را اجرا میکند. (پس ترمینال اون صفحه سیاهس، Shell دستورایی که توش مینویسین رو اجرا میکنه و کرنل هم ارتباط بین سیستم-عامل و سختافزار رو برقرار میکنه)
در رزبین برای ورود به Shell و Terminal کافیست از نوار ابزار روی آیکون Terminal کلیک یا از ALT+CTRL+T استفادهکنید.
- Prompt: محل تایپ دستورات شما در ترمینال را نشانمیدهد. در اکثر توزیعهای لینوکس، Prompt به-صورت زیر است:
User@Hostname: Directory $
همانطور که در تصویر زیر مشاهدهمیکنید، در اینجا نام User نام پیشفرض pi و نام Hostname، sanatbazar است. دایرکتوری نیز ~ میباشد.
- دایرکتوری (Directory)
دایرکتوری در لینوکس معادل پوشه (Folder) در ویندوز است. در واقع یک دایرکتوری میتواند حاوی فایلها یا دایرکتوریهای دیگر باشد. این دسته از فایلها با رنگ آبی در لینوکس نشاندادهمیشوند. با توجه به این که در محیط خط فرمان خبری از رابط گرافیکی نیست، برای دسترسی به هر فایل و دایرکتوری باید آدرس آن را بنویسیم. اجازهبدید نحوهی آدرسدهی را با یک مثال ببینیم:
/home/pi
در اینجا ما در فولدر pi که خودش در فولدر home قراردارد، هستیم. حال با انتخاب فایل Documents از pi، Current Directory ما به /home/pi/Documents تغییر میکند.
چند تا دایرکتوری مهم و معروف در لینوکس هست که با آن ها زیاد سروکار دارید:
/: دایرکتوری root که تمامی دایرکتوریها در آن قرار دارند. در لینوکس همه چیز از / شروع میشود. (پس اگه فایلها و آدرسها رو در لینوکس مثل یک درخت ببینیم، اولین فایل که همه از اون رشد میکنن، دایرکتوری روته)
نکته: در لینوکس دو نوع root داریم. دایرکتوری root و کاربر root. کاربر root مانند user administrator در ویندوز عملمیکند که خود دارای یک Home Directory با نام root میباشد و با / متفاوت است.
/home: مشابه My Documents در ویندوز، اطلاعات مربوط به هر کاربر سیستمعامل در این پوشه قرار می-گیرید. این دایرکتوری هم بهاختصار با ~ نشاندادهمیشود.
/bin: فایلها و کدهای مربوط به دستورات لینوکس در این پوشه قرار دارد. مثلاً کد نوشتهشده برای اجرای cd، ls و ...
/boot: حاوی فایلهای مربوط به بوت سیستمعامل
/dev: شامل Device Fileها است مثل رابطهای سریال و USB برد.
/etc: این پوشه شامل تمامی configuration File های دستگاه شماست. Configuration Fileها اطلاعات و تنظیمات لازم برای نحوهی اجرای برنامههای سیستم هستند.
/media/pi: در صورتی که فلش مموری یا هارد اکسترنال را به رزبریپای متصلکنید، محتویات آنها در این آدرس قرار میگیرد.
- فایلهای متنی و معمولی: فایلهای text که میتوانند شامل متن و کد باشند. معادل فرمت .txt در ویندوز. این فایلها بیرنگ هستند.
- فایلهای اجرایی (Executable Files): فایلها و برنامههایی که میتوانند توسط سیستمعامل اجرا شوند. این دسته از فایلها با رنگ سبز نشاندادهمیشود.
- فایلهای لینک (Link Files): این فایلها مشابه Shortcut در ویندوز عملمیکنند و شامل دو نوع Hard Links و Soft Links هستند. همانطور که از نام آنها میتوان حدسزد، لینکها شما را به فایل اصلی که از روی آن ساختهشدهاند، ارجاعداده و هر تغییری روی مرجع، بهطور خودکار روی آنها نیز اعمال-میشود. هاردلینک در صورت حذف فایل اصلی همچنان قابل استفاده و سالماند اما برخلاف آنها اگر فایل مرجع دچار مشکل یا حذفشود، سافتلینکها دیگر قابل استفاده نیستند و به آنها Broken links گفته-میشود. رنگ هاردلینک مشابه رنگ فایل مرجع و رنگ سافتلینک آبی روشن است. هچنین Broken Linkها با رنگ قرمز نشاندادهمیشوند.
- فایل دیوایس (Device File): اطلاعات مربوط به دستگاهها و ماژولهایی که به برد و سیستم شما متصلمیشوند در این فایلها قرارمیگیرند (ارتباط سریال و USB و ...). این فایلها با رنگ زرد نمایشداده-میشوند.
- فایلهای گرافیکی: فایلهای تصویری مانند عکسها و فیلمها. این دسته از فایلها با رنگ صورتی نشاندادهمیشوند.
- فایلهای فشرده (Archive Files): فایلهای فشرده و زیپشده که مانند Broken Links با رنگ قرمز نمایش دادهمیشوند.
پس از آشنایی با مفاهیم فوق، دستورات مهم و اساسی لینوکس را یکبهیک بررسیمیکنیم. برای یادگیری بهتر، میتوانید Command-Line را اجرا کرده و همراه با من دستورات را Run کنید.
pwd: این دستور آدرس دایرکتوری که شما الان در آن هستید (Current Directory) را نشانمیدهد. بهعنوان مثال، همانطور که گفتیم ~ نماد Home Directory برای هر کاربر است و طبق انتظار ما، دستور pwd آدرس Home/Pi را نمایش میدهد. Pi در اینجا نام کاربری است که ما با آن وارد سیستم شدهایم. (پس pwd یعنی من الان کجام؟)
whoami: با اجرای این دستور، نام کاربری شما نمایشدادهخواهدشد. بهصورت پیشفرض این نام pi است.
$ whoami
mkdir/rmdir: برای ایجاد دایرکتوری (همون create new folder) از دستور mkdir استفادهمیکنیم. برای مثال فرضکنید میخواهیم در Home Directory پوشهای با نام sanatbazar ایجادکنیم. برای این کار دستور زیر را مینویسیم:
mkdir sanatbazar $
برای ایجاد چند فایل میتوانید از space استفادهکنید:
$ mkdir sanatbazar1 sanatbazar2
همانطور که حدس زدید، برای پاککردن یک پوشه نیز دستور rmdir را اجرا میکنیم. بنابراین برای پاککردن پوشهی فوق باید rmdir sanatbazar $ را تایپکنیم.
man: دستور man یکی از دستورات بسیار کارآمد برای کاربران لینوکس بهخصوص تازهکار هاست. چرا؟ این دستور درواقع همان راهنما و Help سیستمعامل است. پس با آن میتوانید اطلاعات و طرز استفاده از هر دستوری را که میخواهید، خیلی جامع و روان مطالعهکنید. مثلاً برای دستور rmdir عبارت $ man rmdir را اجرا کنید تا صفحهی راهنما برای شما بازشود. در این صفحه با کلیدهای جهت روی کیبورد میتوانید متن را بالا و پایین کرده و با کلید Q از آن خارجشوید. اگر میخواهید عملکرد هر دستور را خیلی خلاصهتر بخوانید، میتوانید از whatis $ و نام دستور مورد نظر استفادهکنید.
date: نمایش تاریخ و ساعت
$ date
clear: زمانی که دستورات متعددی را واردکردهاید، با استفاده از $ clear میتوانید صفحهی Command-Line را پاککنید.
cd: برای تغییر دایرکتوری که همان معادل با کلیککردن و بازکردن فولدرها در ویندوز است، از cd استفادهمی-کنیم. برای این کار فرضکنید میخواهیم از آدرس ~ به آدرس ~/sanatbazar برویم. یعنی فایل sanatbazar را از Home Directory انتخابکنیم:
cd sanatbazar $
در اینجا چون sanatbazar در ~ بود، فقط کافیست که نام آن را مقابل cd بنویسیم. اما اگر این پوشه در آدرس دیگری و خارج از ~ قرارداشت، باید آدرس آن را بنویسیم. مثلاً فرضکنید ما در ~ و sanatbazar در ~/documents باشد. برای اینکار باید دستور cd Documents/sanatbazar $ را بنویسیم.
در لینوکس دو نوع آدرسدهی داریم. آدرسدهی مطلق و نسبی. در روش مطلق، آدرس کامل فایل را مینویسیم. مثلاً در مثال بالا فرضکنید میخواهیم از ~/Documents/sanatbazar به ~/Documents/ برگردیم. در آدرسدهی مطلق باید از دستور cd ~/Documents $ و در نسبی از عبارت زیر استفادهکنیم.
cd .. $
در واقع اگر فایلها و آدرسها را در لینوکس بهشکل یک درخت ببینیم، دو نقطه (..) یعنی شاخهی قبلی. حالا تمرین: بهصورت نسبی از ~/Documents/ به ~/Desktop بروید.
جواب: cd ../Desktop $ یعنی یک شاخه برو عقب (به ~) و بعد وارد Desktop شو. همچنین ./ یعنی current directory (آدرسی که هر لحظه در آن هستید). از این آدرسدهی بیشتر برای کپی و انتقال فایلها استفادهمیشود.
نکته: پس از نوشتن چند حرف اول هر فایل با زدن Tab، بقیهی نام آن بهصورت خودکار نوشتهمیشود. برای مثال در ~ با نوشتن cd De و زدن Tab میبینید که Desktop نشاندادهخواهدشد. اگر حروف نوشتهشده بین چند اسم مشترک باشد با دوبار زدن Tab تمام آنها نمایشدادهخواهدشد.
ls: پرکاربردتربن دستورهای لینوکس همین ls و cd هستند. این دستور محتویات درون هر فولدر را لیست می-کند. در واقع با ls میتوانید ببینید در هر فولدر چه فایلها و دایرکتوریهایی وجود دارد. برای کار با این دستور کافیست آدرس یا نام دایرکتوری مورد نظرتان را مقابل آن بنویسید. بهعنوان مثال میخواهیم محتویات داخل Home Directory را ببینیم:
$ ls ~
هر دستور در لینوکس دارای کلیدهای مختلفی است که با - مشخصشده و عملکرد این گزینهها در man آن دستور نوشتهشدهاست. در واقع با استفاده از کلیدها (که به آنها Switch میگویند) میتوانید از قابلیتهای اضافهی آن دستور استفادهکنید. بهعنوان مثال اگر ls را بهصورت ls –a $ استفادهکنید، فایلهای Hidden هر فولدر نیز نشاندادهخواهدشد.
$ ls –a ~
همانطور که مشاهده میکنید، نام فایلهای Hidden با . شروعشده و برای ایجاد این فایلها کافیست اول اسم آنها .بگذارید (مثلاً بهجای test از .test استفادهکنید). همچنین میتوانید دو سوییچ را بهصورت همزمان استفادهکنید. مثلاً $ ls –s که سایز هر فایل را نشانمیدهد را همزمان با –a بهصورت $ ls –as ~ اجرا کنید.
tree: مشابه دستور ls محتویات هر پوشه و زیر مجموعههای آن را بهصورت درختی نشانمیدهد. برای مثال بالا:
$ tree ~
cp: کپیکردن فایلها و دایرکتوریها. بهعنوان مثال میخواهیم فایل متنی test را با نام test2 کپیکنیم. برای این کار از دستور $ cp test test2 استفادهمیکنیم. در مثال بعدی میخواهیم test را در آدرس ~/Desktop کپیکنیم:
$ cp test ~/Desktop/test2
mv: این دستور معادل Cut در ویندوز عملمیکند و طرز استفاده از آن مشابه cp است. همچنین از این دستور برای Rename کردن یک فایل نیز استفادهمیشود. برای این کار فایل مورد نظرتان را با نام دیگری در همان آدرس Cut کنید. بهعنوان مثال $ mv test sanatbazar نام فایل test را به sanatbazar تغییر میدهد.
rm: معادل delete در windows است. نکتهی مهم در مورد این دستور غیر قابل برگشت بودن آن است. در واقع باید گفت این دستور معادل Shift+Delete است. پس برای استفاده از این دستور دقتکنید!
اگر دستور rm را با سوییچ –i استفادهکنید، قبل از حذف از شما سوالمیشود که آیا از پاککردن این فایل مطمئنید (مشابه ویندوز)، اگر بله y را تایپ و enter را بزنید. همچنین برای حذف یک دایرکتوری حاوی فایل، اگر از دستور $ rmdir استفادهکنید با خطا مواجهمیشوید. در واقع rmdir برای حذف دایرکتوریهای خالی بهکار می-رود. برای این کار باید از rm با سوییچ –r استفادهکنید.
نکته: در لینوکس کارکترهایی وجود دارد که کار با بعضی دستورات را برای ما سادهتر میکند. به این کارکترها Wildcard گفتهمیشود. برای درک راحتتر، آنها را با مثال بررسیمیکنیم. فرضکنید در پوشهی Desktop فایلهای زیر موجود است:
Test1.txt، Test2.txt، Test3.txt، Test1a.txt، Text1.png و Test1.jpeg
*: به معنای هیچ یا همه. این کارکتر میتواند بهجای چندین کارکتر بنشیند.
$ rm *.txt
این دستور تمام فایلهایی که به .txt ختمشوند را پاک میکند. پس * در اینجا تعیینمیکند که بهجز .txt باقی حروف هرچه باشد مهمنیست.
$ rm ~/Desktop/*
در دستور بالا، rm روی تمام فایلهای موجود در Desktop اجرا میشود.
?: مشابه * است اما فقط بهجای یک حرف میتواند بنشیند. برای مثال:
$ rm Test?.txt
فایلهای Test1.txt و Text2.txt را حذف میکند. توجه کنید که تعداد حروف در اینجا مهم است. برای مثال $ rm Test??.txt فقط Test1a.txt را پاکمیکند.
{ }: آکولاد انتخاب ما را به چند کلمه محدودمیکند. مثال:
$ rm Test1.{png,jpeg}
این دستور یعنی فایلهای با نام Test1. که دارای پسوند png یا jpeg باشند. پس اینجا فایلهای Test1.png و Test1.jpeg حذف و بقیه باقیمیمانند.
[ ]: براکت مشابه آکولاد عملمیکند اما فقط برای یک حرف. پس:
$ rm Test[1,3].txt
این دستور Test1.txtو Test3.txt را حذفمیکند. در واقع هر براکت جای یک حرف مینشیدند. Te[s,x]t[1,2].txt یعنی یکی از حالتهای Test1.txt، Test2.txt، Text1.txt و Text2.txt
[! ]: علامت تعجب بهمعنای نفی.
$ rm Test[!1]*
تمام فایلهایی که پس از Test عدد 1 را ندارند، پاکمیکند. توجهکنید که با زدن * در انتها تعیینکردیم تعداد و نوع بقیهی حروف مهمنیستند.
shutdown: این دستور برای خاموشکردن سیستمعامل استفادهمیشود. بله فقط سیستمعامل! برد شما همچنان دارای تغذیه است و برای قطع آن باید منبع تغذیه را قطعکنید (در کامپیوترها نیازی به این کار نیست!). نکتهی جالب دربارهی shutdown، سوییچهای متنوع آن است که به تعدادی از آنها اشارهمیکنیم:
$ shutdown
این دستور سیستمعامل را پس از یک دقیقه خاموش میکند.
$ shutdown –r
سیستمعامل را پس از یک دقیقه Restart میکند.
$ shutdown –h now
سیستمعامل را فوراً خاموش میکند. بهجای این دستور میتوان از $ poweroff هم استفادهکرد.
$ shutdown –r now
سیستمعامل را فوراً Restart میکند. بهجای این دستور میتوان از $ reboot هم استفادهکرد.
$ shutdown –h 10:15&
سیستمعامل را در ساعت 10:15 دقیقه خاموشمیکند.
برای لغو عملیات فوق میتوانید از سوییچ –c استفادهکنید. یعنی $ shutdown –c
همین حالا یکی از دستورهای shutdown را اجرا کنید تا اهمیت دستور بعدی را متوجهشوید.
sudo: در لینوکس کاربران متعددی با سطح دسترسی مختلف به سیستمعامل میتوان تعریفکرد. در این میان کاربر root بیشترین دسترسی را داشته و میتواند سایر کاربران و سیستمعامل را مدیریتکند. اگر دستور shutdown را اجرا کردهباشید، مطمئناً با خطا مواجهشدهاید. زیرا کاربران عادی توانایی خاموش و restart کردن سیستم را ندارند. این محدودیت در بسیاری از دستورات و حتی فایلها نیز دیدهمیشود. میتوان فایلی را ایجادکرد که سایر کاربران توانایی حذف، انتقال و تغییر آن را نداشتهباشند. برای استفاده از توانایی root دو راه دارید: یا با کاربر root از سیستمعامل استفادهکنید یا با sudo دستورات را اجرا کنید. رمز این کاربر بهصورت پیشفرض همان رمزی است که پس از نصب سیستمعامل وارد کردهاید. بنابراین اگر از رزبین استفادهمیکنید و رمز را تغییر ندادهاید، رمز همان raspberry خواهدبود. برای ورود به حساب root میتوانید از دستور زیر استفادهکنید:
$ sudo –i
پس از واردکردن رمز prompt شما از $ به # تغییرمیکند و میتوانید از مزایای root استفادهکنید. برای خروج از این حساب هم کافیست $ exit را واردکنید. راه دوم استفاده از دستور sudo در ابتدای سایر دستورات است. مثلا بهجای $ shutdown از $ sudo shutdown استفادهکنید. در این صورت بعد از واردکردن رمز، دستور شما بدون خطا اجرا میشود. کلاً اگر قبل از هر عملی در لینوکس sudo بنویسید، این دستور از طرف root اجرامی-شود.
nano: ایجاد فایل متنی یا text. این دستور بسیار کاربردی کار یک ویرایشگر متنی را انجاممیدهد. در واقع برای برنامهنویسی و تایپ هرچیزی در لینوکس از این دستور میتوانید استفادهکنید. برای مثال میخواهیم عبارت Hello World! را در یک فایل متنی با اسم test بنویسیم. برای این کار ابتدا دستور nano test $ را اجرا می-کنیم. اگر میخواهید این فایل را در آدرسی به جز Current Directory ایجادکنید کافیست بهجای test آدرس آن را بنویسید. (/testآدرسnano $) در پنجرهی بازشده عبارت Hello World! را نوشته و برای ذخیره CTRL+X و سپس برای تایید ذخیره y و Enter را میزنیم. اگر قبل از زدن Enter از ذخیره منصرفشدید CTRL+C را بزنید تا این کار کنسلشود. حال اگر دوباره nano test $ را اجرا کنید، عبارت Hello World! را خواهیددید. اگر یک فایل متنی را با دستور $ sudo nano ایجادکنید، سایر کاربران بهصورت عادی توانایی تغییر ، حذف و انتقال آن را ندارند.
cat: برای خواندن فایل متنی نوشتهشده از cat استفادهکنید. بنابراین اگر cat test $ را اجرا کنید، عبارت Hello world! نمایشدادهمیشود.
less: گاهی متن آنقدر طولانی است که خواندن آن با زدن cat بسیار سخت خواهدبود. برای این متنها بهتر است از دستور $ less استفادهکنید. با این دستور با زدن کلید جهتها متن شما خطبهخط و با زدن page up و page down بهصورت صفحهبهصفحه نشاندادهمیشود.
$ less نام فایل متنی
Redirections:
عملگر Pipe (|): معمولاً با نگهداشتن کلید Shift و کلید بالای Enter نوشتهمیشود و خروجی یک دستور را به-عنوان ورودی دستور دیگر اعمالمیکند.
دستور دوم | دستور اول $
<: این عملگر نتیجهی یک دستور را در فایل موردنظر ذخیرهمیکند. مثلاً:
$ echo hello > test
Hello در فایل متنی test ذخیرهمیکند. با این عملگر هرچه از قبل در test بوده حذف و فقط hello ذخیرهمی-شود.
>>: مشابه < است با این تفاوت که محتویات قبلی را حذفنکرده و محتویات جدید را به انتهای آن اضافهمی-کند.
head: 10 خط اول هر صفحه را نمایشمیدهد. برای مثال میخواهیم محتویات فایل /var/log/syslog را که مثل جعبه سیاه هواپیما تمام فعالیتهای سیستمعامل را ذخیرهمیکند، بخوانیم. برای این کار نیاز به دسترسی root دارید. پس:
$ sudo head /var/log/syslog
با سوییچ –n میتوانید تعداد خطهای لازم برای نمایش را تغییردهید.
$ sudo head /var/log/syslog –n 15
نمایش 15 خط اول فایل
tail: مشابه head اما خطوط پایانی هر فایل را نمایش میدهد.
grep: دستور کاربردی برای جستوجوی یک عبارت خاص در فایلهای متنی. زمانی که در میان متنهای طولانی، دنبال یک عبارت خاص میگردید، این دستور به شما کمک خواهد کرد:
$ grep overclock /boot/config.txt
در مثال بالا، عبارت overclock را در config.txt جستوجو میکنیم. این دستور به بزرگی و کوچکی حروف حساس نیست و برای اعمال این حساسیت باید از سوییچ –i باید استفادهکنید. همچنین اگر مثلاً کلمهی is را جستوجو کنید، عبارتهای this، list و غیره را هم برمیگرداند. برای جلوگیری از این کار باید is را در “ “ قرارداده و از سوییچ –w نیز استفادهکنید.
ehco: این دستور مانند print در زبانهای برنامهنویسی عملکرده و هر عبارتی که مقابل آن نوشتهشود، برمی-گرداند.
$ echo –e “first \nsecond”
عبارات را خطبهخط نمایش میدهد.
file: در ویندوز نوع هر فایل با پسوند آن فایل مشخصمیشود. مثلاً در پسوند یک فایل متنی عبارت .txt و در عکسها پسوندهایی مثل .jpg دیدهمیشود. در لینوکس اوضاع متفاوت است و هرجا که پسوندی دیدید، این پسوند فقط برای اطلاع کاربر نوشتهشدهاست (البته موارد استثنا هم وجود دارد). یعنی شما میتوانید یک فایل متنی را با پسوند .jpg بدون هیچ مشکلی ذخیرهکنید. در واقع لینوکس با تحلیل محتوا و هدر فایلها نوع آنها را تشخیص میدهد. برای تشخیص نوع فایل میتوانید از دستور زیر استفادهکنید:
$ file نام فایل
برای مثال در اینجا میخواهیم نوع فایل test را ببینیم:
همانطور که میبینید با این که برای این فایل پسوندی تعریفنکردیم، نوع آن Text شناساییشدهاست. البته برای این که خودمان از نوع فایلی که ایجادمیکنیم آگاه باشیم، بهتر است پسوند آن را بنویسیم.
chmod: گفتیم که سطح دسترسی به هر فایل برای کاربران مختلف، متفاوت است. حالا از کجا بفهمیم این سطح چقدره و چگونه یک فایل را عمومی یا اخصاصی کنیم؟ دستور chmod بسیار مهم بوده و بعداً در انجام پروژهها از آن استفاده خواهیمکرد. اما قبل از بررسی این دستور بگذارید برگردیم به $ ls. این دستور یک سوییچ کاربردی بهصورت –l دارد که اطلاعات مهمی را دربارهی فایلهای لیستشده، نشانمیدهد. برای مثال این دستور را روی ~ اجرا میکنیم:
$ ls –l ~
حتماً با دیدن نتیجه دستی بر محاسن کشیده و جامه دریدید که یا شیخُنا این دیگه چیه؟ ولی نگران نباشید الان توضیحمیدم که هرکدام از این عبارتها یعنی چی؟
در لینوکس فایلها را از نظر سطح دسترسی به 3 دسته میتوان تقسیمکرد:
- فایلهای خواندنی (Readable) که به اختصار با r نشانمیدهند و فقط میتوان آنها را خواند.
- فایلهای نوشتنی (Writable) که به اختصار با w نشانمیدهند و میتوان در آنها تغییر ایجادکرد.
- فایلهای قابل اجرا (Executable) که به اختصار با x نشاندادهشده و مانند کدهای برنامهنویسی می-توان آنها را اجرا کرد.
حالا آیا یک فایل میتواند هم خواندنی باشد هم نوشتنی؟ یا هم اجرایی، هم نوشتنی و هم خواندنی؟ بله. هر فایل میتواند چند حالت را باهم داشته یا اصلاً هیچکدام را نداشتهباشد!
حالا برگردیم و 10 کارکتر اول هر خط را باهم بررسیکنیم:
اولین کارکتر نوع فایل را مشخصمیکند:
_ متن یا فایل معمولی
d دایرکتوری
l لینک
(c و b و s و p هم میتونن باشن که چون بهشون برنمیخورین، اینجا بررسی نمیکنیم)
پس در مثال بالا برای test و فایل png کارکتر اول – و برای بقیه که دایرکتوری هستند، d تعریفمیشود.
9 کارکتر بعدی به سه دستهی 3 تایی تقسیممیشوند که readable ، writeable و executable را برای 3 طیف کاربر user ، group و other تعیینمیکنند. پس لازمه دستهبندی جدیدی برای فایلها معرفیکنم. در لینوکس 3 نوع مالکیت (Ownership) برای فایلها تعریفمیشود:
User: کاربری که مالک اصلی فایل است. بهصورت پیشفرض کسی که فایل را ایجادکرده.
Group: میتوانید تعدادی از کاربران را در یک گروه قرار داده و مالکیت فایل را به اعضای آن بدهید.
Other: همهی کاربرها. در واقع این فایل عمومی است و هر کسی میتواند به آن دسترسی داشتهباشد.
پس در این 9 کارکتر، 3 تای اول وضعیت User، 3تای دوم Group و 3 تای آخر Other را مشخصمیکند. مثلاً برای فایل test، user توانایی Read و Write و Group و Others فقط توانایی Read دارند.
عبارتهای بعدی سادهاست. عددی که بعد از کارکترهای گفتهشده میبینید، تعداد Hard link های موجود از فایل را در سیستم نشانمیدهد. دو عبارت بعدی هم نام User و Group مالک فایل را نمایشمیدهند که برای test، چون با دستور $ sudo nano آن را ایجادکردیم هر دو root ثبتشده. (هر کاربر یک گروه یک نفره تشکیلمیدهد که در صورت نیاز میتوانید به تعداد اعضای گروه اضافهکنید) درقسمتهای بعدی هم سایز فایل، تاریخ، زمان آخرین دسترسی و نام آن نوشتهشدهاست.
حالا تازه بریم سراغ دستور chmod. با این دستور میخواهیم 9 کارکتری که به Permissionها معروفند ، تغییر بدیم. در اینجا این کار را روی test انجاممیدهیم: (اگر مالک فایل root نبود، نیازی به استفاده از sudo نداشتیم)
$ sudo chmod ugo+rwx test
این دستور کلیترین حالت را درنظرگرفتهاست. در اینجا به سه گروه u(user)، g(group) و o(others) اجازهی r(read)، w(write) و x(execute) دادهشدهاست. پس با حذف هرکدام از حروف میتوانید دستور را مطابق نظرتان تغییردهید. اگر بهجای + از – استفادهکنید، دسترسیها را از کاربران سلب میکنید.
tar: از این دستور برای ایجاد فایلهای فشرده و زیپ استفادهمیشود. مشابه دستورهای قبلی، tar را نیز در قالب مثال بررسیمیکنیم. فرضمیکنیم دو فایل test1 و test2 در Desktop وجود دارند:
$ tar –cvf test.tar test1 test2
برای ایجاد فایل فشرده با فرمت tar از سوییچ –c و –f استفادهمیکنیم. همچنین برای مشاهدهی نتیجه، می-توان از سوییچ –v استفادهکرد. (بهجای test.tar میتوانستیم ~/Pictures/tets.tar را واردکنیم تا فایل مورد نظر در Pictures ذخیرهشود)
اگر از سوییچ –v استفادهنمیکردیم، عبارتهای test1 و test2 که هایلایتشده، نشاندادهنمیشد.
برای ایجاد فایل فشرده با فرمتهای gzip سوییچ –z و با فرمت bz2 سوییچ –j را به –cvf اضافهمیکنیم. bz2 نسبت به gzip و gzip نسبت به tar حجم کمتریدارند.
نکته: برای فایل gzip در نامگذاری از پسوند tgz و برای bz2 از tb2 استفادهکردیم.
$ tar –tvf نام فایل فشرده
از این دستور برای لیستکردن محتویات فایل فشرده (همهی فرمتها) بدون Extract کردن آن استفادهمیشود.
$ tar –xvf نام فایل فشرده
از این دستور برای Extract کردن فایلهای فشرده (همهی فرمتها) استفادهمیشود.
history: برای مشاهدهی دستوراتی که تا بهحال اجرا کردهاید، میتوانید از این دستور استفادهنمایید. همان-طور که میبینید، کنار هر دستور، شمارهای نوشتهشده که میتوانید با وارد کردن آن به همراه ! آن دستور را اجرا کنید. مثلاً در اینجا با وارد کردن $ !324 دستور $ cat test اجرا میشود. همچنین در خط فرمان میتوانید با زدن کلید جهت بالا، به دستورات قبلی خود دسترسی پیدا کنید.
touch: یک فایل خالی و بدون پسوند ایجادمیکند. بهعنوان مثال این فایل را با نام test میسازیم:
$ touch test
همچنین اگر این دستور را روی یک فایلی که قبلاً ایجادشده اجراکنید، زمان آخرین دسترسی و تغییر آن بهروزرسانی میشود. (این زمان در ls –l قابل مشاهده است)
Passwd: با این دستور میتوان رمز کاربران سیستم را تغییرداد. در صورتی که کاربران معمولی این دستور را واردکنند، میتوانند رمز خود، و در صورتی که root این دستور را اجرا کند، میتواند رمز سایر کاربران را نیز تغییر دهد.
$ passwd
تغییر رمز کاربر توسط خودش
$ sudo passwd pi
تغییر رمز کاربر pi توسط root
lsusb: مشاهدهی اطلاعات دربارهی پورتهای USB. برای مثال پس از اتصال کیبورد این دستور را اجرا میکنیم:
$ lsusb
lscpu: نمایش اطلاعات دربارهی پردازندهی برد.
$ lscpu
df: نمایش اطلاعات دربارهی حافظهی سیستم. با استفاده از سوییچ –h واحدها بهصورت مضربی از 1024 (MB) نمایشدادهمیشوند.حافظهی قابل استفاده برای شما، همان root است که در ابتدا گفتیم با / نشاندادهمیشود.
$ df –h
vcgencmd measuer_temp: مشاهدهی دمای cpu رزبریپای
$ vcgencmd measure_temp
apt-get: دستوری فوقالعاده مهم و کاربردی برای مدیریت پکیجها. این دستور باید توسط sudo اجرا شود و دارای حالتهای زیر است:
$ sudo apt-get update
با استفاده از دستور بالا اطلاعات سیستم شما نسبت به پکیجها بهروز رسانی میشود. بهعنوان مثال اگر برای یک پکیج update جدیدی ارائهشود سیستم شما از آن آگاهشده و با دستور بعدی میتوانید آن را بهروزرسانی کنید.
$ sudo apt-get upgrade
بهروزرسانی پکیجهای نصبشده
$ sudo apt-get install نام پکیج
نصب پکیج مورد نظر شما
$ sudo apt-get-cache searchنام پکیج
برای این که ببینید پکیج موردنظر شما برای نصب وجود دارد یا نه میتوانید از دستور بالا استفادهکنید.
$ sudo apt-get remove نام پکیج
با استفاده از این دستور میتوانید پکیج مورد نظرتان را حذفکنید. البته فایلهای پیکربندی آن همچنان در سیستم شما باقیمیماند. برای پاککردن پکیج و فایلهای پیکربندی آن، میتوانید از دستور بعدی استفادهکنید:
$ sudo apt-get purge نام پکیج
wget: این دستور برای دانلود فایل بهصورت مستقیم از اینترنت با وارد کردن لینک آن بهکار میرود.
$ wget لینک دانلود
git: گیت یک سیستم کنترل و مدیریت تغییرات فایلها و برنامهها برای بهبود همکاری برنامهنویسان یک پروژه است. این سیستم قابلیتهای زیادی دارد که از جمله آنها میتوان به اشتراک، توزیع و بازیابی کدهای نوشته-شده بهصورت عمومی و اختصاصی اشارهکرد. برای استفاده از گیت میتوانید از سایتهای github.com و gitlab.com و دستور $ git در لینوکس استفادهکنید. از دستورات پرکاربرد گیت میتوان به دستور زیر اشارهکرد:
$ git clone فایل مورد نظر در گیتURL
با استفاده از این دستور میتوانید فایل موجود در URL گیت را دریافتکنید. برای آشنایی بیشتر با دستور $ git میتوانید Manual آن را با $ man git مطالعهنمایید.
ifcongig: معادل ipconfig در Command-Window ویندوز است و برای پیکربندی شبکه استفادهمیشود. برای مثال در اینجا میخواهیم ip اختصاصدادهشده به برد توسط مودم را پیدا کنیم:
برای نمایش IP میتوانید از $ hostname –I هم استقادهنمایید.
ssh: از این دستور برای اتصال به یک سیستمعامل مبتنیبر لینوکس از راه دور با استفاده از پروتکل ssh استفاده میشود. نحوهی استفاده از آن بهصورت زیر است:
$ ssh نام کاربری @ ip یا Hostname
نام کاربری و Hostname همان عباراتی است که در Prompt نوشتهشدهاست. بهصورت پیشفرض نام کاربری رزبریپای، pi است و در بخش پیکربندی هم گفتیم که چطور Hostname خود را تغییر دهید (این کار را می-توانید توسط raspi-config که در ادامه آن را معرفیمیکنیم نیز انجامدهید). همچنین بهجای Hostname می-توانید IP رزبریپای را واردکنید و به آن متصلشوید. مثال:
$ ssh این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید.5.1
(به جای 192.168.1.5 باید IP رزبری خود را وارد کنید)
از این دستور میتوانید بهصوت برعکس برای دسترسی به یک سیستم لینوکسی از رزبریپای نیز استفادهکنید.
scp: با استفاده از scp میتوانید هر فایلی را با استفاده از پروتکل ssh به یک سیستم لینوکسی دیگر منتقل-کنید.
$ scp نام و آدرس فایل در مبدا Username@Hostnamr: آدرس مقصد
برای مثال میخواهیم فایل test را از Desktop در کامپیوتر به Documents در رزبریپای انتقالدهیم:
$ scp ~/Desktop/test این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید.1.5: /Documents/test
اگر در مقصد آدرسی را تعییننکنید، فایل را به Home Directory انتقالمیدهد.
Python: پایتون 2 و 3 بهصورت پیشفرض روی رزبین لینوکس نصبشدهاند. برای ورود به shell پایتون کافیست $ python را واردکنید. ($ python3 برای پایتون 3)
همچنین برای نوشتن script و اجرای آن میتوانید کد پایتون خود را در nano وارد کرده و سپس آن را با دستور زیر اجراکنید.
$ python نام فایل متنی حاوی کد
برای اجرای پایتون 3 کافیست بهجای python، python3 را بنویسید.
G++: مشابه پایتون میتوانید از زبان C++ نیز استفادهکنید. در اینجا پس از نوشتن کدها توسط دستور nano لازم است دستورات زیر را اجرا کنید. فرضمیکنیم کد خود را با نام test.cpp ذخیرهکردهایم. (برای کامپایل فایل c++ لازم است کد خود را با پسوند .cpp ذخیرهکنید)
$ g++ test.cpp –o test2
فایل کامپایل شده را با نام test2 ذخیره و با دستور زیر اجرا میکنیم:
$ ./test2
adduser: از این دستور برای اضافهکردن حساب کاربری جدید به سیستمعامل استفادهمیشود. برای این کار از کد زیر استفادهمیکنیم:
$ sudo adduser نام کاربر جدید
به عنوان مثال در اینجا کاربر arvin را ایجاد میکنیم:
$ sudo adduser arvin
سپس رمز عبور و اطلاعات تکمیلی را وارد میکنیم.
از این به بعد میتوانید با کاربر جدیدی به جز pi نیز وارد برد شوید. همچنین در دایرکتوری Home، علاوهبر pi، arvin نیز اضافهشدهاست.
deluser: همانطور که حدس زدید از این دستور برای پاک کردن حساب کاربری استفادهمیشود.
$ sudo deluser نام کاربر
نکته: با استفاده از این دستور، Home directory کاربر پاک نمیشود و فالهای آن همچنان باقی میماند. برای پا کردن کاربر و Home directory آن باید از سوییچ –remove-home استفادهکنید.
$ sudo deluser –remove-home نام کاربر
Ctrl+C و Ctrl+Z: در سیستمعاملهای لینوکسی برای متوقفکردن برنامهها از کلیدهای Ctrl+C و Ctrl+Z استفادهمیشود. اما فرق این دو کلید چیه؟
Ctrl+C: در حین انجام پردازش یا اجرای برنامهها در لینوکس، با فشار دادن کلیدهای Control+C فرمان متوقف-شدن آن دستور یا برنامه صادرمیشود. (در ویندوز تقریباً این کار را با Alt+Ctrl+del و Task Manager امجاممی-دهیم.)
Ctrl+Z: برنامه را متوقف میکند اما کامل نمیبندد. در واقع میتوانید دوباره برنامه را از هرجا که متوقفکردید، ادامهدهید. اصطلاحاً برنامه به پسزمینه فرستادهمیشود. برای ادامهی آن از دستور زیر استفادهمیکنیم.
$ fg
raspi-comfig: با این دستور همان پیکربندیهایی که در محیط گرافیکی دیدیم و حتی بیشتر را میتوانید انجامدهید. برای اجرای آن نیاز به دسترسی root و sudo دارید.
$ sudo raspi-config
با اجرای دستور بالا، این صفحه نمایشدادهخواهدشد:
1- در بخش اول میتوانید رمز عبور خود را تغییردهید.
2- در بخش دوم تنظیمات شبکه شامل :
- تعیین Hostname
- اتصال به مودم Wi-Fi
- فعال یا غیرفعالکردن Predictable network interface name
3- تنظیمات Boot شامل :
- بوت به CLI یا GUI
- بوت پس از اتصال به شبکه
- Splash screen
4- تنظیمات محل، زمان و کیبورد
5- تنظیمات رابطهای سریال و SSH و دوربین
6- تنظیمات Overclock
7- تنظیمات پیشرفته شامل:
- تخصیص پارتیشن اضافه به root directory. در نسخهی اخیر رزبین این کار بهصورت خودکار انجاممی-شود.
- تنظیمات Overscan و Underscan
- تقسیم RAM بین CPU و GPU
- تنظیمات رابط صوتی
- تنظیمات صفحه نمایش
- بزرگنمایی تصویر با دوبرابر کردن سایز هر پیکسل
- فعال و غیرفعالکردن کتابخانهی گرافیکی OpenGL Driver (مشابه DirectX)
- فعال و غیرفعالکردن Composite Manager (برای اجرای برخی پکیجهای زیباسازی دسکتاپ و گرافیکی)
- تنظیمات نمایش ویدئو برای رزبریپای 4 با توجه به دو خروجی HDMI
8- بهروزرسانی
9- دربارهی دستور
قرار دادن دستور در Startup سیستمعامل:
زمانی که پروژهای را با رزبریپای انجاممیدهید، برنامهی شما باید این توانایی را داشتهباشد تا بهصورت خودکار پس از روشنشدن، اجرا شود. در غیر این صورت کاربر باید هر بار به برد متصل و بهصورت دستی برنامه را اجرا کند که اصلاً منطقی نیست! برای این کار لازم است که برنامهی خود را در فایل .bashrc در HomeDirectory بنویسید. بنابراین به دایرکتوری ~ رفته و با استفاده از دستور sudo، فایل .bashrc را بخوانید. سپس در انتهای متن می-توانید دستور مورد نظرتان را بنویسید. برای مثال میخواهیم هر بار پس از روشنشدن، عبارت Hello! را ببینیم:
$ sudo nano .bashrc
و در انتهای فایل دستور زیر را وارد میکنیم:
echo Running at boot
echo Hello!
بهصورت پیشفرض، دستورات قرار دادهشده در .bashrc پس از هر بار باز گردن Terminal یا برقراری ارتباط به-صورت SSH اجرا خواهندشد. حالا برای این که این دستورات پس از boot شدن نیز اجرا شوند، دستور echo Running at boot را نیز اضافه میکنیم. از این پس، بعد از هر بار روشنشدن برد، دستور $ echo Hello! اجرا خواهدشد. بهطور مشابه میتوان دستور مورد نظر را در /etc/rc.local قبل از exit 0 و همراه با علامت & نیز نوشت.
echo Hello! &
exit 0
علامت & برای این است که دستور مورد نظر شما بهصورت مستقل و موازی با عملیات boot اجرا شود. زیرا اگر این دستور طولانی باشد، boot شدن برد را با مشکل روبهرو خواهدکرد.
خب تا اینجا با دستورات مهم و کاربردی لینوکس بهخصوص برای کار با رزبریپای آشنا شدیم. با توجه به این که از این به بعد فقط با محیط Command-line کار میکنیم، بهخاطر داشتن دستورات بررسیشده بسیار مهم است.
در بخش بعدی میخواهم روشی را به شما معرفی کنم که بدون نیاز به LCD و مانیتور و تنها با استفاده از لپتاپ خود بتوانید با کابل یا بهصورت بیسیم به دسکتاپ و Command-Line رزبریپای دسترسی داشته باشید. پس با من همراه باشید.
نظرات شما باعث بهبود محتوای آموزشی ما میشود. اگر این آموزش را دوست داشتید، همینطور اگر سوالی در مورد آن دارید، از شنیدن نظراتتان خوشحال خواهیم شد.
نظرات (2)