1. این پایگاه به ثبت ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ایران رسیده است.

    مهمان عزیز سپاس بابت بازدید شما از تالار گفتگوی دهه هفتادی ها.

    عضویت در انجمن رایگان بوده و برای عموم باز میباشد . با صرف 30 ثانیه یکی از اعضای دهه هفتادی ها شوید .

لینوکس ( همه چیز درباره لینوکس )

شروع موضوع توسط Admin ‏Mar 27, 2012 در انجمن ویندوز

  1. Admin

    Admin غواصی فقط تو چشات عضو کادر مدیریت مدیر کل سایت

    12,519
    24,682
    62,952
    لینوکس چیست؟
    لینوکس یک سیستم عامل آزاد و باز متن است که تحت مجوز GNU/GPL منتشر شده است. باز متن به این معنی که هر شخصی آزاد است تا از آن استفاده کند ،‌آن را تغییر دهد و حتی می تواند آن را دوباره توزیع کند.
    لینوکس در سال ۱۹۹۱ در دانشگاه هلسینکی فنلاند توسط یک دانشجوی جوان به نام لینوس تروالدز نوشته شد. تراوالدز در اصل با Minix (که یک یونیکس خلاصه شده است.) کار می کرد ،‌اما تصمیم گرفت تا سیستم عاملی دلخواه خود و بر اساس UNIX خلق کند و این ماجرا با انتشار نسخه ی ۰٫۰۲ در سال ۱۹۹۱ توسط او آغاز شد که در زمان نوشتن این مقاله آخرین نسخه ی پایدار آن ۲٫۶ می باشد.

    [Broken External Image]:

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


    برای دیدن ادامه مطالب بر روی ادامه کلیک کنید

    لینوس ترووالدز طی یک نامه ی الکترونیکی خبر نوشتن سیستم عامل بازمتن خود را اعلام کرد ، طولی نکشید که صدها نفر از سراسر دنیا خواهان کار با این سیستم عامل باز متن (Open Source) که به UNIX شباهت داشت شدند و شروع به توسعه ی ان کردند.
    امروزه توزیع های فراوانی از لینوکس و جود دارد که از هسته و نرم افزار های آزاد (Free Software) همراه هسته تشکیل می شوند. همه ی این توزیع ها از یک هسته ی واحد به نام لینوکس استفاده می کنند.
    اگر بخواهیم دقیق تر توضیح بدهیم ، لینوکس یکسری کد است و ارتباط بین سخت افزار ها و نرم افزار ها را برقرار می کند (به عنوان هسته یا کرنل) و یک توزیع لینوکس (که در زبان عام به ان لینوکس می گویند) شامل هسته و تعداد زیادی نرم بازمتن می باشد مانند توزیع های ردهت (Redhat) ، دبیان ( debian ) ، اسلاکویر( Slackware) وجینتو(Gentoo).
    شایان ذکر است که امروزه برای راحتی به توزیع های لینوکس همان لینوکس گفته می شود که البته صحیح آن گنو/لینوکس می باشد ، چرا که بیشتر نرم افزار های استفاده شده در این توزیع ها تحت مجوز های گنو انتشار یافته اند، بنابراین این از این پس هر جا که از لینوکس نام می بریم منظورمان همان توزیع های گنو/لینوکس است مگر ان که صریحا به هسته ی لینوکس اشاره کنیم .
    II.لینوکس سیستم عامل قرن ۲۱
    در ابتدای مقاله هم اشاره کردیم که گنو/لینوکس یک سیستم عامل بامتن (Open Source) است . بازمتن بودن گنو/لینوکس باعث شده تا عده ی فراوانی از سرتاسر جهان توسط اینترنت گردهم آمده و برروی این سیستم عامل کار کنند ، نتیجه ی این گردهم آیی سیستم عاملی قدرتمند با ویژگی هایی منحصر به فرد شده که علاوه بر رایگان بودن و باز متن بودن ویژگی های بسیاری دارد که باعث شده تا لینوکس که در ابتدا در محیط های دانشگاهی و آکادمیک بزرگ شده حالا دیگر پا به عرصه ی تجارت و دولت بگذارد تا جایی که دولت های بزرگ اروپا مانند آلمان و اسپانیا سیستم عامل ملی خود را لینوکس اعلام کنند و البته نه تنها دولت ها بلکه نهاد ها و وزارت خانههای بسیاری سیستم عامل نهاد یا وزارت خانه ی خود را به لینوکس تبدیل کرده اند مانند وزارت دفاع آمریکا ،‌اداره ی پست آمریکا ،‌نیروهای مسلح ترکیه یا حتی در ایالت کالیفرنیای امریکا نیز برای اداره یامور از این سیستم عامل استفاده می شود. شاید برای شما این پرسش مطرح شده باشد که این ویژگی های لینوکس چیست که این گونه همگان را به سوی لینوکس جذب کرده؟ ما در این جا برخی ویژگی های لینوکس را ذکر می کنیم:
    ۱٫هزینه
    گنو/لینوکس یک سیستم عامل رایگان است ، البته توزیع هایی هم وجود دارد که به صورت تجاری ارائه می شوند اما قیمت آن ها همواره کمتر از سیستم عامل های تجاری مانند مایکروسافت ویندوز یا UNIX است ، البته این نکته نیز گفتنی است که اغلب توزیع های تجاری لینوکس را نیز می توان به صورت رایگان از اینترنت دریافت (Download) کرد و حتی برای دوستانتان نیز می توانید کپی کنید اما این نسخه هایی که بابت آنها پولی پرداخت نشده ، دارای خدمات پشتیبانی یا کتابچه ی راهنما نیستند .(هر چند که همواره هزاران صفحه اطلاعات رایگان در اینترنت در باره ی توزیع های مختلف گنو/لینوکس وجود دارد.)
    پایین بودن هزینه های گنو/لینوکس یکی از عواملی است که دولت های بسیار و شرکت های بزرگ را واداشته تا این سیستم عامل را سیستم عامل رسمی خود اعلام کنند.
    ۲٫امنیت و پایداری
    لینوکس با توجه به ساختار خود سیستم عاملیست امن و پایدار ، پایداری لینوکس را مدیون روش صحیح استفاده ی آن از سخت افزاریم که این خصلت را از UNIX به ارث برده و امنیت آن را علاوه بر ساختار صحیح ان مدیون بازمتن (Open Source) بودن آن هستیم. بازمتن بودن بودن باعث شده تا در صورت مشاهده ی کوچکترین مشکل در هسته یا نرم افزار های جانبی در چند ساعت یا حد اکثر چند روز توسعه دهندگان و برنامه نویسان ضعف و مشکل را حل کرده و راه حل را در اختیار عموم کاربران قرار دهند. این گونه است که گنو/لینوکس در پایداری و امنیت به یک افسانه تبدیل شده است و جزو ایمن ترین و پایدارترین سیستم عامل های جهان به شمار می رود.
    موضوع پایداری و امنیت در حوزه ی سرور ها و شبکه بسیار مهم است تا جایی که لینوکس بیش از ۳۰ در صد از سرور های جهان را شامل می شودو۷۰ در صد دیگر شامل SCO UNIX و SUN UNIX و IRIX و HP-UX و FreeBSD ودیگر یونیکس ها و Apple Mac و در صدی هم ویندوز می شود و با توجه به تعدد این سیستم ها می بینیم ۳۰در صد خود رقمی قابل توجه است.
    باید خاطر نشان کنم که تا به حال برای لینوکس هیچ ویروس یا کرمیبه آن شکل که برای ویندوز مایکروسافت وجود دارد نوشته نشده است و برای نرم افزار های مدیریت ایمیل یا جستجوی وب (Browser) آن هم ویروسی شناسایی نشده و برعکس IE ویندوز که همواره باید برای آن وصله (Patch) های امنیتی دانلود کرد برای مورورگر های لینوکس بعد نیازی به تلف کردن وقت با این کار ها نیست. ۳٫نیاز های سخت افزاری اندک
    گنو/لینوکس به دلیل ساختار هسته ی مناسب و تعدد توزیع ها می تواند با حداقل امکانات سخت افزاری به خوبی کار کند تا جایی که حتی توزیع هایی وجود دارد که بدون وجود هارد دیک برروی سیستم و یا با حافظه (RAM) معادل ۱۶ مگابایت می تواند سیستم شما را راه اندازی کند .
    ۴٫تنظیم و شخصی سازی
    گنو/لینوکس را می توان با رابط خط فرمان (Command Line Interface) همانند MS-DOS و یا با رابط گرافیکی مانند ویندوز مایکروسافت یا Apple Mac اجرا و استفاده کرد. دردسر های معمول تنظیم و شخصی سازی میز کار با وجود محیط های گرافیکی مختلف مانند کی دی ای ( KDE) یا گنوم (GNOME) از بین رفته و شما می توانید از ده ها محیط گرافیکی گنو/لینوکس حداکثر بهره را ببرید.
    محیط های گرافیکی گنو/لینوکس با هدف رفع نیاز کاربران و به صورت بازمتن بوده و توسط گروه بزرگی از برنامه نویسان در خلق شده و در حال توسعه هستند، شما می توانید باتوجه به شرایط سخت افزاری و سلیقه ی خود از از هر کدام از این محیط های گرافیکی بهره برده و بر اساس نیازتان تنظیمش کنید
    ۵٫آزادی
    لینوکس یک سیستم عامل آزاد است ،‌شما می توانید با در دست داشتن کد های منبع آن که برنامه نویسان و خالقین لینوکس در اختیار شما قرار می دهند مطابق میل خود تغییر و توسعه دهید ، کافیست شما به زبان های C و ++C و اسمبلی آشنا باشید ، حالا می توانید توزیع خود را داشته منتشر کنید،‌حتی برای کاربران غیر فنی که به این زبان ها اشنایی ندارند ابزار ها و توزیع هایی معرفی می شود تا با حداقل دانش برنامه نویسی به انتشار توزیع مخصوص خود بپردازند.
    این آزادی در تغییر و توزیع مجدد با در دست داشتن کد های منبع باعث رواج هر چه بیشتر گنو/لینوکس شده تا جایی که شما می توانید برای هر کاربردی یک لینوکس بیابید! برای نمومنه لینوکسی فقط برای کار های وب وجود دارد و لینوکسی دیگر فقط برای پخش مولتی مدیا و یا لینوکسی برای شبکه .
    البته آزاد بودن گنو/لینوکس باعث پیشرفت این سیستم عامل تا جایی است که دولت هایی مانند چین تصمیم به نوشتن توزیع مخصوص به خودشان گرفته اند که کاملا با ویژگی های زبان آن ها سازگاری دارد در صورتی که این موضوع در سیستم عامل های غیر ازاد (Free) و بازمتن مسلما میسر نمی شد.
    III.کاربرد های لینوکس
    گنو/لینوکس را می توان از میز کار دانش اموزان دبستان در اسپانیا تا ماهواره های کوچک در فضا یافت! از آن جایی که لینوکس یک سیستم عامل ذاتا چند کاربره (Multi User) و چند کاره (Multi Task) است [به این معنی که در یک لحظه بیش از یک کاربر می تواند با ان کار کند و بیش از یک برنامه را اجرا می کند.] و در کنار این دو مزیت سیستم عاملی پایدار و امن است می تواند گزینه ای مناسب برای سرویس دهنده های شبکه باشد ، در حال حاضر اغلب شبکه های بزرگ و معتبر از سیستم عامل لینوکس به عنوان سرویس دهنده ی اصلی خود استفاده می کنند.حتی سرویس دهنده های سایت hotmail بعد از کرک های متناوب از سوی مهاجمین به جای ویندوز مایکروسافت از لینوکس برای مدتی استفاده کرد تا بتواند در مقابل کرک های مداوم مهاجمان دوام بیاورد. البته شرکت بزرگ IBM نیز محصولات سرویس دهنده ی خود را مانند سرور های وب و شبکه با سیستم عامل لینوکس می فروشد .
    البته کاربرد لینوکس به سرویس دهنده ها ختم نمی شود بلکه آن را می توان بر روی تقریبا هر ابزاری نصب کرد! آخرین مدل های گوشی موبایل در کره به جای سیستم عامل های قبل از گنو/لینوکس استفاده می کند ،‌در هند لینوکس به عنوان سیستم عامل کامپیوتر های دستی (Handheld) یا PDA استفاده می شود در ژاپن شرکت سونی در لوازم صوتی و تصویری خود از گنو/لینوکس استفاده می کند ، خلاصه هر کجا به یک سیستم عامل احتیاج هست می توان از لینوکس استفاده کرد و اگر لینوکس برای آن کار مناسب نباشد جامعه ی توسعه دهنده ی لینوکس برای آن کار توسعه می دهندش ! و البته میز کار کاربران معمولی را فراموش کردیم ، همان طور که در بالا گفتیم با توجه به توزیع های متفاوت و محیط های گرافیکی بسیار زیاد برای کار با لینوکس امروزه دیگر این سیستم عامل یک سیستم عامل حرفه ای نیست بلکه یک سیستم عامل حرفه ای و خانگی شده است. شما می توانید در خانه به شنیدن موسیقی یا تماشای فیلم بپر دازید یا کار های خود را مدیریت کنید یا در اینتر نت به گشت وگذار بپردازید یا با دوستتان یک گپ (Chat) اینترنتی بزنید و یا می توانید در خواست مرخصی خود را با برنامه های لینوکسی تایپ کنیدو به مدیر خود بدهید! و البته اگر شما یک برنامه نویس کنجکاو هستید یا برنامه نویس وب ،‌ گنو/لینوکس بهشت شماست !!
    البته از دیگر کاربرد های لینوکس استفاده از ان به عنوان سرور اشتراک فایل بجای سیستم عامل گران قیمت ویندوز NT مایکروسافت است که این کار را سامبا ( Samba ) که یک برنامه ی اشتراک گذاری فایل است برایتان انجام می دهد.البته می توانید به عنوان یک سرور SQL قدرتمند که به وسیله ی پایگاه های داده ای بازمتنی که همراه گنو/لینوکس عرضه می شوندمانندMySQL یا PostgreSQL به رفع نیاز پایگاه داده خود بپردازید.
    در اینده ای نزدیک دیگر قابلیت های لینوکس را در مقالات سایت خواهید دید , والبته این بار دیگر تصمیم با شماست که همچنان با مایکروسافت باشید یا لذت استفاده از نرم افزار ازاد را بچشید!!
    نصب لینوکس شبدیکس بر روی دیسک سخت:
    لینوکس شبدیکس بر اساس دیسک زنده کناپیکس ( Knoppix ) که خود بر اساس Debian GNU/Linux می باشد ، ساخته شده است. میز کار پیش فرض این سیستم عامل KDE فارسی می باشد که توسط شرکت « چاپار شبدیز » به فارسی برگردانده شده است. برای اطلاعات بیشتر در مورد KDE فارسی به سایت آن در آدرس

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

    مراجعه نمایید.
    این توزیع همانند پدر خود کناپیکس یک دیسک زنده است که قابلیت نصب بر روی دیسک سخت را نیز دارا می باشد. در این مقاله پس از بوت کردن این سیستم عامل به نحوه نصب آن بر روی دیسک سخت خواهیم پرداخت.
    پس از اینکه دیسک لینوکس شبدیکس را در درایو CD خود قرار دادید و سیستم را از روی CD بوت کردید ، پس از چند لحظه صفحه ی مربوط به بوت کردن شبدیکس با ظاهری زیبا نمایان می شود. در این قسمت برای بوت با تنظیمات پیش فرض فقط کافیست کلید Enter را فشار دهید و یا چند لحظه صبر کنید تا بصورت خودکار شروع به بوت شدن نماید. اما اگر می خواهید بعضی تنظیمات آنرا در هنگام بوت تغییر دهید کافیست کلید F2 را فشار دهید تا صفحه ی راهنمایی آن ظاهر شود. لازم به ذکر است که تمام این گزینه ها همانند کناپیکس می باشند.
    خوب ٬ چون من به تغییر تنظیمات نیاز ندارم فقط کلید Enter را می زنم تا سیستم بوت شود.
    اولین چیزی که بر روی صفحه نمایش ظاهر می شود ، پیغام !Ba Dorood می باشد که بنده احساس بسیار خوبی نسبت به این پیغام دارم ( کمی احساس غرور به خاطر فارسی بودن آن ). سپس مراحل دیگر بوت طی می شود تا تصویر پس زمینه شرکت چاپار شبدیز نمایان می شود و پس از آن KDE فارسی شروع به بارگذاری می شود. پیغام های فارسی در صفحه ی KDE Splash همیشه نظر من را به خود جلب می کند.
    اکنون سیستم مراحل بوت را پشت سر گذاشته است. ( تصویر شماره ۱ (

    شکل شماره ۱ ( اندازه ی واقعی )
    بر روی دیسک سخت این سیستم ۳ پارتیشن و مقداری فضای خالی وجود دارد که بر روی پارتیشن اول سیستم عامل ویندوز مایکروسافت می باشد و دو پارتیشن بعدی نیز دارای فایل سیستم FAT32 می باشند. برای نصب شبدیکس بر روی دیسک سخت احتیاج به یک پارتیشن با یکی از فایل سیستم های لینوکس دارم. برای این منظور از ابزار QTParted موجود در شبدیکس استفاده می کنم. QTParted را از KMenu –> سیستم –> QTParted اجرا می کنم. شکل شماره ۲ این ابزار را نشان می دهد.
    شکل شماره ۲ ( اندازه ی واقعی )
    چون من پارتیشن سوم را برای نصب انتخاب کرده ام ( dev/hda6/ ) بر روی پارتیشن مربوطه کلیک راست کرده و گزینه ی Delete را انتخاب می کنم تا این پارتیشن حذف شود. سپس بر روی قسمت فضای خالی کلیک راست کرده و گزینه ی Create را انتخاب می کنم تا یک پارتیشن جدید با فایل سیستم ext3 بسازم. در پنجره ی جدید باز شده نوع فایل سیستم را مشخص می کنم و اندازه آنرا نیز وارد می کنم و سپس تایید می کنم. حال یک پارتیشن با فایل سیستم ext3 دارم که می توانم شبدیکس را بر روی آن نصب کنم.
    نکته:
    باید این نکته را متذکر شوم که در طول نصب شبدیکس بر روی دیسک سخت برنامه QTParted اجرا خواهد شد و شما قادر خواهید بود تا پارتیشن های خود را ویرایش کنید. اما من این مرحله را جداگانه و قبل از اجرای برنامه نصب انجام دادم. شما می توانید از ابزارهای دیگری مانند fdisk نیز برای پارتیشن بندی استفاده کنید.

    نکته:
    برای آشنایی با نحوه ی کار با ابزار fdisk اینجا کلیک کنید.

    از برنامه QTParted خارج می شوم و بر روی آیکون «نصب بر روی دیسک سخت» که بر روی میز کار قرار دارد کلیک می کنم.
    برنامه نصب اجرا شده و یک پیغام اخطار برای عدم مسئولیت شرکت چاپار شبدیز در قبال از دست رفتن اطلاعات و یا خرابی دیسک سخت نمایان می شود. ( شکل شماره ۳ )

    شکل شماره ۳
    پس از تایید آن برنامه ی نصب به کار خود ادامه می دهد و پس از نشان دادن یک پیغام دیگر برنامه QTParted را اجرا می کند. اگر یک پارتیشن با فایل سیستم مناسب و فضای کافی دارید براحتی با بستن این ابزار می توانید از این مرحله بگذرید. در غیر اینصورت از این ابزار استفاده کنید و یک پارتیشن برای نصب شبدیکس بسازید.
    پس از گذشتن از این مرحله باید یکی از دیسک های سخت موجود بر روی سیستم را برای نصب انتخاب کنید. ( شکل شماره ۴ )

    شکل شماره ۴
    پس از انتخاب و تایید ٬ پیغامی در رابطه با حافظه مجازی نمایان می شود. اگر بر روی دیسک سخت خود یک پارتیشن swap دارید بر روی دکمه بله کلیک کنید تا برنامه نصب آنرا شناسایی کند و در غیر اینصورت بر روی دکمه لغو کلیک کنید. چون بر روی سیستم من پارتیشن swap وجود ندارد بر روی دکمه لغو کلیک می کنم. پس از آن لیستی از پارتیشن هایی که می توانید شبدیکس را بر روی آنها نصب کنید نمایش داده می شود تا یکی را انتخاب کنید. ( شکل شماره ۵ )

    شکل شماره ۵
    پس از انتخاب پارتیشن مورد نظر لیستی از انواع فایل سیستم ها نشان داده می شود. باید یکی را انتخاب کنید تا برنامه نصب پارتیشن مورد نظر را به آن فایل سیستم فرمت کند. ( شکل شماره ۶ )

    شکل شماره ۶
    پس از انتخاب و تایید نهایی برنامه نصب پارتیشن مربوطه را فرمت می کند و سپس پیغامی برای آغاز کپی کردن فایلها بر روی دیسک سخت می دهد که با تایید آن ، اینکار صورت می گیرد. ( شکل شماره ۷ )

    شکل شماره ۷
    زمان کپی کردن فایلها حدودا ۲۰ دقیقه به طول انجامید. پس از اتمام عملیات کپی چند سوال در مورد شروع به کار سرویس دهنده های پست الکترونیکی ، سامبا ، چاپ و … در هنگام راه اندازی سیستم پرسیده می شود که باید با توجه به نیاز خود به آنها پاسخ دهید.
    سپس سوالی در مورد KDM و ورود گرافیکی به سیستم از شما پرسیده می شود که به آن نیز بسته به میل خود باید پاسخ دهید. ( شکل شماره ۸ )

    شکل شماره ۸
    حال باید یک نام میزبان ( hostname ) برای سیستم انتخاب کنید. ( شکل شماره ۹ )

    شکل شماره ۹
    اکنون رمز عبور برای دو کاربر ریشه و کناپیکس از شما پرسیده خواهد شد و پس از آن سوالی در مورد نصب مدیر بوت lilo بر روی MBR پرسیده می شود که به آن پاسخ مثبت می دهم تا جایگذین مدیر بوت ویندوز شود.
    در انتها نوبت به ساختن یک دیسکت راه انداز می باشد. در صورت تمایل بر روی دکمه بله کلیک کنید و مراحل آنرا ادامه دهید و در غیر این صورت بر روی دکمه خیر کلیک کنید.
    تذکر!
    اگر مدیر بوت lilo را بر روی MBR نصب نکرده اید به یک دیسکت راه انداز برای بوت کردن سیستم احتیاج خواهید داشت.
    خوب ، نصب شبدیکس به پایان رسید. یک نصب بسیار ساده و آسان که هر کاربر تازه کار را نیز قادر می سازد تا آن را بر روی سیستم خود نصب کند.

    I.اجرای fdisk
    ابزار fdisk ابزاریست ساده اما قدرتمند در دستان شما که کار کردن باآن بسیار آسان است.برای استفاده از fdisk با دستور su به حالت کاربر ریشه رفته و fdisk یا به طور کامل sbin/fdisk/ را اجرا کنید.
    II.استفاده از Fdisk

    در نمونه ای که این جا آورده شده من از دیسک دومم که در dev/hdb/قرار دارد استفاده می کنم.برای ایم کار دستور را به شکل زیر وارد می کنیم.
    [root@GNUIran/]# /sbin/fdisk /dev/hdb
    The number of cylinders for this disk is set to 2491.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:

    1)software that runs at boot time (e.g., LILO)
    2)booting and partitioning software from other Oss
    (e.g., DOS FDISK, OS/2 FDISK)

    Command (m for help):
    با توجه به وضعیت دیسک سخت شما چنین پیغامی نمایش داده می شود،این پیغام برای دیسک های بالای ۸گیگابایت نمایش داده می شود.بسیارخوب حالا چه باید کرد؟ اولین چیزی که به ذهن خطور می کند نوشتن m ست برای کمک، وس من هم می نویسم:
    Command (m for help): m
    Command action
    a toggle a bootable flag
    b edit bsd disklabel
    c toggle the dos compatibility flag
    d delete a partition
    l list known partition types
    m print this menu
    n add a new partition
    o create a new empty DOS partition table
    p print the partition table
    q quit without saving changes
    s create a new empty Sun disklabel
    t change a partition’s system id
    u change display/entry units
    v verify the partition table
    w write table to disk and exit
    x extra functionality (experts only)

    Command (m for help):
    خوب حالا به تمام ابزارهایی که در اختیار داریم آشنا شدیم، کار را پیش می گیریم و با وارد کردنp به بخش پارتیشن بندی می رویم.
    Command (m for help): p Disk /dev/hdb: 255 heads, 63 sectors, 2491 cylinders
    Units = cylinders of 16065 * 512 bytes

    Device Boot Start End Blocks Id System
    /dev/hdb1 * 1 195 1566306 a5 BSD/386
    /dev/hdb2 196 212 136552+ 82 Linux swap
    /dev/hdb3 213 2491 18306067+ 5 Extended
    /dev/hdb5 213 474 2104514+ 83 Linux
    /dev/hdb6 475 506 257039+ 83 Linux
    /dev/hdb7 507 532 208844+ 83 Linux
    /dev/hdb8 795 925 1052257 83 Linux
    /dev/hdb9 926 1056 1052257 83 Linux
    /dev/hdb10 1057 1088 257008+ 83 Linux
    /dev/hdb11 1089 1350 2104483+ 83 Linux
    /dev/hdb12 533 794 2104483+ 83 Linux
    Command (m for help):

    III.نگاهی به ستون ها
    Device-شماره ی پارتیشن و نام دیسک سختی که پارتیشن بر روی آن قرار دارد در این ستون نوشته می شود.
    Boot-اگر در این ستون ستاره وجود داشته باشد(در نمونه ی ما در کنارdev/hdb1/ قرار دارد) آن پارتیشن قابل بوت(Bootable) می باشد،یعنی اگر این دیسک دیسک اول من باشد(که در این جا dev/hda/ دیسک اول است) سیستم عامل ویا بوت لودر در این پارتیشن قرار دارد.
    Start-شماره سیلندر ابتدای پارتیشن را نمایش می دهد.
    End-شماره ی سیلندر انتهای پارتیشن را نشان می دهد.
    Blocks- تعداد بلوک های موجود در پارتیشن را نمایش می دهد.بزرگی یک بلاک به نوع سیستم فایل شما بستگی دارد.در اغلب مواقع بزرگی یک بلاک حدود ۱K است.در نمونه ی ما در اولین پارتیشن ۱۵۶۶۳۰۶KB یا ۱٫۵G فضای خالی وجود دارد که کاملا مشخص است.
    Id- شماره ای که نوع پارتیشن را مشخص می کند.هر نوع پارتیشن شماره ی مخصوص خود را دارد.با نوشتن “l”می توانید لیست تمام انواع فایل سیستم های مورد پشتیبانی Fdisk را همراه شماره هایشان ببینید.
    System- این ستون در واقع انگلیسی ستون ID می باشد.درواقع با توجه به شماره ی نوع پارتیشن سیستم عامل مربوط به آن را می نویسد.

    ایجاد پارتیشن های جدید.
    برای یاد گیری پارتیشن بندی با fdisk این جا دو نمونه می آوریم. ایجاد یک پارتیشن Swap
    swap در واقع یک حافظه(Ram)مجازی برروی هارد دیسک شماست و لینوکس به بودن آن برای سرعت بیشتر نیاز دارد.البته در هسته های قدیمی لینوکس(۲٫۰) نمی توان بیش از ۱۲۸مگابایت به Swapاختصاص داد،هرچند که این هسته ها بسیار بسیارکم استفاده می شوند.
    در این جا ما یک پارتیشن Swap به بزرگی ۲۵۶مگابایت خواهیم ساخت ،برای ایجاد یک پارتیشن جدید کافیست “n”را وارد کنیدتا به بخش “Add a new partition”(افزودن یک پارتیشن جدید) وارد شوید.در صفحه ی ترمینال خواهید دید:

    Command (m for help): n
    Command action
    l logical (5 or over)
    p primary partition (1-4)

    ما در این جا قصد داریم تا یک درایو منطقی یا Logicalایجاد کنیم ،برای این کار “l” را انتخاب می کنم.
    l
    First cylinder (1351-2491, default 1351)

    سعی کنید در میان پارتیشن ها فضای خالی ایجا نکنید،بهترین انتخاب انتخاب اولین سیلندر فضای خالی هارد است تا به باقی پارتیشن ها آسیب نرسد.برای این کار به سادگی کلید Enter را فشار دهید.
    Using default value 1351
    Last cylinder or +size or +sizeM or +sizeK (1351-2491,
    default 2491):

    زیبایی و راحتی کار با fdisk این جا خود نمایی می کند! برای ایجاد یک پارتیشن احتیاجی به محاسبه یسیلندر ها ندارید کافیست حجم خود را به مگابایت یا کیلوبایت در مقابل اعلان وارد کنید.برای ایجاد یک Swap به اندازه ی ۲۵۶مگابایت وارد کنید”۲۵۶M+”:
    Last cylinder or +size or +sizeM or +sizeK (1351-2491,
    default 2491): +256M

    Command (m for help):
    یک بار دیگر هم به پارتیشن های خود نگاهی می اندازیم تا اشتباهی صورت نگرفته باشد ،برای این کار “p” را می زنیم:
    Command (m for help): p
    Disk /dev/hdb: 255 heads, 63 sectors, 2491 cylinders
    Units = cylinders of 16065 * 512 bytes

    Device Boot Start End Blocks Id System
    /dev/hdb1 * 1 195 1566306 a5 BSD/386
    /dev/hdb2 196 212 136552+ 82 Linux swap
    /dev/hdb3 213 2491 18306067+ 5 Extended
    /dev/hdb5 213 474 2104514+ 83 Linux
    /dev/hdb6 475 506 257039+ 83 Linux
    /dev/hdb7 507 532 208844+ 83 Linux
    /dev/hdb8 795 925 1052257 83 Linux
    /dev/hdb9 926 1056 1052257 83 Linux
    /dev/hdb10 1057 1088 257008+ 83 Linux
    /dev/hdb11 1089 1350 2104483+ 83 Linux
    /dev/hdb12 533 794 2104483+ 83 Linux
    /dev/hdb13 1351 1383 265041 83 Linux

    Command (m for help):
    خوب در نهایت صاحب یک پارتیشت ۲۵۶مگابایتی شدیم ،اما یک مشکل هنوز وجود دارد ، این پارتیشن یک پارتیشن لینوکس (ID=83) است نه یک Swap پارتیشن(ID=82) بنابر این بعد از یک بررسی دوباره در لیست فرمان ها با “m”کلید “t”را فشار می دهیم تا به بخش “change a partition system id”)تغییر شماره سیستم یک پارتیشن: (
    Command (m for help): t
    Partition number (1-13):

    معلوم است که شماره پارتیشن ما ۱۳ است پس آن را وارد می کنیم:
    Partition number (1-13): 13
    Hex code (type L to list codes):

    بسیارخوب حالا برای پارتیشنSwap باید عدد ۸۲ را وارد کرد:
    Hex code (type L to list codes): 82
    Changed system type of partition 13 to 82 Linux swap

    برای اطمینان از درست بودن کارها به لیست پارتیشن ها با “p”دوباره سرک می کشیم و در خط آخر می بینیم:
    /dev/hdb13 1351 1383 265041 82 Linux swap
    دقت کنید !تا به این جا یک پارتیشن جدید تعریف کردیم اما تغییرات بر روی دیسک سخت اعمال نشده اند برای اعمال این تغییرات باید “w” را فشار دهید تا به “write table to disk and exit”(در دیسک بنویس و خارج شو) ,وارد شوید، در خط فرمان خواهیددید:
    Command (m for help): w
    The partition table has been altered!

    Calling ioctl() to re-read partition table.
    Syncing disks.
    WARNING: If you have created or modified any DOS 6.x
    partitions, please see the fdisk manual page for additional
    information.

    همه چیز تمام است ، تنها چیزی که مانده شناساندن Swap به لینوکستان است که این موضوع خارج از بحث این مقاله است اما به دلیل سادگی آن را در این جا مطرح می کنم، برای این کار کافیست در کنسول در حالت کاربر ریشه وارد کنید:
    #swapon /dev/hdb13
    به همین سادگی … ایجاد یک پارتیشن EXT2
    با توجه به تجربه ی شما در ایجاد یک پارتیشن جدید که در بالا آن را مرور کردیم این جا یک پارتیشن ۱GB ایجاد خواهیم کرد.برای این کار همان طور که به یاددارید از “n” استفاده می کنیم:

    Command (m for help): n
    Command action
    l logical (5 or over)
    p primary partition (1-4)

    وسپس:
    l
    First cylinder (1384-2491, default 1384):

    برای ۱GB از ۱۰۲۴M استفاده می کنیم.
    Last cylinder or +size or +sizeM or +sizeK (1384-2491,
    default 2491): +1024M

    Command (m for help):
    اگر همه چیز درست باشد باید در جدول پارتیشن ها چنین چیزی اضافه شده باشد:
    /dev/hdb14 1384 1514 1052226 83 Linux
    حالا طبق روال گذشته از “w”برای ثبت تغیییرات و خروج استفاده کنید.
    III.پاک کردن یک پارتیشن
    این کار نیز کاریست بس آسان!برای پاک کردن کافیست “d” را وارد کنید و پارتیشن مورد نظر خود را انتخاب کنید به همین آسانی… اما باید توجه داشته باشید تا زمانی که با “w” تغییرات را ذخیره نکرده اید هیچ تغییری در دیسک سخت شما اعمال نخواهد شد.

    نکته ی مهم :
    بعد از عدد ۵ نام تمام پارتیشن ها به ترتیب ادامه خواهد داشت و شماره ای خالی نخواهد بود.بنابر این اگر مثلا پارتیشن ۱۰ را پاک کنید پارتیشن ۱۱ جای ان را خواهد گرت و ۱۲ جای ۱۱ را بنابر این جای پارتیشن ها به کل تغییر خواهد کرد این می تواند باعث ایجاد مشکل برای شما باشد. بنابراین بعد از پاک کردن یک پارتیشن حتما در etc/fstab/ تغییرات انجام شده را اعمال و این جدول را درست کنید تا در بوت بعدی دچار سر در گمی نشوید.

    I. روش های نصب برنامه ها در لینوکس [۱]
    با توجه به گستردگی توزیع های لینوکس مسلما روش های نصب نرم افزار ها نیز متفاوت خواهد بود . در ابتدا به تعریف مفهون کد منبع یا Source Code می پردازم . یک نرم افزار در ابتدا فقط یک سری حروف و کلمات است که یک برنامه نویس آن ها را در محیطی خاص و یایک ویرایشگر متن معمولی می نویسد این نوشته ها ” سورس کد” برنامه یا ” کد منبع” برنامه نام دارند. این کد ها را می توانید در یک ویرایشگر متن معمولی وارسی کنید ،‌اما برای کامپیوتر معنایی ندارند ! چرا که کامپیوتر شما فقط زبان ۰ و ۱ را متوجه می شود.بنابراین باید این برنامه ی نوشته شده را به زبان کامپیوتر ترجمه کنیم ،‌ این کار ترجمه را ” کامپایل ” می گویند.درواقع شما کدمنبع را کامپایل می کنید تا کامپیوتر شما آن رادرک کند. به فایل حاصل از کامپایل فایل “باینری” می گویند. دلیل این نام گذاری این است که فایل حاصل از کامپایل فقط برمبنای دو (Base2) می باشد ،‌یعنی فقط شامل صفر و یک است. بنابراین وقتی می گوییم برنامه ای بازمتن (OpenSourec )است این بدان معناست که کد های منبع آن در اختیار دیگران قرار دارد و در برنام های CloseSource یا سورس بسته این کد های منبع در اختیار شما قرار نمی گیرد وفقط فایل های باینری در اختیار شما قرار می گیرد.

    یکی از محبوب ترین راه های نصب نرم افزار در لینوکس نصب از کد منبع یا به اصلاح درست تر کامپایل از سورس کد برنامه است.در ویندوز مایکروسافت شما همواره بسته های باینری را در سیستم خودنصب می کردید ،‌این بسته های باینری که از پیش کامپایل شده اند بر اساس یک استاندارد کلی که سیستم عامل (ویندوز) دارد ،‌ کامپایل شده اند بنابر این شما نمی توانید به راحتی برروی آن ها مانور دهید ،‌اما در لینوکس قضیه کمی متفاوت است ،‌شما می توانید کد منبع را بگیرید و از اول روی سیستم خودتان کامپایل کنید .شاید بپرسید این چه مزیتی دارد؟ زمانی که شما برنامه ای را در سیستم خودتان شخصا کامپایل می کنید می توانید آن را بر اساس نیاز های خودتان تنظیم کنید.(در اصطلاح صحیح تر می توانید نرم افزار راباتوجه به شرایط خود بهینه سازی -optimization-کنید.) حسن این کار در آن است که برنامه ی نصب شده در سیستم شما کاملابا سیستم شما خوانایی دارد و اگر شما به امکاناتی که برنامه ارائه می دهد نیازی ندارید می توانید به سادگی آن امکانات را زمان کامپایل ندیده بگیرید.
    بنابراین اولین روش نصب برنامه کامپایل از سورس کد بود ،‌این روش تا حدودی وقت گیر است و نیاز به تجربه دارد تابتوانید به بهترین روش ممکن برنامه ی خود را کامپایل کنید ،‌البته گاهی راهی جز کامپایل نرم افزار ندارید .برای همین توزیع کنندگان لینوکس به فکر ایجاد روشی کاربر پسندتر افتادند تا کاربران بتوانند در زمانی کوتاه تر و با روشی ساده تر برنامه های خود را نصب کنند ، این دیدگاه باعث بوجود آمدن بسته های نرم افزاری RPM و DEB شد . این بسته ها اغلب همانند بسته های نرم افزاری ویندوز از قبل کامپایل شده اند (البته این فقط یک مقایسه ی ناشیانهات و در عمل با بسته های ویندوزی بسیار متفاوتند) و شما از طریق یک مدیر بسته می توانید این بسته ها را مدیریت کنید. مدیر بسته ها در لینوکس تقریبا همان برنامه ی Add/Remove در کنترل پانل ویندوز است که با توجه به توزیع و نوع بسته ی نرم افزاری بسیار مختلف است. البته باید توجه داسته باشید که این بسته ها هم می توانند حاوی سورس کد نیز باشند. نکته ی قابل توجه دیگر این است که این بسته ها می توانند شامل فایل های کمکی (Help) و مستندات دیگر مربوط به برنامه باشند.
    شما برنامه ی خود رااز هر راهی که نصب کنید در اغلب موارد فایل های آن در مسیر های usr/bin/ و bin/ و usr/sbin/ قرار می گیرند و فایل های مربوط به پیکره بندی آن در دایرکتوری etc/ قرار می گیرند. بنابراین ما در لینوکس چیز به نام رجیستری نداریم و تنظیمات مربوط به برنامه ها در فایل ها ذخیره می شوند که در بیشتر موارد این فایل هافایل های هستند که به راحتی قابل خواندن و ویرایش کردن با ویرایشگر های معمولی متن می باشند.
    بسته ها! چرا به برنامه ها بسته (Pakage) میگویند؟ اغلب برنامه ها امروزه شامل فایل های بسیاری می باشند ،‌از جمله فایل های باینری ،‌فایل های پیکره بندی و فایل های مربوط به راهنما و روش نصب و مجوز های برنامه که به Documentation یا مستندات معروف هستند. بنابراین می بینیم یک برنامه همراه خود تعداد بسیاری فایل به همراه دارد ،‌تمام این فایل ها به صورت فشرده در یک بسته قار می گیرند ،‌خواه این یک بسته ی RPM باشد یا یک بسته ی DEB یا حتی یک بسته ی Tarball باشد. برای آشنایی هرچه بیشتر شما با انواع بسته های نرم افزاری ما در این مقاله به سه نمونه ی عمده ی بسته های نرم افزاری لینوکس اشاره می کنیم ،‌باید توجه داشته باشید که در این مقاله قصد آموزش کار با بسته های نرم افزاری رانداریم و تنها به معرفی انواع بسته ها بسنده خواهیم کرد.
    II. بسته های RPM
    یکی از معروف ترین بسته های نرم افزاری لینوکس بسته های RPM میباشد.RPM مخفف RedHat Pakage Manager می باشد ،‌همان طور که از اسم آن بر می آید ابداع شرکت RedHat Linux می باشد اما در توزیع های مختلفی از این بسته ها استفاده می شودو جالب تر این که از این بسته ها می توانید در سیستم های شبه یونیکس دیگر مانند FreeBSD و SunSolaries نیز قابل استفاده هستند.بسته های RPM با پسوند rpm شناخته می شوند .
    از جمله توزیع هایی که از بسته های rpm استفاده می کنند می توان لینوکس Mandrake وLinuxPCC و لینوکس YellowDog را که بر پایه ی ردهت است و برای سیستم های با پردازنده ی PowerPC طراحی شده و نیز توزیع SuSE را نام برد.البته توزیع های دیگری نیز از این بسته ها استفاده می کنند .برای مدیریت بسته های rpm شما می توانید از مدیر بسته های rpm استفاده کنید. اگر می خواهید در خط فرمان و براساس محیط متنی کار کنید می توانید از دستور rpm برای مدیریت استفاده کنید. اما اگر می خواهید از محیط گرافیکی برای مدیریت استفاده کنید با توجه به توزیع شما این ابزار متفاوت است. کاربران SuSE با ابزار YaST می توانند این کار را بکنند ،‌کاربران Mandrake می توانند با rpmdrake بسته هایشان رامدیریت کنند. البته باید توجه داشته باشید که SuSE و Mandrake گاهی از بسته های rpm مخصوص خود استفاده می کنند که جز آن توزیع در توزیع دیگری قابل استفاده نمی باشد.

    بسیارخوب تا این جا بسته های RPM را شناختیم ،‌ حال قبل از معرفی بسته های DEB به نحوه ی نام گذاری بسته های RPM خواهیم پرداخت. برای آن که کاربران با دیدن نام بسته ی rpm به راحتی بتوانند متوجه محتویات آن بشوند از یک استاندارد برای نام گذاری این بسته ها استفاده می شود.این نام گذاری مانند زیر است :
    pakagename-a.b.c-x.arch.rpm
    در این نام گذاری همان طور که معلوم است از سمت چپ اولین بخش نام نرم افزار اصلی ماست مثلا xchat یا gaim اما سایر اجزا :
    .a.b.c نسخه ینرم افزاری است که دردست دارید، این شماره نسخه را اغلب نویسنده ی برنامه تعیین می کند مثلا ۲٫۲٫۶ یا ۵٫۶٫۷a.
    x این شاره به شماره ی build number یا relase number معروف است.(شماره ی انتشار !)این شماره در واقع نشان دهنده ی تغییرات کوچکیست که اغلب هم کار نویسنده ی برنامه نیست مثلا یک وصله یا Patch برای رفع یک مشکل (bug) یا یا تغییر یک فایل نصب یا اضافه شدن یک فایل راهنما یا help یا Documentation به فایل .
    arch این بخش از نام مربوط می شود به معماری پردازنده ای که از آن استفاده می کنید. بسته های RPM برروی معماری های مختلفی از پردازنده قابل اجراست ،‌از جمله x86 یا SPARC یا Alpha نیزIA-64 بنابر این لازم است که نوع پردازنده ی مورد پشتیبانی را در نام فایل بگنجانیم تا در آینده بتوانیم به راحتی از آن برای پردازنده ی خودمان استفاده کنیم.برای پردازنده های x86 این جا i386 نوشته می شود. این پردازنده ها باقی مانده ی نسل ۸۰۳۸۶ هستند که شرکت اینتل آن ها را تولید می کند ،‌البته باید خاطر نشان کنم که در حال حاضر وقتی می گوییم x86 منظور ما هر پردازنده ای سازگار با این معماری است از جمله AMD مدل های Duron و Athlon و یا پنتیوم های Pro ,I,II,II,IVو نیز پنتیوم MMX ویا پردازنده های سازگار با x86شرکت Transmeta یا Cyrix!! بنابراین امروزه فقط این اینتل نیست که پردازنده های خانواده ی x86 را تولید می کند. اگر بسته یRPM شما برای پنتیوم بهینه سازی شده باشداین مقدار ۱۵۸۶ و i686 خواهد بود. البته RPMبرای پردازنده های دیگر نیز وجود دارد از جمله PowerPC که با ppc مشخص می شود. نکته ی قابل توجه این است که اگر بسته ی rpm شما محتوی فایل متنی یا Documentation یا هر چیز دیگری باشد که به پردازنده (CPU) بستگی ندارد این مقدار noarch خواهد بود.
    برای روشن تر شدن این نام گذاری به نام xbill-2.1.3-85.i386.rpm دقت کنید. xbillنام این نرم افزار است که یک بازی لینوکس است.که بسته ی ما buildشماره ی ۸۵ نسخه ی ۲٫۱۳ آن است که برای معماری x86 طراحی شده است.
    III. بسته های DEB
    بسته ی دیگری که بسیار استفاده می شود ،‌بسته ی دبیان یا DEB می باشد ،‌ این بسته ها نیز مانند بسته های RPM هستند و کار کردن با آن ها مانند کار با RPM ها ساده است. این بسته ها را دبیان توسعه داده است و هم اکنون توزیع های فراوانی از لیبرانت تا DammnSmallLinux از این بسته ها استفاده می کنند ،‌در واقع هر توزیع مبتنی بر دبیان از این بسته ها استفاده می کند.بسته های rpm و deb را نمی توان به جای یکدیگر استفاده کرد اما می توان آ نها را به یکدیگر تبدیل کرد ،‌البته این تبدیل نیز همیشه موففقیت آمیز نخواهد بود.بسته های دبیان نیز مانند rpm برای معماریهای متفاوتی نوشته شده است .برای مدیریت بسته های دبیان در خط فرمان از ابزار dpkg استفاده می شود dpkg بسیار شبیه RedHat pakage Manager یا rpm است .(منظور ابزار rpm است که برای مدیریت بسته های RPM استفاده می شود.). البته در دبیان و توزیع های مبتنی بر دبیان ابزار دیگری نیز برای مدیریت بسته های نرم افزاری در خط فرمان وجودداردکه کار با بسته های نرم افزاری را بسیار راحت تر و شیرین تر می کند ،‌این ابزار APT نام دارد.APt مخفف Advanced Pakage Tool می باشد. (تلفظ کنید اپت /æpt/) یکی از خواص بستههای RPM وDEB این است که شما نی توانید به راحتی و از طریق همین ابزار های مدیریت بسته بسته های خودرا در چند ثانیه یاحداکثر چند دقیقه به روز بکنید و لی اگر برنامه ای را از کد منبع آن کامپایل کنید برای هر بار به روز رسانی مجبورید برنامه را از ابتدا کامپایل کنید.البته برای مدیریت بسته های نرم افزاری در دبیان نیز برنامه های مختلفی وجوددارد مانند synaptic ویا برای مدیریت بسته هادر خط فرمان اما کمی راحت تر مانند dselect . نام گذاری بسته های دبیان نیز مانند RPM است با کمی تفاوت در ظاهر که برای طولانی نشدن بحث به آن اشاره نمی کنیم.
    IV.بسته های Tarball
    در حقیقت بسته های Tarball چیزی جز بسته های آرشیو شده نیستند ، این بسته ها را می توانیددر هر توزیعی استفاده کنید و مانند RPM و DEB وابسته به توزیع نیستند. بسته های Tarball همان بسته هایی هستند که با ابزار tar در خط فرمان تولید می شوندو توسط یکی از برنامه های compres یا gzip یا bzip2 فشرده شده اند. این بسته های فشرده شده فقط حاوی فایل ها هستند و بعد از باز کردن آن ها می توان در باره ی روش نصب آن ها تصمیم گرفت. بسته های tarball می توانند مانند RPM و Debian حاوی سورس کد ،‌ فایل های باینری و همچنین مستندات برنامه باشدالبته در اغلب موارد این بسته ا با gzip فشرده می شوند که پسوند حاصل tar.gz. می شود و البته برای این که حجم اطلاعات رد و دلی در اینترنت کمتر شود از فرمت tar.bz2. استفاده می شود که بسته های آرشیو tar را با برنامه ی bzip2 فشرده کرده اند .(فایل هایی که با Bzip2 فشرده شده اند از فایل هایی که با gzip فشرده شده اند حجم کم تری دارند چرا که الگوریتم فشرده سازی در این دو متفاوت است.)

    V.اطلاعات ضروری در زمان نصب برنامه
    ۱٫وابستگی های برنامه (Dependencies)
    وابستگی های نرم افزاری یا همان Dependencies در واقع آن برنامه هاو نیاز هایی است که باید داشته باشید تا برنامه ی شما بتواندکار کند!! درواقع شما برای نصب یک برنامه اغلب به یک پیش نیاز احتیاج دارید ،‌ مثلا برای بسیاری از برنامه های لینوکس لازم است تا شما کتابخانه های C را داشته باشید. در واقع وقتی می گوییم یک برنامه فلان وابستگی ها را می خواهد یعنی اولا بدون آن نیازمندی ها نمی تواند کار کند و در ثانی می توان نتیجه گرفت که آن برنامه از برنامههایی که در اصطلاح وابستگی نام دارند برای کار کردن استفاده می کند.
    توجه داشته باشید که مفهوم پیشنهادی یا Recommended با وابستگی متفاوت است ،‌اگر وابستگی ها را نصب نکنید برنامه ی شما کار نخواهد کرد اما اگر پیشنهادی ها را نصب نکنید برنامه ی شما کار خواهد کرد. پس این Recommended ها به چه کاری می آیند؟ اگر شما این Recommended هارا نصب کنید برنامه ی شما بهتر کار می کنه یا بهتر بگویم بازدهی برنامه ی شما بیشتر خواهدشد.
    یکی از خواص بسته های Debian وrpm هوشمندی آن ها نصبت به شناخت این پیش نیاز هاست ،‌در واقع وقتی شمایک بسته ی Debian را نصب می کنید خودش به دنبال پیش نیاز ها می گردد و پیش نیاز ها را نیز برای شما نصب می کند.البته بسته های RPM این هوشمندی راندارند اما برنامه های مدیریت بسته های rpm این کار را می کنند یعنی زمانی که شما از دستور rpm برای نصب استفاده می کنید این برنامه است که تشخیص می دهد ثبل از نصب باید چه برنامه های دیگری نصب شود و به شمااعلام می کند که این بسته ا را نیز نصب کنیدو یا خودش نصب می کند. اما بسته های دبیان در ذات خود این قابلیت را دارا هستند که پیش نیاز هایشان را تشخیص بدهند و لی بسته های Tarball فاقد این هوشمندی هستند و باید خودتان با مطالعه ی فایل های README و INSATLL ویا دیگر راهنماهای موجود در بسته یا سایت آن پیش نیاز ها را یافته و آن ها را نصب کنید.
    ۲٫کتابخانه ها(Libraries)
    کتابخانه ها همان DLL هایی هستند که شما در ویندوز می شناختید.(که اغلب گم شده بودند یا به دلیل خرابیشان برنامها کار نمی کرد!!) در لینوکس نیز کتابخانه ها همان مسئولیت را به عهده دارند اما پسوند خاصی ندارند چرا که هر زبان از کتابخانه های خوداستفاده می کند.خوب این مسئولیت کتابخانه ها چیست؟ کتابخانه ها یکسری فایل هستند که شامل یکسری توابع و روتین برای برنامه می باشند ،‌ شما می توانید یک فایل کتابخانه درست کنید و تمام توابعی که در برنامه ی شما استفاده می شود را در آن قرار دهید و از برنامه ی خود بخواهید که این توابع را از فایل مذکور اجرا کند،‌این کار چه فایده ای دارد؟ فکر کنید همکار شمانیز می خواهد برنامه ای بنویسید او می تواند از ابتدا شروع کند و تمام توابع رادر برنامه ی خود تعریف کند ،‌این کار باعث صرف وقت بیشتر و خستگی بیشتر و نیز حجم بیشتر فایل ها می شود.راه حل هوشمندانه این است که توابع مشترک برنامه ها را در یک فایل کتابخانه ای قرار دهید و هر کسی که به آن توابع احتیاج داشت زمان اجرای برنامه این توابع را فرابخواند. به این ترتیب لازم نیست که شما هر بار تمام توابع را تعریف کنید کافیست یکبار این توابع در کتابخانه ای نوشته شوند و کاربران این کتابخانه ا را در سیستم خودنصب کنند ،‌حالا شما و همارانتان و دیگران بدون دغدغه ی حجم زیاد و تعریف مجدد توابع به نوشتن برنامه مشغول می شوید.(حالا متوجه شدید چرا به این برنامه ها کتابخانه می گویند؟(

    از جمله معروف ترین کتابخانه ا می توان به کتابخانه های C اشاره کرد که با نام libc و در توزیع های مدرن تر به نام glibc وجود دارند و یا کتابخانه ی معروف +GTK که شما یک بار نصب می کنید و تمام برنامه های محیط گرافیکی گنوم از آن استفاده می کنند.
    ۳٫ابزار های توسعه(Development Tools)
    اگر شما تصمیم به کامپایل یک برنامه گرفته اید باید فایل های کتبخانه ای و ابزار های توسعه ی مربوط به آن برنامه را داشته باشید. مثلا اگر برنامه ای به زبان C دارید باید یک کامپایلر برای C داشته باشید و کتابخانه های مربوط به آن را نیز باید در سیستمتان داشته باشید. اگر شما نیازی به کامپایل برنامه ها ندارید لازم نیست تا ابزار های توسعه رانیز نصب کنید. درواقع وقتی شما یک برنامه را کامپایل می کنید مانند این است که شما برنامه نویسید و برنامه رانوشتیدو کد آن راآماده کردید و می خواهید آن را به زبان ماشین ترجمه کنید،‌خوب برای این کار به ابزاری نیاز دارید به نام Development tools که بوسیله ی آن برنامه ی خودرا کامپایل کنید. برنامه ی معروف gcc جزو این ابزار هاست ،‌ gcc که یک کامپایلر است و تحت مجوز GNU/GPL نیز منتشر سده است مجموعه ای است از کامپایلر های زبان های مختلف،‌ البته این اسم آن نیز معلوم است GNU Compiler Collection!!!!
    4.پایگاه داده ی بسته های نصب شده
    پایگاه داده ی بسته های نصب شده یا به زبان ساده تر Installed package Database !! محلی است که اطلاعات بسته های نصب شده ی سیستم در آن قرار دارد. شاید شما بخواهیدبدانید که فایل کتابخانه ای X یا Y آیا نصب شده است یا نه؟ یا می خواهید بدانی چه نسخه ای از برنامه در سیستم شما موجود است ،‌یا حتی می خواهید بدانید برای برنامه ی شما چه نیاز مندی هایی لازم است؟ تمام این اطلاعات و اطلاعات دیگر در یک پایگاه داده ذخیره می شود.برای بسته های Debian این مسیر اغلب در مسیر var/lib/dpkg/ است و برای RPM این مسیر var/lib/rpm/ است ،‌اما برای Tarball هیچ پایگاهی وجود ندارد!! البته توزیع SlackWare خودش توسط برنامه ای به نام slackware Package Tool یا pkgtool برای بسته های Tarball ای که از طریق این برنامه نصب می شوند یک پایگاه داده می سازد اما این فقط مختص توزیع است و این امکان در تمام توزیع ها موجود نیست.به همین دلیل است که اغلب بسته های Slackware را جزو بسته های هوشمند به شمار نمی آورند چرا که تنها یک آرشیو فشرده است و حتی نمی تواند وابستگی ها یا Dependency های خود را پیدا کند.

    I. مقدمه
    یکی از مسائلی که در امنیت یک سیستم نقش مهمی ایفا می‌کند نحوه ی کنترل سرویس‌هاست ؛ شاید برایتان این سؤال پیش آید که سرویس‌ها با امنیت چه رابطه‌ای دارند؟ از شما سوالی می‌پرسم :”در یک شبکه یک مهاجم چگونه به سیستم شما آسیب می رساند؟” اگر پاسخ را نمی‌دانید باید بگویم از اصلی‌ترین روش‌ها ورود از طریق پورت‌های باز سیستم و یا استفاده از مشکلات امنیتی برنامه‌های شبکه مانند سرویس‌ دهنده‌هاست. بنابراین بسیارحیاتی است که شما مدیریت کاملی برروی تمام سرویس‌هایی که در حال استفاده از آن‌ها می‌باشید داشته باشید. درواقع یک سرویس که به آن نیازی نیست اما درحال اجرا شدن است می‌تواند احتمال خطر را بیشتر کند. برای نمونه اگر شما نیازی به سرویس پست‌الکترونیک در شبکه ی خود ندارید وجود یک سرور پست الکترونیک می‌تواند شانس مهاجم را برای خرابکاری بیشتر کند. علاوه براین هنگامی که یک سرویس در حال اجراست درواقع مقداری از حافظه و پردازنده ی شما را استفاده می‌کند و اگر شما سرویس‌هایی را که نیاز ندارید بیهوده اجرا کنید مسلما این امر باعث کندتر شدن سیستم شما خواهد شد.
    با توجه به مسائل مطرح شده در بالا شما به عنوان یک مدیر سیستم حتی به عنوان یک کاربر کنجکاو لینوکس احتیاج دارید تا با کنترل سرویس‌ها در لینوکس آشنا شوید. در این مقاله این موضوع را بررسی می‌کنیم. قبل از این که به بحث مدیریت سرویس‌ها وارد شویم شما باید با مفهوم سطوح اجرایی آشنا باشید.

    II. سطوح اجرایی
    زمانی که کامپیوتر شما بوت شد لینوکستان باید در یکی از سطوح اجرایی یا RunLevel ها کار کند. درواقع در لینوکس نحوه ی اجرای سرویس‌های سیستم شما دقیقا به RunLevel ای که شما در آن هستید وابسته است. ایده ی ایجاد RunLevel ها باعث شده تا شما بدون دغدغه ی خاطر سرویس‌ها را در سطوح مختلفی تقسیم کنید و هنگامی که لینوکستان وارد یکی از این سطوح شد فقط سرویس‌هایی را اجرا خواهد کرد که در آن سطح قرار دارد . برای روشن تر شدن این موضوع بهتر است ابتدا تمام سطوح اجرایی لینوکس را برایتان بگویم ؛ سطوح اجرایی در لینوکس شامل ۱۲ سطح می‌شود که در عمل ما فقط با چند سطح خواص کار‌می کنیم. به جودل زیر توجه کنید:
    ۰ برای خاموش کردن سیستم استفاده می‌شود . (رزرو شده)
    ۱ مود تک کاربره.
    ۲ مود چند کاربره بدون پشتیبانی NFS و سایر امکانات شبکه ی راه دور.
    ۳ مود چند کاربره‌ی کامل. (سطح ۲ همراه پشتیبانی از NFS)
    4 این سطح استفاده نمی‌شود.
    ۵ مود چند کاربره‌ی کامل همراه با X11 . (سطح ۳ همراه با گرافیک X11)
    6 ریست کردن سیستم .(رزرو شده)
    S,s اسکریپت‌هایی که برای ورود به سطح ۱ استفاده می‌شوند ؛ مستقیما استفاده نمی‌شوند.
    ۷-۹ برای این سطوح سطوح تعریفی اراسه نشده.
    مود‌های رزور شده از سوی سیستم رزرو شده‌اند و قابل تغییر نیستند یعنی همواره سطح ۰ برای خاموش‌کردن سیستم و سطح ۶ برای Reboot کردن سیستم استفاده می‌شود.از‌ آنجایی که سطوح ۱و۲ و ۳ و ۵ قابل تغییر هستند توزیع کننده‌های مختلف لینوکس این سطوح را کمی تغییر می‌دهند برای نمونه در سیستم‌های Debian سطوح اجرایی به صورت زیر تعریف شده‌اند :

    ۰ خاموش کردن سیستم (رزرو شده)
    ۱ مد تک کاربره
    ۲-۵ مد چند کاربره با شبکه
    ۶ ریبوت کردن سیستم (رزرو شده)
    بنابراین برای این که بدانید توزیع شما از چه شماره‌ای برای نام گذاری سطوح استفاده می‌کند حتما به راهنمای سیستمتان مراجعه کنید.
    حال این پرسش پیش می‌اید که لینوکس شما پس از بوت وارد کدام سطح اجرای می‌گردد؟ برای این که سطح اجرایی پیش فرض را انتخاب کنید در فایل etc/inittab/ خط id:5:initdefault: را جستجو کنید. در این نمونه سیستم پس از بالا آمدن وارد سطح اجرایی ۵ می‌شود ، در صورتی که نیاز به تغییر این سطح دارید می‌توانید این فایل را ویرایش و مقدار عدد نوشته شده را به سطح اجرایی که شما می‌خواهید پیش فرض سیستمتان باشد تغییر دهید.
    نکته !
    اگر به محتویات این فایل توجه کنید در قسمت ابتدایی آن می‌توانید خطوطی را بیابید که با علامت پوند یا # شروع شده‌اند و درباره ی سطوح اجرایی سیستمتان به شما کمک می‌کنند ، درواقع شماره‌ی سطوح اجرایی سیستمتان را برایتان تشریح می‌کنند ، برای نمونه در سیستم دبیان نوشته شده :

    # Runlevel 0 is halt.
    # Runlevel 1 is single-user.
    # Runlevels 2-5 are multi-user.
    # Runlevel 6 is reboot.

    در نهایت دو نکته در این قسمت لازم به ذکر هستند ، یکی نحوه ی اطلاع از سطح‌ اجرایی که در حال حاضر در آن هستید و دیگری رفتن از یک سطح اجرایی به سطح اجرایی دیگر در زمانی که سیستم شما به طور کامل بوت شده و وارد یک سطح شده است. برای این دو منظور از دستورات زیر استفاده می‌کنیم:
    # runlevel
    #telinit 1
    دستور نخست شما را از سطح اجرایی که در آن هستید مطلع می‌کند و دستور دوم شما را به سطح اجرایی که می‌خواهید منتقل می‌کند.
    III.نحوه‌ی کنترل سرویس‌ها
    تا اینجا با مفهوم سطوح اجرایی آشنا شدیم . هر سرویسی که شما در کامپیوتر خود دارید در واقع یک برنامه است که یا به صورت دستی آن را اجرا می‌کنید یا زمان بوت سیستم به صورت خودکار اجرا می‌شود. در لینوکس‌ها تمام سرویس‌های که در زمان بوت شدن سیستم اجرا می‌شوند یک تکه برنامه دارند که در مسیر خواصی ذخیره می‌شود.(عجله نکنید مسیر را تا چند خط دیگر می‌گویم [Broken External Image]:

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

    )
    در لینوکس ها برای هر سطح اجرایی یک دایرکتوری وجود دارد که در مسیر etc/rc#.d/ قرار دارند. توجه داشته باشید امکان دارد این مسیر در سیستم شما متفاوت باشد برای نمونه در توزیع ردهت این مسیر etc/rc.d/rc#.d/ می‌باشد . در اینجا علامت پوند یا # شماره‌ی سطح اجرایی است و هر تکه برنامه‌ای که در داخل این دایرکتوری ها باشد در زمان بوت سیستم ارا خواهند شدبرای نمونه اگر تکه برنامه‌ای در etc/rc3.d/ باشد زمانی که سیستم شما وارد سطح اجرایی ۳ می‌شود اجرا می‌شود ویا در توزیع ردهت اگر کدی در etc/rc.d/rc3.d/ قرار داشته باشد زمانی که سیستم ورد سطح اجرایی ۳ می‌شود اجرا خواهد شد. برای نمونه به این نمونه از سیستم من نگاهی بیاندازید :

    [root@GNUIran:~]#ls -C /etc/rc2.d
    K20apache K20ssh S16portmap S20dhcp S99gdm
    K20apache2 S10sysklogd S18nessusd S20xprint
    K20qmail S11klogd S20inetd S21nfs-common
    K20lpd S14ppp S20makedev S89atd
    K20mysql S15dnsmasq S20pppstatus S89cron
    [root@GNUIran:~]#

    آنچه مشاهده می‌کنید سرویس‌هایی است که در زمان بوت در سطح اجرایی ۲ اجرا می‌شوند (یا از کار می‌افتند!). با کمی دقت در نامگذاری این فایل ها متوجه می‌شویم که همه‌ی آن‌ها یا با K شروع شده‌اند یا با S در واقع K ابتدای Kill و S ابتدای Start هستند. سرویس‌هایی که با K شروع شده‌اند زمان بوت سیستم از کار می‌افتند و سرویس هایی که با S شروع شده‌اند زمان بوت سیستم شروع به کار می‌کنند. پس از S و K شما دو رقم مشاهده می‌کنید که پس آز این دورقم نام سرویس آمده است. این دورقم حق تقدم سرویس‌ها را مشخص می‌کند ؛ به نمونه‌ی‌ بالا توجه کنید ، در این نمونه ابتدا سرویس ppp که حق تقدمش ۱۴ است اجرا می‌شود وسپس سرویس DNS masq که حق تقدم آن ۱۶ است سپس portmap و پس از آن nessusd که حق تقدم ۱۸ دارد. در واقع این فایل‌ها یک Symbolic Link هستند به اسکریپت‌هایی در دایرکتوری‌های دیگر از جمله etc/init.d/ .
    هر آنچه لازم است بدانید می‌دانید ! هم اکنون می‌توانید یک سرویس را فعال یا غیر فعال کنید ، برای نمونه برای غیر فعال کردن سرویس nessusd شما می توانید به راحتی با یکتغییر نام از S به K این کار را انجامدهید تا بار بعد که سیستم شما بوت می‌شود دیگر این سرویس اجرا نگردد. به دستورات زیر توجه فرماییید :

    [root@GNUIran:~]#mv /etc/rc2.d/S18nessusd K18nessusd
    [root@GNUIran:~]#ls -C /etc/rc2.d
    S18nessusd
    K20apache K20ssh S16portmap S20dhcp
    K20apache2 S10sysklogd S20xprint S21nfs-common
    K20qmail S11klogd S20inetd S89atd
    K20lpd S14ppp S20makedev S89cron
    K20mysql S15dnsmasq S20pppstatus S99gdm
    [root@GNUIran:~]#

    همان طور که شماهده فرمودید از این پس nessusd زمانی که سیستم وارد سطح اجرایی ۲ شود از کار خواهد افتاد ، اگر مایلید که با هر بار اجرای لینوکستان سرویس دهنده ی وب آپاچی نیز اجرا شود می‌توانید K20apache را به S20Apache تغییر نام دهید تا با هر بار اجرای سیستم به این سرویس دهنده نیز اجرا شود. البته اگر شما در شبکه نیستید و به عنوان یک برنامه‌نویس وب در حال استفاده از آپاچی هستید توصیه می‌کنیم که بعد از راه‌اندازی سیستم در زمانی که نیاز به این سرویس دهنده دارید آن ‌را اجرا کنید تا از مصرف بیهوده‌ی حافظه و پردازنده جلوگیری شود ! و اگر سیستم شما یکی از کامپیوتر‌های شبکه است احتمال بروز خطر نیز کاهش یابد.
    IV.برنامه‌های واسط برای کنترل
    اغلب توزیع‌های لینوکس برای مدیریت سرویس‌ها برنامه‌های گوناگونی دارند ، شما با توجه به نیازتان می‌توانید از این برنامه‌ها نیز برای کنترل سرویس‌ها استفاده کنید. مسلما ما در این‌جا نمی‌توانیم نام تمام این برنامه‌را بگوییم یا راهنمای کامل آن‌ها را برایتان بنویسیم. بنابراین تنها به برنامه‌های مشهور اشاره‌ای خواهیم کرد.
    ۱٫ ردهت
    ردهت برنامه‌ای به نام chvonfig دارد که به شما در مدیریت rc#.d ها کمک می‌کند. البته این برنامه در اصل مطعلق به IRIX بوده که برای ردهت بازنویسی و بهینه سازی شده و امکانات دیگری به آن افزروده شده. این برنامه به شما اجازه‌می‌دهد تا تمام سرویس‌هایی را که در etc/init.d/ قرار دارند را مدیریت کنید.
    برای دیدن لیستی از سرویس‌ها در سطوح اجرایی مختلف از گزینه ی –list استفاده کنید ؛ chkconfig –list
    برای چک کردن یک سرویس از –list و نام آن سرویس استفاده کنید : chkconfig –list nessusd
    برای از کار انداختن یک سرویس در سطوح اجرایی مختلف مانند نمونه‌ی زیر اقدام کنید:

    [root@GNUIran]#chkconfig –lvel1 245 apache off
    در نمونه ی بالا سرویس آپاچی در سطوح ۲ و ۴و ۵ خاموش شده است. برای روشن کردن یک سرویس مانند نمونه‌ی زیر اقدام کنید:
    [root@GNUIran]chkconfig –level1 124 nessusd on
    در نمونه ی بالا سرویس nessusd در سطوح ۱ و ۲ و ۴ فعال شده است.
    ۲٫دبیان
    در دبیان ابزاری به نام rcconf وجود دارد که به راحتی می‌توانید از طریق این ابزار که برپایه‌ی منو می‌باشد سرویس‌های خود را مدیریت کنید ، کافیست در خط فرمان دستور rcconf را اجرا کنید تا پنجره‌ی این برنامه مانند شکل – ۱ باز شود ، در این پنجره کافیست سرویس‌هایی را که می‌خواهید فعال باشند با علامت استریسک یا * [۱] مشخص کنید و هر سرویسی را که می‌خواهید با برداشتن علامت آن ، غیر فعالش کنید.

    شکل شماره‌ی ۱
    ۳٫ زوزه
    در زوزه شما باید از ابزار کنترل سیستم قدرتمند YaST استفاده کنید ، در این ابزار به بخش مدیریت سرویس‌ها بروید ، کافیست چند کلیک بکنید تا سرویس‌های مورد نیازتان را انتخاب کنید . از این پس بعد از هر بار خاموش و روشن کردن سیستم ، سطوح اجرایی مطابق تنظیمات شما سرویس‌ها را اجرا خواهند کرد .
    ۴٫ سایر برنامه‌ها
    همان طور که گفته شد با توجه به توزیعی که با آن کار می کنید برنامه‌های مدیریتی متفاوت خواهند بود برای نمونه در سیستم ردهت برنامه‌ی گرافیکی servie Configuratio استفاده کنید که از منوی System settings >Server settings قابل دسترسی است.
    ابزار دیگر برنامه‌ی Sysv init Editor در محیط KDE است که در صورتی که محیط KDE را نصب کرده باشید می‌توانید از این ابزار استفاده کنید ، برای کار با این ابزار کافیست از لیست سمت چپ سرویسی را که می‌خواهید بگیرید و به سطح اجرایی مورد نظر خود بیاندازید (Drag and Drop) و اگر می‌خواهید سرویسی در سطحی اجرا نشود به راحتی روی آن کلیک راست کرده و Delete را انتخاب کنید.

    I.لینک چیست؟
    در کل لینک ها یک نقطه ی اشاره به نقطه ای از یک سیستم فایل می سازند. این می تواند برای شما بسیار مفید باشد ، شمابا ساخت یک لینک به یک دایرکتوری دیگر احتیاجی به تایپ کامل مسیر آن ندارید و یا لازم نیست در مدیر فایل گرافیکی خود دائم به بالا و پایین بروید و کافیست یک بار برروی لینک خود کلیک کنید. شما می توانید لینک ها را همان میانبر ها (Shortcuts) در ویندوز مایکروسافت در نظر بگیرید که البته چند تفاوت نیز با یکدیگر دارند. در این جا ابتدا به بررسی و نحوه ی ایجاد یک لینک سخت افزاری و سپس یک لینک نرم افزاری و در انتها به مقایسه ای اجمالی بین این دو خواهم پرداخت .
    II.لینک های سخت یا Hardlinks
    یک لینک سخت یک ورودی دایرکتوری است که به محل فیزیکی یک فایل اشاره دارد.(به محل فیزیکی یک فایل i-node می گویند.). در حقیقت ما تنها یک فایل داریم اما ورودی دو (یا بیشتر) دایرکتوری به محل فیزیکی آن بر روی دیسک سخت اشاره دارند. برای ایجاد یک لینک سخت در خط فرمان از دستور ln استفاده می شود.این دستور به طور پیش فرض یک لینک سخت می سازد . برای نمونه من در این جا یک لینک سخت افزاری به فایل article.txt در دایرکتوری خانگی ام می سازم.

    tux@GNUIran.org $ ln /temp/article.txt /home/tux/foo/article.txt
    در این نمونه یک ورودی در دایرکتوری /home/tux/foo/ ایجاد شده که به محل فیزیکی فایل article.txt بر روی دیسک سخت اشاره می کند. خوب شما می توانید با این فایل کار کنید ، برای نمونه اگر دستور ls -l را وارد کنیم تعداد هارد لینک آن (که بلافاصله پس از مجوز های دسترسی آن نمایش داده می شود) برابر ۲ نمایش داده خواهد شد. و جالب این جاست که تمام مجوز ها و سایز فایل و تاریخ آخرین اصلاح فایل دقیقا همانند فایل قبلی است ! عدد ۲ یعنی ۲ دایرکتوری به این نقطه ی فیزیکی (i-node) از هارد اشاره دارند.
    اگر من فایل اصلی یعنی temp/article.txt/ را پاک کنم ورودی دایرکتوری پاک خواهد شد و تعداد لینک های سخت ۱ خواهد بود و اما فایل همچنان باقی خواهد بود ! چرا که هنوز یک لینک سخت به ان وجود دارد.و فایل هرگز پاک نمی شودمگر آن که تعداد هارد لینک های آن به صفر برسد.
    باید توجه داشته باشید که از هارد لینک برای لینک دادن به دایرکتوری ها و به فایلی که در فایل سیستمی برروی کامپیوتر دیگری است نمی توان استفاده کرد.
    III.لینک های نرم یا soft links
    لینک های نرم یا Softlinks که با نام های symbolic links یا symlinks نیز شناخته می شوند بسیار شبیه میانبر ها (shortcut) های ویندوز هستند، در لینک های نرم بر خلاف لینک های سخت هر لینک آدرس سخت افزاری (i-node) مخصوص به خودشان را دارند . این لینک ها تنها یک فایل هستند که می توانند به یک فایل دیگر اشاره کنند .برای ایجاد این لینک ها از از آپشن s- به همراه دستور ln استفاده می کنند:

    tux@GNUIran.org $ ln -s /temp/article.txt /home/tux/foo/article.txt
    اگر شما از ls -l برای دیدن این فایل استفاده کنید به نتیجه ای مانند زیر خواهید رسید:
    tux@GNUIran.org /foo $ ls –l
    lrwxr—r– 1 tux gnuiranorg 31 Apr 25 ۰۵:۲۵ article.txt -> /temp/article

    همان طور که مشاهده می کنید بیت اول l می باشد ، به معنی لینک و بعد از پایان نام فایل بعد از یک ” <- ” آدرس فایل اصلی آمده است.
    IV.لینک های سخت در مقابل لینک های نرم
    در این بخش به مقایسه ای اجمالی میان دو نوع لینکی که در بالا گفتم می پردازم:
    الف. در لینک های سخت مجوز های دسترسی تمام لینک ها مانند فایل اصلی است و شما برای تغییر مجوز های دسترسی از فایل اصلی اقدام کنید.
    ب. در لینک های نرم سایز فایل ها به شما دروغ می گویند! به این دلیل که این لینک ها خود یک فایل هستند با حجمی بسیار کوچک در صورتی که لینک های سخت به دلیل اشاره ی مستقیم به فایل اصلی حجم فایل اصلی را نمایش می دهند.
    پ.زمان اصلاح یا modification ای که در لینک نرم نمایش داده می شود مربوط به اصلاحاتی است که شما برروی این لینک انجام داده اید اما در لینک های سخت این زمان همان زمان دقیق اصلاحات فایل اصلی است.
    ت.در لینک نرم نام فایل اصلی بعد از یک <- می آید و بر خلاف لینک سخت اگر فایل اصلی را پاک کنید ، این لینک ه یک لینک خراب یا به اصطلاح درست ،به لینک یتیم (Orphan) تبدیل می شود.
    ث.همان طور که در بالا اشاره شد برای دایرکتوری ها و فایل سیستم هایی که از راه دور با آن ها کار می کنیدو یا به هر طری برروی کامپیوتر شما نیستند نمی توانید از لینک های سخت یا هارد لینک ها استفاده کنید.

    I.پوسته
    به احتمال زیاد تا کنون بیشتر یا فقط با محیط های با رابط گرافیکی(GUI) کار کرده اید ، اما رابط کاربر دیگری که لینوکس و سایر سیستم عامل های شبه یونیکس یا برپایه ی یونیکس آن را دارند رابط خط فرمان یا Command Line Interface است که به اختصار CLI می نامند.قدرت حقیقی لینوکس و یونیکس در این رابط نهفته است و این رابط خط فرمان است که به مدت ۳۰ سال است که یونیکس را به عنوان قدرت مند ترین سیستم عامل مطرح کرد و اکنون این قدرت نهفته در تمام سیستم های شبیه یا برپایه ی یونیکس مانند لینوکس وجود دارد. زمانی می توان با یک سیستم عامل راحتر کار کرد که امکان کار با خط فرمان در آن فراهم شده باشد و در لینوکس این مهم صورت گرفته.
    پوسته یا شل(shell) یک رابط است با ظاهری مانند آنچه در MS-DOS آن را دیده اید . البته در اصل پوسته (shell) یک رابط است میان انسان و هسته ی سیستم عامل که زبان انسان ها را به زبان ماشین تبدیل می کند تا هسته (Kernel) سیستم عامل آن را بفهمد . می تواندر یک تجسم غیر رسمی گفت که میزکار های ویندوز(windows) و مکینتاش (Macintosh OS) نیز یک پوسته ی گرافیکی هستند که رابط میان انسان و هسته ی این سیستم عامل هاست و زبان انسان را به زبان ماشین که برای هسته قابل فهم باشد ترجمه می کند. می توانید این رابطه را در شکل شماره ی (۱) ببینید.

    شکل شماره ی ۱
    در طول مدت بوجود آمدن یونیکس تا انتشار نهایی لینوکس پوسته های بسیاری منتشر شده و پوسته یک سیر تکاملی را پشت سر گزارده ، ما در بخش بعد ( همین مقاله ) سعی خواهیم کرد تا شما را با این سیر تحولی آشنا کنیم و در مقالات بعد به نهوه ی کار با این پوسته یا خط فرمان از مبتدی تا سطوح بالا تر خواهیم پرداخت.
    II.انواع پوسته
    در این بخش به معرفی چند نمونمه ی معروف پوسته های مختلف خواهیم پرداخت البته در لینوکس می توان از تمام این پوسته ها استفاده کرد و در اغلب توزیع های کامل تمام این پوستهها یافت می شوند اما پوسته ی پیش فرض اغلب ( اغلب نه تمام لینوکس ها ) پوسته ی bash می باشد ، دلیل این انتخاب قدرت و به روز بودن این پوسته و علاوه بر این ها انتشار این پوسته بر اساس مجوز GNU/GPL می باشد . ما رد این جا به ترتیب پوسته های Bourn shell و C shell و Korn shell و Bourn again shell و tch shell را مورد بررسی قرار خواهیم داد.
    ۱٫ Bourne Shell یا sh
    در اصل این پوسته در ازمایشگاه های بل توسط استیون بورن ( Stiven Bourne) برای سیستم عامل AT&T UNIX نوشته شد البته در لینوکس از این پوسته چندان استفاده نمی شود و در سایر نسخه های یونیکس مانند FreeBSD نیز این پوسته با یک نسخه به نام POSIX جایگزین شده .POSIX از ویرایشگر خط فرمان ، تاریخچه ی خط فرمان (که نه در sh بود نه در سایرCLI ها مانند DOS) و همین طور اسامی مستعار یا aliase ها به طور پیش فرض پشتیبانی می کرد. ۲٫ C shell یا Csh
    این پوسته که اغلب در BSD ها استفاده می شود توسط گروه توسعه دهندگان نرم افزار دانشگاه برکلی که از محدودیت های Bourne shell به ستوه آمده بودند ایجاد شد. دلیل نام گذاری این پوسته به C گرامر یا Syntax این پوسته است که به زبان برنامه نویسی C بسیار شباهت دارد و این موضوع خود باعث دشواری در نوشتن برنامه های پوسته یا Shell Programs می شود .(این برنامه ها درون خود پوسته اجرا می شوند برای اجرا حتمابه پوسته یا شل مخصوص به خود احتیاج دارند در واقع پوسته این برنامه ها را تفسیر می کند.) در این پوسته سیستم کنترل فعالیت هایا Job Controling و تاریخچه ی خط فرمان به صورت پیشرفته و کامل تر وجود دارد . البته در حال حاضر در FreeBSD نسخه های پیشرفته Csh با tcsh جایگزین شده که tcsh را در قسمت های بعد مورد بررسی قرار داده ایم. البته در لینوکس می توان ار هر دوی این پوسته ها استفاده کرد.
    ۳٫ Korn shell یا ksh یا pdksh
    شرکت AT&T پوسته ی ksh را در سال ۱۹۸۶ منتشر کرد ، این پوسته که توسط دیوید کورن (David Korn)نوشته شد ، پاسخی بود برای انتشار C shell .این پوسته مانند C shell از کنترل فعالیت (Job Controlling) ، تاریخچه ی خط فرمان (Command line History) و اسامی مستعار پشتیبانی می کرد و نسبت به Bourne shell بسیار کاربر پسند تر بود .در این نسخه برنامه نویسی نیز بسیار راحتر شده بود و همین طور ابزار های آن نیز بسیار بیشتر شده بودند.
    pdksh نیز یک Korn shell است با این تفاوت که یک نسخه ی Public domain می باشد که از pd ابتدای آن نیز می توان متوجه این موضوع شد.
    ۴٫ Bourne Again shell یا bash
    بش یا Bourne again shell یک پوسته ی سازگار و شبیه (ونه برپایه ی ) sh یا Bourne shell است که توسط توسعه دهندگان بنیاد نرم افزار آزاد ( FSF ) توسعه داده شد . همان طور که قبلا هم اشاره کردیم bash پوسته ی پیش فرض اغلب لینوکس ها است. این پوسته شبیه به پوسته ی ksh است با ابزار ها و قابلیت های بیشتر . از جمله غابلیت های جدید این پوسته راهنمای درونی یا Built-in Help آن است همین طور ویرایش مستقیم خط فرمان یا Intuitive Command Line Editing و یا ویرایش تاریخچه ی خط فرمان و جستجو با کلید های جهت دار یا Arrow keys و یا متغییر های محیطی ( Environment Variables) بسیار زیاد آن .البته این پوسته در نسخه های تجاری یونیکس موجود نیست و دلیل آن هم مجوز بسیار عالی GNU/GPL است .
    ۵٫ tcsh shell
    این پوسته یک پوسته ی پیشرفته بر اساس پوسته ی C shell است .کلمه ی t در ابتدای نام آن اول نام سیستم عامل TENEX است که بر روی DEC PDP-10 اجرا می شود. در این پوسته به C shell قابلیت های بیشتری اضافه شده مانند ویرایش تاریخچه به سبک bash و یا پرسش های قبل اعمال تغییرات ماند پرسش قبل از پاک کردن یک شاخه( Folder ).البته همان طور که قبلا اشاره کردم FreeBSD های پیشرفته از این پوسته به عنوان پوسته ی پیش فرض استفاده می کنند.
    III.کدام پوسته
    همان طور که قبلا اشاره کردیم اغلب لینوکس ها از bash به عنوان پوسته ی پیش فرض استفاده می کنند و البته لینوکس های کم حجم مثلا در حجم یک فلاپی از پوسته های کم حجم تر استفاده می کنند. از آن جایی که کار با bash بسیار آسان است و مانند کار کردن برنامه نویسی برای آن نیز راحت تر است اغلب لینوکس کار ها این پوسته را می پسندند و بنابراین اغلب اسکریپت ها ی موجود در برنامه های نصب مربوط به لینوکس هم از بر اساس این پوسته نوشته می شوند ، بنابر این برای آنکه بتوانید از کار کردن با پوسته ی خط فرمان لذت ببرید و به راحتی از دستوراتی که در سایت ها و مستندات مختلف می بینید استفاده کنید بهتر است از bash استفاده کنید . البته دلیل دیگر برای استفتده از bash همانا مجوز آن یعنی GNU/GPL است کهبرای کاربران لینوکس قوت قلبیست که از پوسته ای که تحت مجوز بنیاد نرم افزار آزاد منتشر شده است استفاده کنند.
    البته در نهایت این تصمیم با شماست که از کدام پوسته استفاده کنید و ما فقط یک پیشنهاد به شما دادیم و البته تمام مطالب این سایت بر اساس پوسته ی bash ارائه شده است.
    لازم به ذکر است که برای تعویض پوسته در صورتی که پوسته در کامپیوتر شما نصب باشد کافیست نام پوسته را تایپ کنید مثلا برای رفتن به bash از csh کافیست تا در مقابل اعلان فرمان تایپ کنیدbash تا از این پس با پوسته ی bash کار کنید.
     
    ahriman از این پست تشکر کرده است.
  2. vandad

    vandad

    1,533
    1,871
    347
    کمی کوتاه نبود؟:16:
     
  3. Admin

    Admin غواصی فقط تو چشات عضو کادر مدیریت مدیر کل سایت

    12,519
    24,682
    62,952