در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش گام به گام لینوکس قسمت 4 : لینوکس را از کجا شروع کنیم؟

هدف از این مقاله نشان دادن یک نقشه راه کلی برای فراگیری لینوکس از ابتدایی ترین گام تا تبدیل شدن به یک متخصص لینوکسی است. این مقاله برای افرادی است که می خواهند به تازگی لینوکس را شروع کنند و یا مدتی است که شروع کرده اند. لینوکس بر خلاف محصولات مایکروسافت دارای کتابخانه ای متمرکز و مجتمع نیست و شاید در برخی موارد مستندات آن نیز به سختی درک شوند و این به این دلیل است که لینوکس بر خلاف مایکروسافت به صورت جامعه ای از افراد گسترش داده می شود.

به طور مثال توزیع Redhat توسط شرکت Redhat و cache//proxy سرور اسکویید توسط گروهی دیگر توسعه داده می شود.این مقاله بر اساس خط مشی موسسه LPI است و به همین خاطر من نقشه راه را به سه دسته مقدماتی، متوسط و پیشرفته تقسیم می کنم. دسته متوسط بر اساس LPIC1 است. برای دریافت مدرک LPIC1 باید دو آزمون را قبول شوید. دسته متوسط بر اساس LPIC2 است و برای دریافت مدرک LPIC2 باید دو آزمون را قبول شوید.

در نهایت دسته پیشرفته که بر اساس LPIC3 بود. این آزمون دارای 6 امتحان بوده که برای دریافت مدرک LPIC3 باید حداقل دو سال سابقه کار و قبولی در یکی از شش آزمون را داشته باشید. نقشه راه پیش رو را می توانید توسط هر توزیع لینوکسی دنبال کنید. به هر حال باید با توزیع های لینوکسی مختص به سرور مانند RHLE//CentOS و یا دبیان آشنا شوید. توجه کنید که تمامی توزیع های لینوکسی و بلا استثنا همگی یکی هستند.

پس شما می توانید برای شروع از یکی از توزیع های فدورا یا ابونتو که برای مصارف خانگی هستند شروع کرده (پیشنهاد من فدورا است ولی وحی منزل نیست) و برای سطوح متوسط و پیشرفته باید حتما با یکی از توزیع های مختص سرور مانند دبیان یا RHLE یا CentOS استفاده کنید. (پیشنهاد من CentOS است ولی بازهم وحی منزل نیست)


یادگیری لینوکس در سطح مقدماتی

لینوکس سیستم عاملی است که مدیریت آن بر اساس اجرای دستور ها در خط فرمان است. واسط های گرافیکی برای پیکربندی سیستم وجود دارند اما تمرکز اصلی و فعالیت یک مدیر بر روی اجرای دستور ها است. برای شروع لینوکس می بایست دستور های ابتدایی لینوکس را بشناسید. به نظر من پیش از نصب لینوکس باید چندین مورد را بدانید :

  1. ساختار سیستم فایل لینوکس و دستور های کار با آن. این گام شامل درک ساختار سیستم فایل لینوکس و همچنین دایرکتوری ها آن است. لینوکس به طبعیت از یونیکس از یک ساختار تک درختی که ریشه آن دایرکتوری // یا root directory است استفاده می کند. هر دایرکتوری وظیفه ای داد. تمرکز اصلی مدیر بر روی دایرکتوری etc// است.
  2. آشنایی با انواع سیستم فایل های لینوکسی مانند ext4 و ext3
  3. چگونگی نصب لینوکس بر روی سخت افزار. پیشنهاد می کنم برای بار نخست لینوکس را بر روی ماشین مجازی نصب کنید.
  4. آشنایی با فرامین کار با فایل ها. همه چیز در لینوکس فایل است پس لازم است دستور هایی مانند cat, grep, less و غیره را بدانید.
  5. آشنایی مفاهیم Piping و Redirection و دستور های فیلتر کردن متن. به طور مثال دستور grep برای جستجو در محتوای یک فایل متنی استفاده می شود. همچنین دستور های دیگری مانند cut, tr و غیره نیز وجود دارند. لوله کشی یا piping یعنی خروجی یک دستور را به عنوان ورودی به دستور دیگری بدهیم.
  6. آشنایی با چگونگی فرایند بوت شدن، لاگین کاربر به سیستم و همچنین آشنایی بوت لودری مانند grub. همچنین باید با مفهوم سطوح اجرایی یا runlevel اشنا باشید. چگونگی کنترل سرویس ها را باید بدانید.
پس از کارهایی ابتدایی بالا کمی وارد جزییات می شویم. این جزییات شامل مدیریت کاربران و آشنایی با خودکار سازی اجرای دستور ها و غیره است. به عنوان کاربر عادی باید با این مفاهیم اشنا باشید.
  1. آشنایی با دستور های ایجاد، تغییر و حذف کاربر و گروه. این دستور ها شامل useradd, usermod, userdel و دستور های groupadd, groupmod, groupdel است. همچنین دستور های chsh, chsh نیز لازم است بدانید. باید با فایل های etc//passwd// و etc//shadow// آشنا شوید. همچنین فایل های درون دایرکتوری etc//default// نیز بر عملکرد دستور های گفته شده در بالا موثر هستند. باید بدانید چگونه کاربری را غیر فعا//فعا کرده. چگونه گذرواژه کاربر را با دستور passwd تعویض کنید.
  2. آشنایی با انواع مجوز ها در لینوکس. این مجوز ها از ساده ترین آنها یعنی مجوز های read, write و execute تا مجوز های خاص Set User ID, Set Group ID و Sticky Bit تا سطح پیشرفته تری به نام Access Control List آشنا شوید. همچنین دستور های chmod برای تغییر مجوز، دستور chown برای تغییر مالک و دستور های getacl و setacl برای کار با ACL ها.
  3. باید بدانید در لینوکس همه چیز فایل است (حتی دایرکتوری ها). دو نوع فایل اسکی (متنی) و دودویی وجود دارد. تمامی فایل های پیکربندی لینوکس که زیر دایرکتوری etc// قرار دارند از نوع فایل های متنی هستند. لازم است به عنوان مدیر با یکی از ویرایشگر های متنی تحت خط فرمان (ترمینال) مانند vim یا nano اشنا باشید. (اجباری است). دسته دیگر فایل های دودویی هستند مانند فایل های تصویری. فایل های اسکی را می توان با دستور های cat, less, more, vim, nano, grep خواند ولی فایل های باینری را نمی توان با این دستور ها خواند. برخی فایل های دودویی وجود دارند (البته عکس منظورم نیست) که می توان با دستور strings آنها را خواند.
  4. باید با چگونگی اجرای دستور ها و مفهوم فرایند ها آشنا باشید. مدیریت و مانیتورینگ فرایند بسیار مهم است. دو دستور top و top برای مانیتور کردن فرایند ها به کار می روند. دستور های kill, killall برای از بین بردن فرایند ها هستند. پس لازم است که با این دستور ها و مفهوم signal ها آشنا باشید. در لینوکس مانند هر سیستم عامل دیگری بحث اولویت فرایند ها وجود دارد. پس مفهوم اولویت فرایند ها را خوانده و دستوری مانند nice را نیز بدانید.
  5. بحث فرایند ها بسیار فراتر استو فرایند ها می توانند به دو گونه Background یا Foreground اجرا شوند. با این مفاهیم اشنا شده و همچنین با دستور های مرتبط مثل job, fg, bg نیز آشنا شویید. توجه کنید که ترکیب برخی از کلید ها مانند Ctrl+Z یک سیگنال را به فرایند می فرستند پس با این کلید ها مثل Ctrl+Z, Ctrl+C و Ctrl+D نیز آشنا شوید. اگر بخواهم بحث را هین جا گسترش دهم باید با کاربرد stty نیز اشنا شوید. stty کنترل کاملی را بر روی عملکرد کی بورد و سیگنال ها دارد. (به طور مثال می توان عملکرد ctrl+c را به ترکیب دیگری از کلید ها تغییر داد تا کاربر نتواند دستوری را حین اجرا قطع کند)
  6. بازهم در بحث فرایند ها و سیگنال ها لازم است با مفاهیم Trap یا تله آشنا شوید. با تله ها می توان طوری عمل کرد که برخی از سگنال ها را در حین اجرای دستور از کار انداخت.
  7. آشنایی با مفاهیم TCPIP و دستور های شبکه مانند ifconfig, ping, route, ip, ipcal, ifup, ifdown,traceroute و آشنایی با فایل های مرتبط با اینترفیس های شبکه و چگونگی اختصاص آدرس به آنها. می توانید مطلبی را درباره اختصاص آدرس به اینترفیس های اترنت در RHLECentOS بخوانید. همچنین باید با سه فایل etchosts و etcresolve.conf و etcnsswitch.conf/ اشنا شوید. چگونگی اختصاص آدرس dns و gateway را نیز باید بدانید.
  8. به عنوان کاربر لینوکسی باید کار با انواع فرمت های رایج فشرده سازی و آرشیو را بدانید. دو دستور zip, unzip برای فرمت رایج Zip و دستور unrar برای کار با فرمت rar و دستور tar برای کار با سه فرمت tar, tar.gz و tar.bz2 است. از این دستور برای ایجاد پشتیبان (و البته امکان incremental) استفاده می شود.
  9. آشنایی با اجرای خودکار فرامین در زمانی خاص. با دستور at یک دستور را تنها یکبار در زمانی خاص ایجاد می کنیم و از crontab برای اجرای چندین باره دستور در طول هفته، ماه، سال استفاده می کنیم. یک کاربرد crontab در ایجاد پشتیبان است.
  10. دستور find, locate برای جستجوی فایل ها و دایرکتوری ها در خط فرمان استفاده می شود.
  11. باید با چگونگی خاموش و راه اندازی مجدد سیستم با دستور های shutdown, reboot, halt و poweroff نیز اشنا باشید.
  12. باید مفهوم نقطه اتصال یا Mount Point را بدانید. وقتی پارتیشنی را ایجاد کردید یک دایرکتوری را به آن اتصال می دهید. پس لازم است با پارتیشن بندی و فرمت کردون و سوار کردن سیستم فایل با دستور های fdisk, parted آشنا باشید. همچنین لازم است با فایل های etc//fstab// و etc//mtab// آشنا شده و دستور های mount و umount را بدایند.
تمامی موارد بالا برای سطح مقدماتی بود و تاجایی که به یاد داشتم دسته بندی کرده و دستور های آنها را نوشتم. همچنین لازم است کاربران در این سطح با چگونگی نصب برنامه ها و همچنین فایروال آشنا باشند.

یادگیری لینوکس در سطح متوسط

در اینجا وارد پیکربندی شبکه و مانیتورینگ سیستم می شویم. باید با انواع سرویس ها مثل dns, dhcp. ftp, web server, ssh و هر نوع سرویس شبکه دیگر آشنا شوید.

  1. می توانید چگونگی پیاده سازی NAT, VPN, OPENVPN, IPSEC را بدانید. مفاهیمی مانند source nat, masq nat, destination nat را بخوانید. تمامی موارد فوق توسط iptables پیاده سازی می شوند. چگونگی ip forwarding نیز قابل مطالعه است. البته کار با فایروال برای بخش متوسط است و باید پیش از فراگیری مطالب فوق با آنها آشنا باشید.
  2. پیاده سازی سرویس NFS یا Network File System در لینوکس که یک سیستم فایل توزیع شده است.
  3. آشنایی با راهکار های پشتیبان گیری و سیاست های آن.
  4. آشنایی کار با Log ها و مفاهیم مرتبط با آن مانند log rotate و remote log در لینوکس. اشنایی با دایرکتوری var//log// نیز لازم است.
  5. مانیتورینگ شبکه و سخت افزار بسیار اهمیت دارد. دستور های top, atop, htop, namp, netstat کاربردی هستند. رفع اشکال شبکه نیز بسیار مهم است.
البته ابزار های مانیتورینگ شبکه بسیار بسیار بسیار فراوان هستند و خود آنها شامل کتاب می شوند. مانند Wireshark یا ابزاری مانند nagios. ناگیوس شامل پیکربندی فراوان و چند کتاب برای آن وجود دارند. خواندن دو لینک زیر را پیشنهاد می کنم چون به عنوان مدیر باید با تمامی دستور های موجود در دو لینک آشنا باشید.
لینک 1
لینک 2
  1. مطالب مرتبط با کارایی و tuning در لینوکس که یک منبع عالی برای آن کتاب قرمز IBM است.

یادگیری لینوکس در سطح پیشرفته

اینجا بحث کمی تخصصی می شود. توجه کنید که این بخش بسیار بسیار بسیار فراتر از چند خط زیر است.

  1. آشنایی با سامبا. سامبا نرم افزار است که با کمک مهندسی معکوس توانسته smb ویندوز را شبیه سازی کرده و امکان اشتراک فایل و پرینتر را میان دو ماشین لینوکسی و ویندوزی فراهم کرده است. همچنین امکان عضویت لینوکس در دامین ویندوز نیز وجود دارد.
  2. آشنایی با انواع و اقسام میل سرور ها در لینوکس. دو میل سرور مطح sendmail و postfix هستند.
  3. آشنایی با اسکریپت نویسی شل در لینوکس. یک ویژگی عالی و کارآمد برای هر مدیر. مدیران سطح متوسط نیز باید آنرا بدانند. اسکریپت نویسی شل یعنی استفاده از دستور های لینوکسی در یک ساختار برنامه نویسی مانند توابع، متغیر ها و ساختار های شرطی و کنترلی به نوعی که اجرای چندین دستور پشت سرهم توسط مدیر را در غالب یک فایل جمع آوری کرده و سپس با اعطای مجوز اجرا به آن فایل به یکباره تمامی دستور ها از بالا به پایین اجرا شوند. به هر حال هر مدیری در هر سطحی (متوسط یا پیشرفته) باید بتواند شل اسکریپت ها را بخواند، درک کند و تغییر داده و شل جدید خود را بنویسد. شل به مدیر در مانیتورینگ شبکه، ارسال نامه در صورت رخداد به میل مدیر، کمک به مدیر در کنترل و مانیتورینگ برنامه ها و پایگاه داده هایی مثل اوراکل کمک کند.
  4. امنیت در لینوکس بحثی بزرگ است. ابزهایی مانند Selinux در اینجا هستند. استفاده از Plaggable Authentication Module یا PAM مهم است. همچنین مدیریت منابع نیز مطرح است. یکی از ساده ترین چیزهایی که می توانم بگویم کار با فایل etcsecuritylimits.conf/ است. باور کنید بحث مدیریت منابع و امنیت بسیار گسترده است به طور مثال SELinux خودش یک کتاب و یک دوره مجزا است. یا بحث مدیریت منابع کتاب و دوره ای مجزا است.
  5. بحث های پیشرفته تری مانند کلاستر ها، Redundancy , HA نیز مطرح است. راهکار های فراوانی وجود دارند. لینک
  6. به عنوان یک مدیر و به نظر من لازم است که در کنار سطح متوسط با یک پایگاه داده مانند MySQL نیز آشنا باشید. مدیریت پایگاه داده ها مهم است ولی اجباری نیست که بدانید. توجه کنید می توانید سطح متوسط را رفته و در کنارش پایگاه داده ای را بدانید.

نویسنده :
منبع : انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
#یادگیری_لینوکس #آموزش_گام_به_گام_نصب_لینوکس #آموزش_گام_به_گام_لینوکس #سیلابس_دوره_lpic #دوره_های_لینوکس #آموزش_مقدماتی_لینوکس #آموزش_لینوکس
عنوان
1 آموزش گام به گام لینوکس قسمت 1 : لینوکس چیست ؟ رایگان
2 آموزش گام به گام لینوکس قسمت 2 : آموزش نصب لینوکس رایگان
3 آموزش گام به گام لینوکس قسمت 3 : دستورها چگونه اجرا می شوند؟ رایگان
4 آموزش گام به گام لینوکس قسمت 4 : لینوکس را از کجا شروع کنیم؟ رایگان
زمان و قیمت کل 0″ 0
1 نظر
مهدی ربانی

سپاس از نوشتار های سودمندتان.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....