آموزش لینوکس
مؤلف دوره:
این دوره توسط بهزاد مرادی تألیف شده است.
سطح دوره:
سطح این دوره مقدماتی است.
پیشنیازها:
این دوره هیچ پیش نیازی ندارد.
تعداد آموزشها:
۸۴ قسمت
معرفی سیستمعامل اپنسورس گنو/لینوکس
Linux را میتوان بهعنوان بزرگترین پروژهٔ نرمافزاری تاریخ بشر تلقی کرد چرا که کامیونیتی (جامعه) دولوپرهای این پلتفرم بسیار گسترده است و همین مسأله به منزلهٔ یکی از رموز موفقیت و همهگیر شدن لینوکس بوده است. لازم به ذکر است که هر ساله بیش از ۲۰۰۰ دولوپر از چیزی در حدود ۵۰۰ شرکت و سازمان مختلف در توسعهٔ لینوکس مشارکت میکنند.
لینوکس هر روز شاهد تغییر و بهروزرسانیهای جدیدی است و روزی نیست چندین پَچ برای آن منتشر نشود چرا که دنیای فناوری در حال تغییر است و برای زنده نگاه داشتن این پلتفرم و رشد بیش از پیش آن، باید بهروز و نوآور بود.
معرفی دورهٔ آموزش لینوکس
امروزه شاهد آن هستیم که لینوکس حتی در جاهایی که فکرش را هم نمیکنیم به کار گرفته شده است؛ از گوشیهای اندرویدی گرفته تا اَبَرکامپیوترها، ماشینهای بدون سرنشین، سیستمهای اِمبِدِد و … همگی به نوعی از لینوکس استفاده میکنند. در دنیای فناوری اطلاعات، روزبهروز شاهد تقاضای بیشتری برای توسعهدهندگان و ادمینهای لینوکس هستیم، لذا بهنظر میرسد که کسب دانش و تجربهٔ کار با لینوکس، نویدبخش آیندهٔ کاری خوبی برای علاقمندان به این حوزه باشد.
در دورهٔ آموزش مقدماتی لینوکس در سکان آکادمی، دانشجویان با اصول پایهای کار با سیستمعامل گنو/لینوکس همچون نحوهٔ استفاده از کامندلاین، مدیریت سیستم، به کارگیری رابط گرافیکی و … آشنا خواهند شد.
خالق کِرنِل لینوکس
Linus Benedict Torvalds در ۲۸ دسامبر ۱۹۶۹ در شهر هلینسکی کشور فنلاند در خانوادهای فنلاندی-سوئدی بهدنیا آمد و در حال حاضر نیز ساکن ایالات متحده است. علاقهٔ لینوس به کامپیوترها در سن ۱۱ سالگی با یک دستگاه کومودور و کدنویسی با زبانهای بیسیک و اسمبلی شروع شد. سپس او تحصیلات آکادمیک خود را در رشتهٔ علوم کامپیوتر در مقاطع لیسانس و فوقلیسانس در دانشگاه هلینسکی گذراند و در سال ۱۹۹۹ هم دکترای افتخاری دانشگاه استکهلم را دریافت کرد.
با خواندن کتابی تحتعنوان «سیستمعاملها: طراحی و پیادهسازی» زندگی لینوس دستخوش تغییر شد به طوری که شیفتهٔ فلسفهٔ سیستمعامل یونیکس به خاطر ساختار ساده و بدون پیچیدگی این سیستمعامل شد (لینوس با الهام گرفتن از این کتاب، از پایانامهٔ فوق لیسانس خود تحتعنوان «لینوکس: سیستمعاملی پرتابل» دفاع کرد).
لینوس توروالدز در سال ۱۹۹۱ کار بر روی کِرنِل لینوکس را شروع کرد و نهایتاً نسخهٔ ۱ کرنل در ۱۴ مارس ۱۹۹۴ منتشر شد؛ زمانی که لینوس این کار را شروع کرد، هدف اصلیاش داشتن یک سیستمعامل کاملاً شخصی بود اما به مرور زمان هستهٔ لینوکس سنگ زیربنای سیستمعاملهای مختلفی همچون گنو/لینوکس، اندروید و کروم شد. بهطورکلی، لینوس توروالدز ۲ بار دنیای فناوری را متحول ساخته است: یک بار با خلق Linux Kernel و بار دیگر هم به خاطر ابداع سیستم ورژن کنترل Git.
به صورت عامیانه، Linux (لینوکس) به توزیعهای مختلفی از سیستمعاملها اشاره دارد که مبتنی بر Linux Kernel هستند اما اگر بخواهیم تخصصیتر به قضیه نگاه کنیم، لینوکس صرفاً به خود کِرنِل (هسته) اشاره دارد (کِرنِل لایهای نرمافزاری است که مابین سختافزار و دیگر اپلیکیشنها قرار گرفته و تعامل با سختافزار را از طُرُق مختلف امکانپذیر میسازد). حال برای آنکه یک سیستمعامل کامل داشته باشیم، توزیعهای مختلف لینوکس لایبرریها و ابزارهایی از پروژهٔ GNU و دیگر پروژههای اپنسورس را به خدمت گرفتهاند تا سیستمعامل گنو/لینوکس بتواند با دیگر رقبا همچون ویندوز یا مکینتاش برابری کند.
تاریخچهٔ لینوکس
ریشهٔ لینوکس به Unix بازمیگردد. سیستمعاملی که به ماژولار بودن و پرتابل بودن معروف است. یونیکس یک سیستمعامل اینترپرایز بود؛ به عبارت دیگر، رایگان در دسترس علاقمندان قرار نمیگرفت و به همین دلیل، برخی از دولوپرها درصدد برآمدند تا رقیبی اپنسورس و رایگان توسعه دهند و در میان این دست دولوپرها، Richard Stallman نقش کلیدیتری در طراحی چنین سیستمعاملی داشت.
در واقع، زمانی که وی در لابراتوار هوش مصنوعی دانشگاه MIT مشغول به تحقیق و کار بود، پروژهای موسوم به GNU را شروع کرد (GNU مخفف واژگان GNU Is Not Unix است) و در سال ۱۹۸۴ کار در لابراتور را رها کرده و مؤسسهٔ Free Software Foundation (بنیاد نرمافزارهای آزاد) یا به اختصار FSF را در سال ۱۹۸۵ تأسیس کرد تا بتواند پروژهٔ گنو را به عنوان نرمافزاری آزاد منتشر کند (بنیاد نرمافزارهای آزاد بیش از هر چیزی یک جنبش نرمافزاری محسوب میشود و ریچارد استالمن هم به نوعی رهبر این جنبش است).
پروژهٔ گنو بسیاری از کامپوننتهای یک سیستمعامل را داشت اما کماکان فاقد یک هسته (کِرنِل) بود. در همین زمان، دولوپری فنلاندی به نام Linus Torvalds در حال کار بر روی جایگزین آزاد دیگری برای یونیکس بود که در ۲۵ ماه آگوست سال ۱۹۹۱ به صورت علنی کار بر روی چنین پروژهای را به اطلاع دیگر دولوپرها رساند که در نهایت در سال ۱۹۹۴ اولین نسخه از کِرنِل لینوکس با کمک یکسری از دیگر دولوپرهای علاقمند عرضه شد (به گفتهٔ خود لینوس توروالدز، اگر در آن زمان کِرنِل رایگان خوبی در دسترس بود، به احتمال زیاد شروع به طراحی کِرنِل لینوکس نمیکرد).
در واقع، لینوس توروالدز پس از خرید یک کامپیوتر شخصی که سیستمعاملش MS-DOS بود و اصلاً از آن رضایت نداشت، تصمیم گرفت تا به سمت یونیکس مهاجرت کند اما در آن زمان چیزی در حدود ۵۰۰۰ دلار هزینه داشت! و اینجا بود که استارت اولیهٔ ساخت یک سیستمعامل رایگان در ذهنش نقش بست.
لینوکس اپنسورس (متنباز) است؛ به عبارت دیگر هر کسی میتواند از این پروژه استفاده کند، سورسکد آن را مطالعه کند و کدهای آن را بسته به نیاز خود تغییر دهد (مادامی که سورسکد را به صورت آزاد با دیگران به اشتراک بگذارد). سورسکد در هر صورت آزاد است اما در برخی توزیعها همچون Red Hat Enterprise Linux، توزیع و کدهای کامپایل شده هرگز رایگان نیست اما سورسکد اصلی کماکان در اختیار همگان قرار دارد.
کِرنِل لینوکس با الهام از سیستمعامل دیگری تحت عنوان MINIX شکل گرفت (MINUX یک سیستمعامل از ردهٔ سیستمعاملهای مبتنی بر یونیکس بود که توسط Andrew S. Tanenbaum با زبان C طراحی شد و هدف از طراحی آن آموزش طراحی سیستمعامل بوده است. MINIX در واقع از دو واژهٔ Mini و Unix گرفته شده است).
خود سیستمعامل UNIX هم در لابراتوار Bell توسط Kenneth Thompson و Dennis Ritchie در سال ۱۹۶۹ ابداع و در سال ۱۹۷۰ منتشر شد که بعدها به زبان برنامهنویسی C بازنویسی شد و این در حالی است که دسترسیپذیری و پرتابل بودن این سیستمعامل باعث شد که مرکز توجه شرکتها و دیگر دولوپرها قرار گیرد.
در کِرنِل لینوکس از کامپایلر C پروژهٔ GNU و دیگر کامپوننتها استفاده شده بود و امروزه هم بسیاری از توزیعهای لینوکسی از کامپوننتهای پروژهٔ GNU استفاده میکنند و باتوجه به اینکه کِرنِل لینوکس به نوعی وابسته به کامپوننتهای پروژهٔ گنو بود، ریچارد استالمن تمام تلاش خود را به کار بست تا اصطلاح Linux که بر سر زبانها افتاده بود را به GNU/Linux تغییر دهد چرا که در این صورت نقش پروژهٔ گنو در توسعهٔ کِرنِل لینوکس بیشتر هویدا میشد.
وجه تسمیهٔ لینوکس
لینوس توروالدز در ابتدا قصد داشت تا نام Freax را برای کِرنِل خود در نظر گیرد و زمانی که شروع به کدنویسی پروژهاش کرد، چیزی در حدود شش ماه هم در فولدری تحت عنوان Freax فایلهای پروژه را ذخیره میکرد. برای سهولت کار چندین دولوپر روی پروژه، لینوس توروالدز فایلها را روی یک سرور FTP آپلود کرد و شخصی به نام Ari Lemmke که در آن زمان مسئول سرور بود، فکر کرد که نام Freax خیلی مناسب نیست و بدون مشورت با لینوس توروالدز، نام پروژه روی سرور را به Linux تغییر داد و بعداً هم لینوس توروالدز مخالفتی با این نام از خود نشان نداد!
نشان تجاری لینوکس
Tux نام یک پنگوئن نمادین چاق و خوشحال به عنوان لوگوی کِرنِل لینوکس است و لینوس توروالدز دربارهٔ انتخاب یک پنگوئن به عنوان لوگوی لینوکس، ابزار کرده است که «پنگوئنها را دوست دارد» و هنگامی که برای تعطیلات به کشور استرالیا رفته بود، در دیداری که از یک باغوحش داشت، هنگام بازی یک پنگوئن دست وی را گاز گرفت و همین ایدهای شد تا از پنگوئن به عنوان نشان لینوکس استفاده کند.
علت نامگذاری این پنگوئن تحت عنوان Tux هم این است که برخی بر این باورند که Tux مخفف واژگان Torvalds Unix است (البته Tux مخفف Tuxedo است که یک کتوشلوار مردانهٔ رسمی است که در مجالش تشریفاتی پوشیده میشود).
ویژگیهای لینوکس
اگرچه که کِرنِل لینوکس بسیاری از ویژگیهایش را از سیستمعامل یونیکس الهام گرفته است، اما دارای یکسری ویژگیهای منحصر به خود است که عبارتند از:
- کامپوننت اصلی کِرنِل است که کاملاً مستقل از دیگر کامپوننتهای سیستمعامل توسعه داده میشود (به عبارت دیگر، سیستمعامل لینوکس علاوه بر کِرنِل، از کامپوننتهای بسیار دیگری -منجمله کامپوننتهای پروژهٔ گنو- برای ساخت یک سیستمعامل کامل بهره میگیرد).
- کِرنِل لینوکس اپنسورس و رایگان است و تحت لیسانس GNU General Public License منتشر شده است.
- علاوه بر اینترفیس کامندلاین (CLI)، لینوکس میتواند از رابط گرافیکی کاربری (GUI) نیز برخوردار گردد.
- سازگاری با سختافزارهای مختلف؛ از گوشیهای همراه گرفته تا کامپیوترهای شخصی، سرورها و حتی اَبَرکامپیوترها.
توزیعهای محبوب لینوکس
امروزه توزیعهای مختلفی از لینوکس در اختیار علاقمندان قرار گرفته که برخی بیشتر برای کاربران عادی مناسب هستند (همچون اوبونتو) و برخی دیگر برای هکرها (کالی لینوکس) و برخی هم تخصصی برای سرور به کار گرفته میشوند. به طور کلی، مطرحترین توزیعهای لینوکس حال حاضر عبارتند از:
- Debian: توزیع دبیان والد یکسری از دیگر توزیعهای محبوب لینوکس همچون Ubuntu است. توزیعهای خانوادهٔ دبیان هم در حوزهٔ سرور و هم دسکتاپ، به صورت گسترده مورد استفاده قرار میگیرند.
- Ubuntu: توزیعی است که توسط شرکت Canonical با شعار ثبات و سهولت استفاده به بازار عرضه شده است. از آنجا که توزیع اوبونتو سیستم عامل گنو/لینوکس بسیاری از پکیج (بستههای نرمافزاری) خود را از توزیع دبیان میگیرد، این توزیع به تعداد گستردهای از نرمافزارهای کاربردی دسترسی دارد.
- RHEL: توزیع Red Hat Enterprise Linux توسط کمپانی ردهت طراحی شده و یک توزیع اینترپرایز (غیر رایگان) است اما سورسکد آن به صورت رایگان در دسترس علاقمندان قرار دارد.
- Fedora: فدورا اساساً کامیونیتی توسعهدهندگان نسبتاً زیادی دارا بوده و صرفاً یک شرکت مسئول توسعهٔ آن نیست.
- CentOS: سِنتاواس توزیعی است که مناسب کسانی میباشد که خواهان یک سیستمعامل باثبات در حد سیستمعاملهای اینترپرایز هستند اما تمایل دارند تا به چنین چیزی بدون هزینه کردن دست یابند.
- Fedora: فدورا توسط شرکت ردهت رهبری میشود اما توسعهدهندگانی از سراسر دنیا دارد. فدورا به نوآوری و استفاده از فناوریهای جدید در حوزهٔ نرمافزارهای آزاد و اپنسورس معروف است.
- openSUSE: این توزیع توسط بنیاد SUSE Linux به بازار عرضه شده که یکی از اهداف اصلی آن ترغیب کاربران به استفاده از لینوکس در هر جایی است.
- Mint: مینت یک توزیع مبنتی بر اوبونتو است که با پکیجهای نرمافزاری اوبونتو سازگاری کامل داشته و در طراحی این سیستمعامل سعی شده تا سادگی، سبکی و کاربرپسندی مبنا قرار داده شوند.
- Deeping: یک توزیع مبتنی بر دبیان است که در کشور چین طراحی شده که به منزلهٔ یک سیستمعامل لینوکسی کاربرپسند و زیبا نسبت به سایر توزیعها است.
- elementary OS: این توزیع بر پایهٔ اوبونتو است که به عنوان یکی از زیباترین توزیعهای لینوکسی شناخته میشود.
- Kali Linux: این توزیع که قبلاً تحت عنوان BackTrack شناخته میشد، یک توزیع مبتنی بر دبیان است که حاوی یکسری ابزارهای از پیش نصب شده برای تستهای هک و امنیت است.
لازم به ذکر است که صدها توزیع مختلف از لینوکس تاکنون توسط کامیونیتیها و شرکتهای مختلف به بازار عرضه شده که هر کدام از آنها مصارف خاصی دارند اما در بالا صرفاً به تعدادی از مهمترین آنها اشاره کردیم. برای آشنایی با لیستی کامل از توزیعهای لینوکسی، میتوانید به سایت DistroWatch مراجعه نمایید.
فرصتهای شغلی مرتبط با لینوکس
امروزه دامنهٔ کاربرد لینوکس بسیار گسترده است به طوری که در حوزههای شبکه، سرور، اینترنت اشیاء و غیره کاربردهای فراوانی دارا است. به طور کلی، برخی از مهمترین فرصتهای شغلی که نیازمند دانش لینوکس هستند عبارتند از:
- ادمین سیستم
- متخصص یونیکس
- مهندس شبکه
- متخصص سرور
- متخصص دوآپس
- مهندس نرمافزار
- کارشناس پشتیبانی
- دولوپر LAMP
شرکتهای حامی لینوکس
امروزه شرکتهای بزرگ بسیاری در توسعهٔ لینوکس نقش دارند که عمدتاً عضو Linux Foundation نیز میباشند که از آن جمله میتوان به Dell ،IBM ،HP ،Red Hat ،SUSE ،Microsoft و غیره نام برد.
- مقدمه یی بر کامند لاین لینوکس
- آشنایی با عملیات رایج در کامند لاین لینوکس
- آشنایی با نحوه ی یافتن فایل ها در لینوکس
- کار با فایلها از طریق کامند لاین لینوکس
- نصب نرمافزار از طریق کامند لاین در لینوکس
- نگاهی عمیقتر به فایل سیستم لینوکس
- نمایی کلی از دایرکتوری های هوم در لینوکس
- بکاپ گرفتن از فایلها در لینوکس
- فشردهسازی دادهها در لینوکس
- آشنایی با Environment Variable (متغیر محیطی) در لینوکس
- مدیریت پرمیشن های فایل و دایرکتوری در لینوکس
- نمایی کلی از ویرایشگرهای متن در لینوکس
- نحوه ی ساخت فایل جدید در لینوکس
- نحوه ی کار با ویرایشگرهای متن nano و gedit
- نحوه ی کار با ویرایشگرهای vi و emacs
- نگاهی دقیقتر به کار با فایلها و متن در لینوکس
- آشنایی با کاربردهای دستورات sed و awk
- آشنایی با دستورات پر کاربرد در ارتباط با فایل ها در لینوکس
- آشنایی با کاربردهای grep و Regular Expression
- کار با فایلهای حجیم در لینوکس
- ساخت فایلها و دایرکتوریهای موقتی (Temp) در لینوکس
- درآمدی بر اسکریپتنویسی در محیط لینوکس
- معرفی اسکرپیتنویسی در محیط Shell
- شروع اسکریپتنویسی با Bash
- آشنایی با نحوهٔ Return کردن مقادیر در Shell
- لیست کاراکترهای خاص برای اکسریپتنویسی در Bash
- آشنایی با مفهوم Redirection ورودیها و خروجیها در اسکرپیتنویسی Shell
- کامندهای از پیش تعریف شدهٔ Shell
- آشنایی با پارامترهای اسکریپتی
- جایگزینی کامندها در اسکریپتنویسی Shell
- درآمدی بر Environment Variables در لینوکس
- آشنایی با مفهوم فانکشن در اسکریپتنویسی Shell
- آشنایی با نحوهٔ استفاده از دستورات شرطی در اسکریپتنویسی
- درآمد بر اکسپرشنهای ریاضیاتی در اسکریپتنویسی Shell در لینوکس
- کار با String در اسکریپتنویسی لینوکس
- نحوهٔ استفاده از دستور case در اسکریپتنویسی شل
- آشنایی با نحوهٔ بهکارگیری از Loop در اسکریپتنویسی بش
- آشنایی با فرایند دیباگینگ اسکریپتهای شل
مخاطبین این دوره چه کسانی هستند؟
گرچه سیستمعامل لینوکس -یا بهتر بگوییم گنو/لینوکس- به اندازهٔ سایر سیستمعاملهای مطرحی همچون ویندوز و یا مکاواس در میان کاربران دسکتاپ طرفدار پیدا نکرده است، اما در عین حال میبینیم که با عرضهٔ توزیعهای کاربرپسندی از لینوکس در سالهای اخیر همچون اوبونتو یا المنتری اواس، طیف کاربران عادی این سیستمعامل روزبهروز بیشتر گشته است.
در همین راستا، دورهٔ آموزش لینوکس در سکان آکادمی تألیف گردیده تا فرایند ورود علاقمندانی که هیچ تجربهای در زمینهٔ لینوکس ندارند به این اکوسیستم تسهیل گردد؛ دانشجویانی که تمایل داشته باشند بدانند لینوکس چیست، بنیاد لینوکس چه کارهایی انجام میدهد، منظور از توزیعهای مختلف لینوکسی چه میباشد، چگونه از کامندلاین استفاده کنند و دیگر مباحث مربوطه، میتوانند این دوره را بگذرانند.
هزینهٔ این دوره چقدر است؟
این دوره کاملاً رایگان و به صورت آنلاین برگزار میگردد.
آیا این دوره پیشنیاز خاصی دارد؟
باتوجه به اینکه دورهٔ آموزش لینوکس در سکان آکادمی خود دورهای مقدماتی است، لذا این دوره به گونهای تألیف گردیده تا دانشجویان را از نیاز به مطالعهٔ سایر محتواهای آموزشی تا حد ممکن بینیاز سازد.
پس از اتمام این دوره، چه دستاوردهای علمی به دست خواهم آورد؟
کاربرانی که از سیستمعاملی همچون ویندوز قصد مهاجرت به گنو/لینوکس را داشته باشند و در این دورهٔ آنلاین شرکت کنند، در پایان دوره دیدی کلی نسبت به اکوسیستم لینوکس و تاریخچهٔ آن پیدا کرده، با بهترین توزیعهای لینوکسی برای کاربران مبتدی آشنا شده، با نحوهٔ نصب یکی از توزیعها روی سیستم خود آشنا شده، کار با کامندلاین را فرا گرفته و بسیاری مباحت دیگر به طوری که میتوان گفت در پایان دوره بسیاری از کارهایی که کاربران لینوکس با آنها بهصورت روزمره ممکن است سروکار داشته باشند را فرا خواهند گرفت.
آیا امکان بازنشر این دوره از طریق دیگر سایتها وجود دارد؟
براساس قوانین سکان آکادمی، هرگونه بازنشر دورههای آموزشی این وبسایت برخلاف قوانین سکان آکادمی بوده، از لحاظ شرعی حرام و از لحاظ حقوقی قابل پیگرد قانونی است.
امکان نظردهی که برای این بخش درنظر گرفته شده است صرفاً جهت ارائهٔ نظرات پیرامون کیفیت دوره بوده و از کلیهٔ کاربران خواهشمندیم تحت هیچ عنوان به پرسیدن سؤال و یا درخواست گرفتن راهنمایی در این بخش نپردازند (لازم بهذکر است سؤالات غیرمرتبط حذف خواهند شد).