بخشی از مقاله
لينوکس چيست
لينوکس يک سيستم عامل آزاد و باز متن است که تحت مجوز GNU/GPL منتشر شده است. باز متن به اين معني که هر شخصي آزاد است تا از آن استفاده کند ،آن را تغيير دهد و حتي مي تواند آن را دوباره توزيع کند.
لينوکس در سال ۱۹۹۱ در دانشگاه هلسينکي فنلاند توسط يک دانشجوي جوان به نام لينوس تروالدز نوشته شد. تراوالدز در اصل با Minix (که يک يونيکس خلاصه شده است.) کار مي کرد ،اما تصميم گرفت تا سيستم عاملي دلخواه خود و بر اساس UNIX خلق کند و اين ماجرا با انتشار نسخه ي 0.02 در سال ۱۹۹۱ توسط او آغاز شد که در زمان نوشتن اين مقاله آخرين نسخه ي پايدارآن2.6ميباشد.لينوس ترووالدز طي يک نامه ي الکترونيکي خبر نوشتن سيستم عامل بازمتن
خود را اعلام کرد ، طولي نکشيد که صدها نفر از سراسر دنيا خواهان کار با اين سيستم عامل باز متن (Open Source) که به UNIX شباهت داشت شدند و شروع به توسعه ي ان کردند. امروزه توزيع هاي فراواني از لينوکس و جود دارد که از هسته و نرم افزار هاي آزاد (Free Software) همراه هسته تشکيل مي شوند. همه ي اين توزيع ها از يک هسته ي واحد به نام لينوکس استفاده
مي کنند.اگر بخواهيم دقيق تر توضيح بدهيم ، لينوکس يکسري کد است و ارتباط بين سخت افزار ها و نرم افزار ها را برقرار مي کند (به عنوان هسته يا کرنل) و يک توزيع لينوکس (که در زبان عام به ان لينوکس مي گويند) شامل هسته و تعداد زيادي نرم بازمتن مي باشد مانند توزيع هاي ردهت (Redhat) ، دبيان ( debian ) ، اسلاکوير( Slackware) وجينتو(Gentoo).شايان ذکر است که امروزه براي راحتي به توزيع هاي لينوکس همان لينوکس گفته مي شود که البته صحيح آن گنو/گنو انتشار يافته اند، بنابراين اين از اين پس هر جا که از لينوکس نام مي بريم منظورمان همان توزيع هاي گنو/لينوکس است مگر ان که صريحا به هسته ي لينوکس اشاره کنيم .
تاريخچه پيدايش لينوکس 3
با پشتيباني نرم افزارهاي پروزه GNU، لينوكس آماده يك نمايش واقعي بود. لينوكس تحت مجوز GPL قرار داده شد. با اين مجوز همه ميتوانستند كدهاي منبع لينوكس را به رايگان داشته باشند، بر روي آنها مطالعه كرده و آنها را تغيير دهند. دانشجويان و برنامه نويسان آنرا قاپيدند.
و خيلي زود توليد كنندگان تجاري وارد شدند. لينوكس به خودي خود رايگان بود و هست. كاري كه اين توليدكنندگان انجام دادند، كامپايل كردن بخش ها و نرم افزارهاي مختلف و ارائه آن بصورت يك فرمت قابل توزيع همانند ساير سيستم عاملها بود، تا مردم عادي نيز بتوانند از آن استفاده كنند. اكنون توزيع هايي مانند ردهت، دبيان و زوزه داراي بيشترين سهم كاربران در سرتاسر جهان هستند. با رابطهاي گرافيكي كاربر جديد مانند KDE و GNOME، توزيع هاي لينوكس در بين مردم بسيار گسترش يافتند.
همچنين اتفاقات جالبي با لينوكس رخ ميدهد. در كنار PC، لينوكس به روي اكثر پلاتفورمها منتقل شده است. لينوكس تغيير داده شد تا كامپيوتر دستي شركت Com3 يعني PalmPilot را اجرا نمايد. تكنولوژي كلاستر كردن اين امكان را بوجود آورد تا بتوان تعداد زيادي از ماشينهاي لينوكس را به يك مجموعه واحد پردازشي تبديل نمود. يك كامپيوتر موازي. در آوريل 1996 محققين آزمايشگاههاي ملي لوس آلاموس از 68 كامپيوتر مبتني بر لينوكس براي پردازش موازي و شبيه سازي موج انفجار اتمي استفاده كردند. ولي بر خلاف ابر كامپيوترهاي ديگر، هزينه آنها بسيار ارزان تمام شد. ابركامپيوتر خود ساخته آنها با تمام تجهيزات و سخت افزارها 152000 دلار هزينه در بر داشت و اين يك دهم هزينه يك ابركامپيوتر تجاري است. اين ابركامپيوتر به سرعت 16 بيليون
محاسبه در ثانيه دست يافت و به رتبه 315 ام اين ابركامپيوتر جهان دست پيدا كرد و صد البته يكي از پايدارترين آنها بود. پس از سه ماه از آغاز فعاليت، هنوز بوت نشده بود.
بهترين موردي كه امروزه براي لينوكس وجود دارد، طرفداران متعصب آن هستند. هنگامي كه يك قطعه سخت افزاري جديد ارائه ميشود، هسته لينوكس براي استفاده از آن تغيير داده ميشود. براي مثال هنگام ارائه پردازنده 64 بيتي شركت AMD هسته به سرعت چند هفته براي كار با آن آماد
ه شد. اكنون لينوكس بر روي تمام انواع خانواده هاي سخت افزاري موجود اعم از PC، MAC، Alpha و انواع سخت افزارهاي درونه اي قابل اجراست كه آنرا براي استفاده در ماشين آلات صنعتي و آلات و ادواتي كه نياز به پردازش كامپيوتري دارند، بسيار مناسب نموده است. لينوكس با همان فلسفه و هدفي كه در سال 1991 ايجاد شد، وارد هزاره جديد شده است.
توروالدز، هنوز يك انسان ساده است. بر خلاف بيل گيتر او يك ميلياردر نيست. پس از اتمام مطالعاتش وي به آمريكا رفت تا با شركت Transmeta همكاري نمايد. پس از انجام يك پروژه فوق سري كه توروالدز يكي از اعضاي فعال آن بود، ترانسمتا پردازنده Cruose را با بازار ارائه كرد. توروالدز هنوز پرطرفدار ترين و مشهورترين برنامه نويس جهان است. در حال حاضر توروالدز ترانسمتا را ترك نموده و با حمايت شركتهاي بزرگ به طور تمام وقت بر روي لينوكس كار ميكند.
پس از يك دهه : لينوكس امروز
امروزه لينوكس بيش از يك دهه توسعه را پشت سر گذاشته است و يكي از سريع التوسعه ترين سيستم هاي عامل به شما ميرود. از چند كاربر انگشت شمار در سالهاي 1991 و 1992، امروزه ميليونها كاربر از لينوكس استفاده ميكنند. IBM كه زماني بزرگترين دشمن جماعت Open Source به شمار مي رفت، اكنون سرمايه گذاري عظيمي در زمينه توسعه راه حل هاي Open Source تحت لينوكس نموده است. در حال حاضر تعداد توسعه دهندگاني كه براي افزايش قابليتهاي لينوكس تلاش ميكنند، روز به روز افزايش مي يابد.
امروزه تعداد زيادي از شركتها و موسسات حرفه اي تجاري، پشتيباني از محصولات مبتني بر لينوكس را بر عهده گرفته اند. اكنون ديگر استفاده از لينوكس در محيطها اداري، پذيرفتن ريسك نيست. از نظر قابليت اطمينان و پايداري و همچنين حفاظت در برابر انواع ويروسها چيزي بهتر از
لينوكس وجود ندارد. با تلاش شركتهاي بزرگي مانند ردهت استفاده از لينوكس در محيطهاي تجاري توسعه فراوان يافته و اكنون تعداد زيادي از شركتهاي كوچك و بزرگ در حال استفاده از سرويس دهنده ها و ايستگاههاي كاري مبتني بر لينوكس هستند.
لينوکس سيستم عامل قرن ۲۱
در ابتدا هم اشاره کرديم که گنو/لينوکس يک سيستم عامل بامتن (Open Source) است . بازمتن بودن گنو/لينوکس باعث شده تا عده ي فراواني از سرتاسر جهان توسط اينترنت گردهم آمده و برروي اين سيستم عامل کار کنند ، نتيجه ي اين گردهم آيي سيستم عاملي قدرتمند با ويژگي هايي منحصر به فرد شده که علاوه بر رايگان بودن و باز متن بودن ويژگي هاي بسياري دارد که باعث شده تا لينوکس که در ابتدا در محيط هاي دانشگاهي و آکادميک بزرگ شده حالا ديگر پا به عرصه ي تجارت و دولت بگذارد تا جايي که دولت هاي بزرگ اروپا مانند آلمان و اسپانيا سيستم عامل ملي خود را لينوکس اعلام کنند و البته نه تنها دولت ها بلکه نهاد ها و وزارت خانه هايبسياري سيستم عامل نهاد يا وزارت خانه ي خود را به لينوکس تبديل کرده اند مانند وزارت دفاع آمريکا ،اداره ي پست آمريکا ،نيروهاي مسلح ترکيه يا حتي در ايالت کاليفرنياي امريکا نيز براي اداره يامور از اين سيستم عامل استفاده مي شود. شايد براي شما اين پرسش مطرح شده باشد که اين ويژگي هاي لينوکس چيست که اين گونه همگان را به سوي لينوکس جذب کرده است.
طلوع لينوكس روي ميزي (Desktop Linux)
بزرگترين ايرادي كه از لينوكس گرفته ميشد چه بود؟ قبلا محيط تمام متني لينوكس، بسياري از كاربران را از استفاده كردن از آن بر حذر ميداشت. با اينكه در استفاده از محيط متني كنترل كامل سيستم در اختيار شماست، ولي اين محيط اصلا براي كاربران عادي سيستمهاي كامپيوتري مناسب نيست. محيط هاي گرافيكي كه بر پايه X-Window وجود داشتند نيز پاسخ گوي امكاناتي كه سيستم عاملهاي گرافيكي مانند ويندوز براي كاربران خود ارائه ميكردند، نبودند. ولي از چند سال گذشته اين وضعيت در حال تغيير بوده است. اكنون محيطهاي گرافيكي حرفه اي مانند KDE و GNOME تصوير لينوكس را كامل كرده اند. اين محيطهاي گرافيكي اكنون بسيار كاربر پسند و
قدرتمند شده اند و وجود اين سيستمهاست كه امروزه كاربران عادي نيز ميتوانند از لينوكس استفاده كنند.
لينوكس در جهان سوم
ورود لينوكس به كشورهاي جهان سوم تحولي ايجاد نموده است. قبل از وجود لينوكس كشورهاي جهان سومي در زمينه كامپيوتر در سطح بسيار پايين تري قرار داشتند. هزينه سخت افزارها بسيار پايين آمده بود ولي هزينه نرم افزار براي اين گونه كشورها همچنان كمر شكن بود. اين امر ب
اعث شد تا در بسياري از اين كشورها كپي غير مجاز نرم افزارها گسترش پيدا كند كه باعث ميلياردها دلار خسارت ساليانه ميشود. يكي از عمده ترين دلايل اين كار پايين بودن درآمد سرانه در اين كشورهاست. هنگامي كه مجموع درآمد سرانه ساليانه بيش از 200 تا 300 دلار نيست، هيچگاه امكان خريد يك سيستم عامل 100 دلاري وجود نخواهد داشت.
طلوع لينوكس و ساير توليدات باز متن، اين وضعيت را تغيير داده است. اين امكان وجود دارد تا بتوان لينوكس را در كامپيوترهاي قديمي 486 و پنتيوم كه اكنون در كشورهاي توسعه يافته به تاريخ پيوسته اند ولي هنوز در كشورهاي درحال توسعه از آنها استفاده ميشود، اجرا نمود. همچنين
استفاده از نرم افزارهاي رايگان بازمتن گسترش يافته تا جلوي هزينه هاي سرسام آور نرم افزاري اين كشورها را بگيرد. امروزه در كشورهاي آسيايي، آفريقايي و آمريكاي لاتين استفاده از لينوكس و نرم افزارهاي بازمتن گسترش فراواني يافته و با استفاده از خصلت ذاتي تغيير پذيري لينوكس، براي استفاده از زبانهاي ملي اين كشورها سفارشي شده است. امروزه مستندات لينوكس به اكثر زبانهاي زنده جهان ترجمه شده اند.
از ميزكار تا ابركامپيوترها
هنگامي كه توروالدز لينوكس را ايجاد نمود، اين مخلوق جديد، فقط يك اسباب بازي تازه براي هكرها بود. ولي از زمان دستگاههاي 386 كه نخستين هسته لينوكس بر روي آنها اجرا ميشد، لينوكس راه درازي را طي نموده است. يكي از مهمترين استفاده هاي امروزي لينوكس استفاده از آن در پردازشهاي سنگين موازي در ابركامپيوترهاست. امروزه اكثر ابركامپيوترهايي كه در جهان ساخته ميشوند، از لينوكس به عنوان سيستم عامل خود استفاده ميكنند.
داستان ادامه دارد
حركت لينوكس از يك پروزه هكري تا جهاني شدن يك انقلاب شگفت انگيز است. پروزه GNU كه در اوايل دهه 1980 توسط ريچارد استالمن شروع شد، توسعه نرم افزارهاي بازمتن را رهبري نمود. پروفسور اندرو تاننباوم و سيستم عامل MINIX او مطالعه سيستم عامل ها را از حالت تئوري به عملي تبديل نمود و در نهايت همت و تلاش توروالدز منجر به تولد لينوكس شد. امروزه لينوكس ديگر يك پروزه هكري به شما نمي رود بلكه يك حركت جهاني است كه توسط ميليونها نفر برنامه نويس بازمتن و شركتهاي بزرگي مانند IBM حمايت ميشود. لينوكس در تاريخ كامپيوتر به عنوان يكي از شگفت انگيز ترين محصولات تلاش بشري باقي خواهد ماند.
توكس پنگوئن : نشان عزيز لينوكس
نشان لينوكس يك پنگوئن است. برخلاف ساير سيستم عاملهاي تجاري، اين نشان زياد جدي نيست! توكس نشانگر وضعيت بدون نگراني حركت لينوكس است. اين نشان تاريخچه بسيار جالبي دارد. لينوكس در ابتدا فاقد هر گونه نشاني بود. هنگامي كه توروالدز براي تعطيلات به استراليا رفته بود، در ديداري كه از يك باغ وحش داشت، هنگامي كه مي خواست با يك پنگوئن بازي كند، پنگوئن دست وي را گاز گرفت و همين ايده اي شد تا از پنگوئن به عنوان نشان لينوكس استفاده شود. ؟
ما در اين جا برخي ويژگي هاي لينوکس را ذکر مي کنيم:
1-هزينه
گنو/لينوکس يک سيستم عامل رايگان است ، البته توزيع هايي هم وجود دارد که به صورت تجاري ارائه مي شوند اما قيمت آن ها همواره کمتر از سيستم عامل هاي تجاري مانند مايکروسافت ويندوز يا UNIX است ، البته اين نکته نيز گفتني است که اغلب توزيع هاي تجاري لينوکس را نيز مي توان به صورت رايگان از اينترنت دريافت (Download) کرد و حتي براي دوستانتان نيز مي توانيد کپي کنيد اما اين نسخه هايي که بابت آنها پولي پرداخت نشده ، داراي خدمات پشتيباني يا کتابچه ي راهنما نيستند .(هر چند که همواره هزاران صفحه اطلاعات رايگان در اينترنت در باره ي توزيعهاي مختلف گنو/لينوکس وجود دارد.)پايين بودن هزينه هاي گنو/لينوکس يکي از عواملي است که دولت هاي بسيار و شرکت هاي بزرگ را واداشته تا اين سيستم عامل را سيستم عامل رسمي
خود اعلام کنند.
2-امنيت و پايداري
لينوکس با توجه به ساختار خود سيستم عامليست امن و پايدار ، پايداري لينوکس را مديون روش صحيح استفاده ي آن از سخت افزاريم که اين خصلت را از UNIX به ارث برده و امنيت آن را علاوه بر ساختار صحيح ان مديون بازمتن (Open Source) بودن آن هستيم. بازمتن بودن بودن باعث شده تا در صورت مشاهده ي کوچکترين مشکل در هسته يا نرم افزار هاي جانبي در چند ساعت يا حد اکثر چند روز توسعه دهندگان و برنامه نويسان ضعف و مشکل را حل کرده و راه حل را در اختيار عموم کاربران قرار دهند. اين گونه است که گنو/لينوکس در پايداري و امنيت به يک افسانه تبديل شده است و جزو ايمن ترين و پايدارترين سيستم عامل هاي جهان به شمار مي رود.
موضوع پايداري و امنيت در حوزه ي سرور ها و شبکه بسيار مهم است تا جايي که لينوکس بيش از 30 در صد از سرور هاي جهان را شامل مي شودو70 در صد ديگر شامل SCO UNIX و SUN UNIX و IRIX و HP-UX و FreeBSD وديگر يونيکس ها و Apple Mac و در صدي هم ويندوز مي شود و با توجه به تعدد اين سيستم ها مي بينيم 30در صد خود رقمي قابل توجه است.
بايد خاطر نشان کنم که تا به حال براي لينوکس هيچ ويروس يا کرميبه آن شکل که براي ويندوز مايکروسافت وجود دارد نوشته نشده است و براي نرم افزار هاي مديريت ايميل يا جستجوي وب (Browser) آن هم ويروسي شناسايي نشده و برعکس IE ويندوز که همواره بايد براي آن وصله (Patch) هاي امنيتي دانلود کرد براي مورورگر هاي لينوکس بعد نيازي به تلف کردن وقت با اين کار ها نيست.
3_نيازهاي سخت افزاري اندک
گنو/لينوکس به دليل ساختار هسته ي مناسب و تعدد توزيع ها مي تواند با حداقل امکانات سخت افزاري به خوبي کار کند تا جايي که حتي توزيع هايي وجود دارد که بدون وجود هارد ديک برروي سيستم و يا با حافظه (RAM) معادل 16 مگابايت مي تواند سيستم شما را راه اندازي کند .
4-تنظيم و شخصي سازي
گنو/لينوکس را مي توان با رابط خط فرمان (Command Line Interface) همانند MS-DOS و
يا با رابط گرافيکي مانند ويندوز مايکروسافت يا Apple Mac اجرا و استفاده کرد. دردسر هاي معمول تنظيم و شخصي سازي ميز کار با وجود محيط هاي گرافيکي مختلف مانند کي دي اي ( KDE) يا گنوم (GNOME) از بين رفته و شما مي توانيد از ده ها محيط گرافيکي حداکثر استفاده را ببريد.
محيط هاي گرافيکي گنو/لينوکس با هدف رفع نياز کاربران و به صورت بازمتن بوده و توسط گروه بزرگي از برنامه نويسان در خلق شده و در حال توسعه هستند، شما مي توانيد باتوجه به شرايط سخت افزاري و سليقه ي خود از از هر کدام از اين محيط هاي گرافيکي بهره برده و بر اساس نيازتان تنظيمش کنيد
5-آزادي
لينوکس يک سيستم عامل آزاد است ،شما مي توانيد با در دست داشتن کد هاي منبع آن که برنامه نويسان و خالقين لينوکس در اختيار شما قرار مي دهند مطابق ميل خود تغيير و توسعه دهيد ، کافيست شما به زبان هاي C و C++ و اسمبلي آشنا باشيد ، حالا مي توانيد توزيع خود را داشته منتشر کنيد،حتي براي کاربران غير فني که به اين زبان ها اشنايي ندارند ابزار ها و توزيع هايي معرفي مي شود تا با حداقل دانش برنامه نويسي به انتشار توزيع مخصوص خود بپردازند.
اين آزادي در تغيير و توزيع مجدد با در دست داشتن کد هاي منبع باعث رواج هر چه بيشتر گنو/لينوکس شده تا جايي که شما مي توانيد براي هر کاربردي يک لينوکس بيابيد! براي نمومنه لينوکسي فقط براي کار هاي وب وجود دارد و لينوکسي ديگر فقط براي پخش مولتي مديا و يا لينوکسي براي شبکه البته آزاد بودن گنو/لينوکس باعث پيشرفت اين سيستم عامل تا جايي است که دولت هايي مانند چين تصميم به نوشتن توزيع مخصوص به خودشان گرفته اند که کاملا با ويژگي هاي زبان آن ها سازگاري دارد در صورتي که اين موضوع در سيستم عامل هاي غير ازاد (Free) و بازمتن مسلما ميسر نمي شد.
کاربرد هاي لينوکس
گنو/لينوکس را مي توان از ميز کار دانش اموزان دبستان در اسپانيا تا ماهواره هاي کوچک
در فضا يافت! از آن جايي که لينوکس يک سيستم عامل ذاتا چند کاربره (Multi User) و چند کاره (Multi Task) است [به اين معني که در يک لحظه بيش از يک کاربر مي تواند با ان کار کند و بيش از يک برنامه را اجرا مي کند.] و در کنار اين دو مزيت سيستم عاملي پايدار و امن است مي تواند گزينه اي مناسب براي سرويس دهنده هاي شبکه باشد ، در حال حاضر اغلب شبکه هاي بزرگ و معتبر از سيستم عامل لينوکس به عنوان سرويس دهنده ي اصلي خود استفاده مي کنند.حتي سرويس دهنده هاي سايت hotmail بعد از کرک هاي متناوب از سوي مهاجمين به جاي و
يندوز مايکروسافت از لينوکس براي مدتي استفاده کرد تا بتواند در مقابل کرک هاي مداوم مهاجمان دوام بياورد. البته شرکت بزرگ IBM نيز محصولات سرويس دهنده ي خود را مانند سرورهاي وب وشبکه با سيستم عامل لينوکس مي فروشندالبته کاربرد لينوکس به سرويس دهنده ها ختم نمي شود بلکه آن را مي توان بر روي تقريبا هر ابزاري نصب کرد! آخرين مدل هاي گوشي موبايل در کره به جاي سيستم عامل هاي قبل از گنو/لينوکس استفاده مي کند ،در هند لينوکس به عنوان سيستم عامل کامپيوتر هاي دستي (Handheld) يا PDA استفاده مي شود در ژاپن شرکت سوني در لوازم صوتي و تصويري خود از گنو/لينوکس استفاده مي کند ، خلاصه هر کجا به يک سيستم عامل احتياج هست مي توان از لينوکس استفاده کرد و اگر لينوکس براي آن کار مناسب نباشد جامعه ي توسعه دهنده ي لينوکس براي آن کار توسعه مي دهندش ! و البته ميز کار کاربران معمولي را فراموش کرديم ، همان طور که در بالا گفتيم با توجه به توزيع هاي متفاوت و محيط هاي گرافيکي بسيار زياد براي کار با لينوکس امروزه ديگر اين سيستم عامل يک سيستم عامل حرفه اي نيست بلکه يک سيستم عامل حرفه اي و خانگي شده است. شما مي توانيد در خانه به شنيدن موسيقي يا تماشاي فيلم بپر دازيد يا کار هاي خود را مديريت کنيد يا در اينتر نت به گشت وگذار بپردازيد يا با دوستتان يک گپ (Chat) اينترنتي بزنيد و يا مي توانيد در خواست مرخصي خود را با برنامه هاي لينوکسي تايپ کنيدو به مدير خود بدهيد! و البته اگر شما يک برنا
مه نويس کنجکاو هستيد يا برنامه نويس وب ، گنو/لينوکس بهشت شماست.
البته از ديگر کاربرد هاي لينوکس استفاده از ان به عنوان سرور اشتراک فايل بجاي سيستم عامل گران قيمت ويندوز NT مايکروسافت است که اين کار را سامبا ( Samba ) که يک برنامه ي اشتراک گذاري فايل است برايتان انجام مي دهد.البته مي توانيد به عنوان يک سرور SQL قدرتمند که به وسيله ي پايگاه هاي داده اي بازمتني که همراه گنو/لينوکس عرضه مي شوندمانندMySQL ياPostgreSQLبه رفع نياز ها ي پايگاه داده خود بپردازيد.
كلمات عبور پيش فرض بايوس default bios password
گاهي اوقات پيش مي آيد كه نياز به به دليل فراموش شدن كلمه عبور بايوس نياز به آن وجود داشته ولي به دلايلي امكان باز كردن درب case كامپيوتر براي دسترسي به دكمه ريست بايوس يا خارج كردن باطري براي مدتي كوتاه وجود ندارد . در چنين مواردي تنها راه چاره هك كردن بايوس و نفوذ در آن با استفاده از كلمات عبور پيش گزيده كارخانه سازنده است. به همين خاطر تعدادي از اين كلمات عبور را براي بايوس هاي Award و Amibios در جدول زير آورده شده است :
AWARD BIOS
AMI BIOS
كلمات عبوري كه روي هردونوع بايوس كار ميكنند
AWARD_SW
SW_AWARD
AWARD?SW
LKWPETER or lkwpeter
j262
j256
condo,
AM
AMI
A.M.I.
AMI_SW
AMI?SW Syxz
oder
Wodj
setup
cmos
alfaromeo
بررسي مختصر کار با محيط هاي گرافيکي لينوکس
امکانات و قابليتهاي اين محيط هاي گرافيکي لينوکس تا حدودي به ويندوز شباهت دارد و همين امر کار راببراي کاربران جديد اين سيستم عامل و کساني که ميخواهند از ويندوز به لينوکس بپيوندند اندکي راحت تر ميکند . محيط گرافيکي از يک Desktop، Taskbar و تعدادي Icon بر روي Desktop تشکيل شده است .
در هر دو محيط KDE و GNOME به کنترل ها و تنظيمهاي مختلف سيستم دسترسي خواهيدداشت و به نظر ميرسد که براي اغلب کاربران محيط KDE<SPAN dir=
بررسي مختصر کار با محيط هاي گرافيکي لينوکس 2
مثل محيط ويندوز براي کپي کردن(Ctrl+C)، بريدن(Ctrl+X)، جايگزين کردن(Ctrl+V) و تغيير نام فايل(f2) از همان ميانبرها استفاده شده که در سرعت خو کرفتن کاربر با اين محيط تاثير دارد . حتي در مورد حذف فايلها هم همان قوانين صادق است يعني با زدن ُShift+Delete فايل براي هميشه حذف ميشود و با زدن Delete به تنهايي فايلها به Trash که همان جايگزين Recycle Bin در ويندوز است منتقل ميشوند.
بررسي منوي اصلي يا KMENU ويا Gmenu
آغازگر سيستم يا Bootloader چيست ؟
BootLoader به برنامه اي گفته ميشود که دستورات موجود در Master Boot record را اداره کرده , و هنگام شروع به کار کامپيوتر امکان مديريت بر اجراي چند سيستم عامل در کنار يکديگر را در يک سيستم طي مراحل Boot فراهم ميکند . بعد از بوت لودر معمولا سيستم عامل انتخاب شده اجرا ميشود . طي اين فرايند کامپيوتر اطلاعات کلي در مورد سخت افزار را از طريق Bios به دست مي آورد , Bios معمولا بصورت يک چيپ يا مدار آي سي Rom روي مادربورد قرار گرفته و وقتي که , Bios بتواند Master Boot record رو پيدا کند کار BootLoaderروع شده و در اصل اين برنامه در طي مراحل Boot ميتواند کامپيوتر را به هر جاي هاردديسک براي اجرا کردن سيستم
عامل خاص هدايت کند .
اگر شما بيشتر از يک سيستم عامل روي کامپيوترتان داشته باشيد پارتيشن هاي متفاوتي براي Boot کردن سيستم عامل داريد , اصولا Mbr روي اولين سکتور هارد ديسک قرار دارد , هر پارتيشن هم ميتواند روي اولين سکتور خود يک سري دستور براي Boot کردن سيستم از طريق آن پارتيشن داشته باشد , کار BootLoader همين است که کامپيوتر را به اين سکتورها راهنمايي کند . البته اگر سيستم عامل شما لينوکس يا يونيکس يا يه چيزي مثل اينها باشد BootLoader بايد Kernel Image رو هم Boot کند و به طور کلي در اکثر توزيع هاي Disturbution لينوکس از دو BootLoader معروف ميتوان به انتخاب خود استفاده کرد و معمولا اولين انتخاب Linux Loader يا Lilo است و بعدي Grub يا grand Unified Bootloader , در اکثر موارد ما از Lilo استفاده ميکنيم , با اين حال Grub هم امتيازاتي دارد , مثلا وقتي که Kernel را upgrade ميکنيد . لازم نيست Grub مجددا Reinstall شود , در حالي که اگر از Lilo استفاده ميکنيد لازم است که بعد از مراحل upgrade کردن kernel آنرا مجددا نصب کنيد . Grub بر خلاف Lilo ميتواند نوع Kernel Image را تشخيص داده ,و بر خلاف Lilo لازم نيست که مسير Root براي آن تعريف شود چون ميتواند فايل سيستم ها را براحت
ي خوانده و حتي فابل سيستم ReiserFS را نيز پشتيباني ميکند . اکثر Distrubution هاي لينوکس , به شما امکان اين انتخاب را ميدهند که از بين LiLo و Grub يکي را انتخاب کنيد , مثلا Redhat بيشتر به سمت استفاده از Grub تمايل دارد . قدرت BootLoader در اجرا کردن سيستم عامل هاي مختلف است , مثلا LiLo به راحتي دو ويندوز و يک لينوکس را ميتواند تواما و به راحتي اجرا کند و معمولا براي اينکه مشکلي پيش نيايد بهتر است ابتدا ويندوز را Install کنيد و بعد Linux را . سيستم عامل هاي Microsoft معمولا بدون اينکه به کاربر اطلاعي بدهند در هنگام نصب Mbr را
رونويسي کرده و مطابق نياز خود تغيير ميدهند .هم Lilo و هم Grub انواع و اقسام فايل سيستم ها را براحتي پشتيباني ميکنند , پس اگر مثلا Winw2k رو پارتيشن NTFS داريد لازم نيست نگران باشد هرچند که بهتر است نگاهي به تنظيمات فايل /etc/lilo.conf/ بيندازيد تا از صحت پشتيباني تمام فايل سيستمها مطمئن شويد .
راهنماي کار با خط فرمان متني لينوکس
ظاهر پوسته فرمان
در صورتي که لينوکس شما فاقد محيط گرافيکي است و يا اکنون محيط گرافيکي آن در حال اجرا نيست، شما بايد دستورات خود را از طريق پوسته فرمان به سيستم عامل ارسال کنيد. نخستين چيزي که در پوسته فرمان مشاهده ميکنيد، اعلان فرمان است که بصورت علامت $ ميباشد. اعلان فرمان براي کاربر ريشه بصورت # است. در بيشتر سيستمهاي لينوکس قبل از اعلان فرمان نام کاربري شما و نام کامپيوترتان قرار ميگيرد که بصورت زير نشان داده ميشود :
[alan@memphis home]$
امکان نمايش کاراکتراي مورد نيازتان بجاي کاراکترهاي فوق وجود دارد. چگونگي اين کار بعدا شرح داده خواهد شد. محيط پوسته فرمان امکانات زيادي دارد.
تايپ دستورات در محيط پوسته فرمان بسيار آسان ميباشد. براي اينکه با محيط پوسته فرمان آشنا شويد، سعي کنيد با دستوراتي که در زير بررسي ميشوند، تمرين کنيد.
نکته: در صورتي که هنگام راه اندازي سيستم، بجاي پوسته فرمان محيط گرافيکي لينوکس اجرا ميشود، براي تايپ فرامين پوسته بايد از Terminal يا Konsole استفاده کنيد. ميتوانيد در منوي run، فرمان xterm را نيز تايپ کنيد.
در مثالهاي زير علامتهاي $ و # نشان دهنده اعلان فرمان ميباشند. پس تايپ هر فرمان بايد
کليد Ebter را فشار دهيد و خروجي آن فرمان در خطوط پس از آن نمايش داده خواهد شد.
بررسي نشست ورود به سيستم
هنگامي که وارد سيستم لينوکس ميشويد، براي سيستم داراي يک هويت خاص هستيد. اين هويت شامل نام کاربري شما، نام گروه شما، شماره کاربري شما و شماره گروه شماست. همچنين لينوکس اطلاعات زمان ورود به سيستم، مدت حضور، مدت بيکاري و محل ورود ش
ما به سيستم را نگهداري ميکند. (حواستان را جمع کنيد!)
براي بدست آوردن اطلاعات در مورد هويت کاربري خودتان در جلوي اعلان فرمان دستور زير را تايپ کنيد. خروجي آن در زير آن نشان داده شده است:
$ id
uid=500(Alan) gid=500(Alan) groups=500(Alan)
خروجي فرمان نشان ميدهد که نام کاربر Alan بوده که عضو گروه Alan است و شماره هاي کاربري و گروه آن ۵۰۰ ميباشد.
با استفاده از فرمان who ميتوانيد اطلاعاتي در مورد نشست جاري بدست آوريد. در زير اين فرمان به همراه خروجي آن نشان داده شده است:
$ who
Alan :0 Apr 23 08:46
همچنان که مي بينيد، در خروجي نام کاربر جاري، زمان و تاريخ ورود به سيستم نمايش داده شده است.
بررسي دايرکتوري ها و مجوزهاي فايلها
در لينوکس مسير جاري به مسيري گفته ميشود که کاربر در آن لحظه در آن قرار دارد. هنگامي که وارد سيستم ميشويد، لينوکس شما را در دايرکتوري خانگي تان قرار ميدهد. هنگامي که دستور باز کردن يا ذخيره کردن فايلي را صادر ميکنيد، لينوکس مسير جاري را بعنوان محل آن فايل فرض کرده و از آنجا آنرا باز کرده و يا ذخيره ميکند. ساختار سيستم فايل لينوکس بعدا شرح داده خواهد شد و لازم نيست نگران آن باشيد. براي نمايش دايرکتوري جاري فرمان زير را جلوي خط فرمان تايپ کنيد. خروجي آن در زير آن نمايش داده شده است:
$ pwd
/usr/bin
در مثال بالا مسير جاري usr/bin است. براي يافتن مسير دايرکتوري خانگي خود، فرمان زير را تايپ کنيد:
$ echo $HOME
/home/Alan
همچنان که در خروجي ملاحضه ميکنيد، مسير دايرکتوري خانگي شما نمايش داده شده است. براي اينکه به دايرکتوري خانگي خود باز گرديد، کافي است به سادگي فرمان زير را تايپ کنيد:
$ cd
اين فرمان، شما را به دايرکتوري خانگي تان باز مي گرداند. خوب بد نيست ببينيم که چه چيزهايي در دايرکتوري خانگي وجود دارد. براي نمايش محتويات يک دايرکتوري، بايد از فرمان ls اس
تفاده نماييد. در صورتي که در دايرکتوري خانگي خود قرار نداريد ميتوانيد مسير کامل آنرا تايپ کنيد. در صورتي که فرمان ls را بدون هرگونه دايرکتوري تايپ کنيد، محتويات مسير جاري نمايش داده خواهد شد. گزينه a تمام فايلهاي مخفي را نمايش ميدهد و گزينه l براي نمايش جزئياتد.در زير اين دستور به همراه يک خروجي مثال نشان داده شده است:
$ ls -la /home/Alan
total 46740
drwx------ 47 Alan Alan 4096 Apr 23 11:09 .
drwxr-xr-x 8 root root 4096 Mar 12 17:51 ..
-rw------- 1 Alan Alan 616581 Apr 18 23:29 779-red_hat_linux_9.tar.gz
drwxr-xr-x 2 Alan Alan 4096 Mar 20 11:15 .acrobat
drwx------ 2 Alan Alan 4096 Mar 20 11:15 .adobe
drwx------ 2 Alan Alan 4096 Mar 12 17:04 .adonthell
drwxr-xr-x 2 Alan Alan 4096 Feb 14 13:19 .anjuta
-rw------- 1 Alan Alan 18325 Apr 23 00:36 .bash_history
-rw-r--r-- 1 Alan Alan 24 Aug 24 2002 .bash_logout
-rw-r--r-- 1 Alan Alan 191 Aug 24 2002 .bash_profile
هنگامي که از سوئيچ l براي نمايش جزئيات بيشتر استفاده ميکنيد، چيزي بيش از سايز فايلها و دايرکتوري ها نمايش داده ميشود. دايرکتوري جاري (.) و دايرکتوري والد (..) در بالاي ليست قرار مي گيرند. يعني در حقيقت نقطه نشان دهنده دايرکتوري home/Alan و دونقطه نشاندهنده دايرکتوري home/ است. بخش ابتدايي ليست نشاندهنده مجوزهاي هر فايل است. ساير اطلاعات نمايش داده شده عبارتند از اندازه فايل به بايت و تاريخ و ساعتي که فايل براي آخرين بار تغيير کرده است.
بررسي فعاليت سيستم
لينوکس علاوه بر چندکاربره بودن، سيستم عاملي است چند وظيفه (multitasking) . چند وظيفه بودن به اين معني است که برنامه هاي زيادي ميتوانند در يک زمان اجرا شوند. هر برنامه در حال اجرا يک پروسه ناميده ميشود.لينوکس فراميني براي نمايش پروسه هاي در حال اجرا، نمايش استفاده از منابع سيستمي و متوقف کردن پروسه هاي در مواقع لزوم دارد.
مرسوم ترين ابزار براي بررسي پروسه هاي در حال اجرا، دستور ps است. با اين دستور، ميتوانيد بررسي کنيد که چه برنامه هايي در حال اجرا هستند ، از چه منابعي استفاده ميکنند و چه کسي در حال اجراي آنهاست. در زير يک خروجي مثال از اين فرمان نشان داده شده است :
$ ps au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Alan 1152 0.0 0.5 4476 1348 pts/0 S 17:39 0:00 bash
Alan 1831 0.0 0.2 2580 664 pts/0 R 18:14 0:00 ps au
در مثال بالا، گزينه a، براي نمايش تمام پروسه هايي که به ترمينال فعلي شما مربوط است و گزينه u براي نمايش نام کاربري و زماني که برنامه آغاز به کار کرده است، بکار ميرود. مفهوم ترمينال به زمانهاي قديم باز ميگردد. در آن زمان کاربران روي ترمينالهاي مبتني بر متن کار ميکر
دند و هر ترمينال نشان دهنده يک نفر بود. اکنون شما ميتوانيد روي صفحه مانيتور خود تعداد زيادي ترمينال داشته باشيد. اين کار بوسيله باز کردن تعدادي پنجره ترمينال امکان پذير است.
در مثال بالا، چيز خاصي اتفاق نيافتاده است. خروجي نشان ميدهد که کاربري به نام Alan ، از برنامه هاي bash و ps در حال استفاده است. ستون TTY يا ترمينال، نشان دهنده ترميناي است که کاربر با آن به سيستم وارد شده است و ستون STAT نشاندهنده وضعيت پروسه است. R نشاندهنده پروسه در حال اجرا و S نشاندهنده پروسه در حال خواب ميباشد.
ستون USER نام کاربري که پروسـه را شروع کرده نمايش ميدهد. هر پروسه توسط يک عدد يکتا به نام شماره پروسه (Process ID) مشخص ميشود. از اين شماره هنگام از ميان بردن يا اصطلاحا kill کردن پروسه استفاده ميشود. ستونهاي %CPU و %MEM نشاندهنده مقدار پردازنده و حافظه اي هستند که پروسه ها استفاده کرده اند. ستون VSZ يا Virtual Set Size نشاندهنده سايز پروسه image به کيلوبايت و RSS يا Resident Set Size نشاندهنده سايز پروسه در حافظه است. ستون START نشاندهنده زمان آغاز پروسه و ستون TIME نشاندهنده زمان سيستم استفاده شده براي پروسه است.
بسياري از پروسه هايي که در کامپيوتر در حال اجرا هستند، به يک ترمينال خاص مربوط ن
يستند. يک سيستم عادي مبتني بر لينوکس ، داراي پروسه هايي فراواني است که در پس زمينه اجرا ميشوند. پروسه هاي پس زمينه پروسه هايي هستند که اعمالي مانند ثبت فعاليتهاي سيستم يا گوش کردن به پورتها براي اطلاعات واصله از شبکه را انجام ميدهند. اين پروسه ها هنگام بوت شدن سيستم آغاز به کار کرده و هنگام خاموش کردن سيستم ، به کار خود پايان ميدهند. براي نمايش تمام پروسه هاي در حال اجرا بر روي کامپيوترتان بايد از فرمان زير استفاده کنيد:
$ ps aux | less
قسمت less | به اين دليل به فرمان اضافه شده است که در صورتي که تعداد پروسه ها از يک صفحه بيشتر شد، امکان نمايش صفحه به صفحه آن وجود داشته باشد. به اين فرايند لوله بندي (pipe) فرمان گويند که به معني هدايت خروجي يک فرمان براي ورودي فرمان ديگر است
.
خروج از پوسته فرمان
هنگامي که کارهاي خود را انجام داديد و مايل بوديد از پوسته فرمان خارج شويد، کافي است که کليدهاي Ctrl+D را فشار دهيد. در صورتي که در حالت متني لينوکس را بوت کرده ايد، کافي است فرمان logout يا exit را تايپ کنيد.
خوب، تا اينجا با چند فرمان که به شما کمک ميکند از سيستمتان اطلاعات لازم را به دست آوريد، آشنا شديد. صدها فرمان ديگر نيز وجود دارند که ميتوانيد آنها را آزمايش کنيد. اين فرامين در مسيرهاي usr/bin و bin قرار دارند. همچنين فرامين مديريت سيتم در مسيرهاي usr/sbin و sbin قرار دارند. بيشتر اين فرامين در ادامه اين فصل توضيح داده خواهند شد.
درک دقيق تر پوسته فرمان لينوکس
قبل از اينکه آيکونها و پنجره ها روي صفحه کامپيوترها پديدار شوند، کاربران براي کار کردن با کامپيوترها بايد فرمانهايي را تايپ ميکردند. در سيستمهاي مبتني بر يونيکس که لينوکس هم يکي از آنهاست، برنامه اي که براي تفسير و مديريت فرمانها ايجاد شده است، پوسته فرمان (Command Shell) نام دارد.
پوسته فرمان راهي براي اجراکردن برنامه ها، کارکردن با فايلها، کامپايل کردن برنامه ها و مديريت کامپيوتر ايجاد ميکند.
با اينکه کارکردن با ابزارهاي گرافيکي آسان تر از کار کردن با پوسته فرمان است، ولي بيشتر کاربران حرفه اي لينوکس ترجيح ميدهند تا بجاي ابزارهاي گرافيکي از پوسته فرمان استفاده کنند. زيرا براي انجام بسياري از کارها مانند پيکربندي هاي سيستم ، پوسته فرمان بسيار قدرتمند تر از ابزارهاي گرافيکي است. حتي برخي کاربران قديمي يونيکس و لينوکس به ندرت از محيطهاي گرافيکي براي انجام کارهايشان استفاده ميکنند.
پوسته فرماني که در اين راهنما توضيح داده خواهد شد، bash نام دارد. نام آن برگرفته از Bourne Again Shell است. پوسته bash از نخستين پوسته سيستمهاي يونيکس که sh يا Bourne Shell نام داشت، ايجاد شده است و يکي از پر کاربرد ترين پوسته هاي فرمان به شمار ميرود. البته پوسته هاي ديگري نيز وجود دارند که از آنها استفاده ميشود که ميتواند از آنها csh يا C Shell که در سيستمهاي يونيکس BSD استفاده ميشود و ksh يا Korn Shell که بيشتر در Unix System V استفاده ميشود، نام برد. لينوکس همچنين داراي پوسته هاي tcsh و ash نيز ميباشد.
هنگامي که استفاده از يک پوسته فرمان را در لينوکس فرا بگيريد، به آساني ميتوانيد پوسته هاي ديگر را نيز ياد بگيريد. در صورتي که هرگونه مشکل يا سوالي داشتيد، ميتوانيد به صفحه manual آن پوسته مراجعه کنيد.
نکته : براي نمايش صفحه manual هر فرمان کافي است در خط فرمان لينوکس دستور زير را تايپ کنيد:
$ man <command>
استفاده از پوسته فرمان در لينوکس
هنگامي که يک فرمان را در پوسته فرمان تايپ ميکنيد، ميتوانيد به آن کاراکترهاي ديگري اضافه کنيد تا چگونگي کارکرد دستور مورد نظر را تغيير دهيد. علاوه بر خود دستور، موارد ديگري که ميتوانيد در خط فرمان تايپ کنيد عبارتند از :
-گزينه ها (Options) :
اکثر فرامين داراي يک يا چند گزينه هستند که با اضافه کردن و بکار بردين اين گزينه ها ميتوانيد نحوه رفتار فرمان را تغيير دهيد. براي مثال همانطور که قبلا هم ديديد، در فرمان ls -la گزينه l براي نمايش ليست مشروح فايلها و دايرکتوري ها و گزينه a براي نمايش فايلهاي مخفي که با نقطه شروع ميشدند، بکار رفت.ضمنا گزينه هايي که مخفف يک کلمه هستند با يک - شروع ميشوند در صورتي که گزينه هايي که يک کلمه کامل هستند با -- شروع ميشوند . براي مثال ls --help .
- آرگومان ها (Arguments):
بسياري از فرامين، علاوه بر گزينه ها ، آرگومانهايي را نيز قبول ميکنند. يک آرگومان يک بخش شامل نوعي اطلاعات مانند مسير يا نام فايل ميباشد. براي مثال در فرمان ls -la /home بخش home آرگومان فرمان ls به شمار ميرود.
- متغيير هاي محيطي (Environment Variables):
خود پوسته اطلاعاتي را در بر دارد که براي کاربر مفيد است. به اين اطلاعات متغ
ييرهاي محيطي مي گويند. براي مثال متغيير SHELL نمايانگر نوع پوسته مورد استفاده ، SP1 نشاندهنده اعلان فرمان و MAIL نشاندهنده محل صندوق پستي شما است :
$ echo $SHELL
/bin/bash
$ echo $MAIL
/var/spool/mail/Alan
توجه داشته باشيد که براي فراخواني متغيير ها به ابتداي آنها علامت $ اضاف
ه ميشود.
نکته : براي نمايش تمام متغييرهاي محيطي ميتوانيد از دستور declare استفاده کنيد. براي نمايش يک متغيير خاص ميتوانيد همانند بالا از دستور echo استفاده کنيد.
- کاراکترهاي ويژه (Metacharacters):
کاراکترهايي وجود دارند که داراي معناي خاصي براي پوسته فرمان هستند. اين کاراکترها ميتوانند براي هدايت خروجي يک فرمان به يک فايل ، لوله بندي خروجي يک فرمان و يا اجراي فرمان در پس زمينه استفاده شوند. کاراکترهاي ويژه در اين فصل توضيح داده خواهند شد.
براي صرفه جويي در مقدار تايپ و آسانتر شدن کار ، پوسته فرمان داراي ويژگيهايي است که دستورات قبلي تايپ شده را نگهداري ميکند. همچنين شما ميتوانيد براي آسانتر شدن، نامهاي مستعاري براي دستورات ايجاد کنيد. پوسته فرمان دستوراتي که قبلا وارد کرده ايد ذخيره ميکند و ميتوانيد بجاي تايپ مجدد دستورات ، دستورات قبلي را فراخواني نماييد. اين موضوع نيز جلوتر بررسي خواهد شد.
در صورتي که پوسته فرمان را تغيير داده نباشيد، پوسته bash پوسته اي است که همراه با لينوکس استفاده ميکنيد. پوسته bash از نظر امکانات و قابليتها قويتر از انواع ديگر پوسته هاي فرمان است. در اين فصل بيشتر قابليتهاي پوسته فرمان bash بررسي خواهند شد. ولي در صورتي که نياز به اطلاعات بيشتري داشتيد، ميتوانيد از دستور man bash براي نمايش راهنماي پوسته bash استفاده کنيد.
يافتن فرمانهاي لينوکس
در صورتي که بدانيد که يک دستور در کجاي سيستم فايل لينوکس قرار دارد، ميتوانيد آنرا با تايپ مسير کامل اجرا نماييد. براي مثال براي اجراي دستور date :
$ /bin/date
البته در صورتي که دستوري در مسيرهاي سخت و طولاني قرار داشته باشد ، اين کار دشوار خواهد بود. بهترين راه حل اين مشکل، نگهداري فرامين در يک داير
کتوري خاص است. سپس ميتوانيد اين دايرکتوري را به مسير جستجوي پوسته فرمان خود اضافه کنيد تا هنگام تايپ يک فرمان، خود پوسته بطور خودکار دايرکتوري فوق را براي وجود فرمان کاوش کند :
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/Alan/bin
خروجي فرمان فوق مسيرهاي تعريف شده براي پوسته فرمان را براي يک کاربر خاص نشان ميدهد. همانطور که مي بينيد دايرکتوري ها توسط يک کلون از هم ج
دا شده اند. بيشتر دستوراتي که همراه با لينوکس ارائه ميشوند، در دايرکتوري هاي bin ، usr/bin يا usr/local/bin قرار دارند. دستورات گرافيکي که با محيطهاي گرافيکي استفاده ميشوند در مسيرهاي usr/bin/X11 و usr/X11R6/bin قرار دارند. آخرين دايرکتوري نشان داده شده در خروجي فرمان، در دايرکتوري خانگي کاربر قرار دارد.
نکته : در صورتي که مايليد دستوراتي که خود ايجاد ميکنيد مستقيما در خط فرمان اجرا شوند، ميتوانيد يک دايرکتوري به نام bin در دايرکتوري خانگي خود ايجاد کنيد و اين دستورات را در آنجا ذخيره کنيد. لينوکس اين دايرکتوري را بطور خودکار به مسيرهاي تعريف شده اضافه ميکند.
در صورتي که شما کاربر ريشه هستيد، دستورات مربوط به مديريت سيستم در دايرکتوري هاي sbin و usr/sbin قرار دارند.
ترتيب دايرکتوري هاي موجود در مسيرهاي تعريف شده نيز مهم است. اين دايرکتوري ها از چپ به راست بررسي ميشوند. بنابراين اگر دستوري به نام foo هم در دايرکتوري usr/bin و هم در دايرکتوري bin قرار داشته باشد، اولي اجرا خواهد شد. براي اجراي دستور دوم foo بايد مسير کامل آنرا تايپ کنيد و يا مسيرهاي تعريف شده را تغيير دهيد. چگونگي اين کار جلوتر توضيح داده خواهد شد.
تمام فراميني که تايپ ميکنيد، در دايرکتوري هاي مسيرهاي تعريف شده شما قرار ندارند. برخي فرامين بصورت دروني در پوسته فرمان گنجانده شده اند. در صورتي که براي يک فرمان خاص يک نام مستعار همراه با گزينه ها و آرگومانهاي خاص ايجاد کنيد، ابتدا آن اجرا ميشود. همچنين راههايي براي ايجاد توابعي که شامل چندي فرمان هستند نيز وجود دارد. ترتيب بررسي محلهاي مختلفي که پوسته فرمان براي پيداکردن يک دستور انجام ميدهد به شرح زير است :
- نامهاي مستعار :
نامهايي که با دستور alias ايجاد شده اند و نشانگر يک دستور به همراه گزينه ها و آرگومانهاي احتمالي ميباشند.
- کلمات رزرو شده پوسته فرمان : کلماتي هستند که براي استفاده هاي مخصوص رزرو شده اند. بيشتر اين کلمات دستوراتي هستند که معمولا در زبانهاي برنامه نويسي استفاده ميشوند مانند do ، while ، case و غيره.
- توابع : دسته اي از دستورات که همراه هم در پوسته فرمان اجرا ميشوند.
- دستورات دروني : دستوراتي که درون خود پوسته فرمان گنجانده شده اند.
- دستورات سيستم فايل :
دستورات معمولي که بصورت فايلهايي در سيستم فايل لينوکس قرار دارند. مسيرهاي اين دستورات در متغيير محيطي PATH گنجانده شده است.
نکته : براي نمايش ليستي از فرامين دروني bash و گزينه هاي آن ميتوانيد از دستور help استفاده کنيد. براي نمايش اطلاعات بيشتر در مورد دستور مورد نظر از دستور info بعلاوه نام دستور مورد نظر استفاده کنيد.
براي اينکه بفهميد که يک دستور در کجا قرار دارد، ميتوانيد از دستور type براي اين منظور استفاده کنيد. براي مثال :
$type bash
bash is /bin/bash
از دستور بالا براي يافتن محل فراميت ديگري مانند which، case و ... استفاده کنيد. در صورتي که دستوري در چندين دايرکتوري قرار دارد، ميتوانيد با اضافه کردن گزينه a به دستور type، تمام محلهاي وجود آنرا چاپ کنيد.
نکته :گاهي اوقات هنگام اجراي يک فرمان با خطاهايي مانند "اين فرمان پيدا نشد" و يا "شما مجوز استفاده از اين فرمان را نداريد" مواجه ميشويد. براي مورد اول بررسي کنيد که دستور را صحيح تايپ کرده ايد و مسير آن در مسير PATH شما قرار داشته باشد. ممکن است فرمان مورد نظر اجرايي نباشد. در بخش کارکردن با فايلها، چگونگي اجرايي کردن يک فايل تشريح خواهد شد.
اجراي مجدد يک فرمان
تصور کنيد يک فرمان بسيار طولاني را تايپ کرده ايد و پس از اجراي آن متوجه ميشويد که مرتکب اشتباه شده ايد. مطمئنا چيزي دردآور تر از اين وجود ندارد! پوسته فرمان داراي قابليتهايي است که ميتوانيد بوسيله آن دستوراتي که قبلا اجرا کرده ايد فراخواني کرده و در صورت لزوم پس از اصلاح يا تغيير وحتي بدون تغيير آنها را مجددا اجرا کنيد.
پوسته فرمان داراي قسمتي به نام تاريخچه (History) است که فراميني که قبلا وارد کرده ايد را نگهداري ميکند. شما ميتوانيد اين فرامين را از تاريخچه فراخواني کرده و استفاده کنيد.
ويرايش خط فرمان
در صورتي که در تايپ يک دستور مرتکب اشتباه شده ايد، ميتوانيد به آساني آنرا فراخواني کرده و مجددا پس از ويرايش ، آنرا اجرا کنيد. ميتوانيد از برخي کليدهاي ميانبر براي راحت تر کردن اين کار استفاده کنيد. مثلا کليدهاي Ctrl+a اشاره گر را به ابتداي فرمان و Ctrl+E به انتهاي فرمان حرکت مي دهد. همين کار را کليدهاي Home و End نيز انجام ميدهند. ويرايش کردن فرمان مانند کارکردن در ويرايش گرهاي متني است و بسيار ساده است. پس اتمام ويرايش دستور، کافي است کليد Enter را براي اجراي آن فشار دهيد.
کامل کردن خودکار فرمان
براي اينکه مقدار تايپ شما به حداقل برسد، پوسته فرمان فرمان ناقص شما را به روشهايي کامل ميکند. . براي بکارگيري اين قابليت کافي است که ابتدا چند حرف اول فرمان مورد نظر را تايپ کرده و کليد tab را فشار دهيد. در زير برخي موارد را که ميتوانيد ناقص تايپ کنيد مي بينيد :
- متغيير هاي محيطي : در صورتي که متن با يک علامت دلار شروع شود، با فشردن کليد tab ، پوسته فرمان آنرا با يک متغيير محيطي کامل خواهد کرد.
- نام کاربري :
در صورتي که متن بوسيله يک کاراکتر ~ شروع شود، پوسته فرمان آن را بوسيله يک نام کاربري کامل خواهد کرد.
- دستورات، نامهاي مستعار يا توابع :
در صورتي که متن با يک کاراکتر عادي شروع شود، پوسته فرمان آنرا بوسيله يک دستور، نام مستعار يا تابع کامل خواهد کرد.
- نام ميزبان :
در صورتي که متن با يک علامت @ شروع شود، پوسته فرمان آنرا بوسيله يک نام ميزبان که از فايل etc/hosts مي خواند، کامل ميکند.
مواقعي وجود دارد که براي کامل کردن يک فرمان چندين گزينه وجود دارد . مثلا چندين متغيير محيطي وجود دارد که با حرف P شروع ميشود. در اين موارد در صورتي که شما دوبار کليد Tab را فشار دهيد و يا کليدهاي Esc+? را فشار دهيد، تمام حالتهاي ممکن به شما نشان داده ميشود :
$ echo $P<tab><tab> or <Esc+?>
$PATH $PPID $PS1 $PS4
$PIPESTATUS $PROMPT_COMMAND $PS2 $PWD
فراخواني مجدد يک فرمان
پس از اينکه يک دستور را تايپ کرديد، همانطوري که قبلا گفتم اين دستور بطور کامل در تاريخچه پوسته فرمان ذخيره ميشود. براي نمايش محتويات تاريخچه پوسته فرمان ميتوانيد از دستور history استفاده کنيد. در صورتي که پس از آن يک عدد اضافه کنيد، به تعداد آن عد
دستورات تايپ شده را نشان خواهد داد :
$ history 5
1023 ls
1024 cd Fonts/
1025 man more
1026 date
1027 history 5
براي فراخواني دستورات تايپ شده ميتوانيد از روشهاي زير استفاده کنيد:
-کليدهاي مکان نما : از کليدهاي بالا و پايين مکان نما ميتوانيد براي حرکت کردن در ليست تاريخچه استفاده کنيد. بجاي آن از کليدهاي Ctrl+n و Ctrl+p نيز ميتوانيد استفاده کنيد.
-کليدهاي Ctrl+r: براي جستجوي آخر به اول يک رشته در تاريخچه استفاده ميشود. براي مثال با تايپ يک يا چند حرف، دستوري که داراي آن حروف است نمايش داده ميشود.
-کليدهاي Ctrl+s: مشابه بالا ولي جستجو بصورت اول به آخر صورت ميگيرد.
روش ديگري که ميتوانيد از آن براي کار کردن با فرامين استفاده کنيد، دستور fc است. با استفاده از اين دستور، که پس از آن ميتوانيد شماره دستور مورد نظر در تاريخچه يا بازه اي از شماره ها را ذکر کنيد، اين دستورات در يک ويرايشگر متني باز ميشوند که ميتوانيد آنها را ويرايش کرده و خارج شويد. براي مثال دستور زير دستورات ۱۰۰ ام تا ۱۵۰ ام تاريخچه را در ويرايشگر باز خواهد کرد :
$ fc 100 150
ليست تاريخچه در فايلي به نام .bash_history که در دايرکتوري خانگي شما قرار دارد، ذخيره ميشود و در آن تا ۱۰۰۰ دستور نگهداري ميشود.
اتصال و گسترش فرامين
يکي از قابليتهاي واقعا قدرتمند پوسته فرمان، قابليت هدايت خروجي يا ورودي يک فرمان به فرامين ديگر است. براي اين منظور، همانطور که قبلا اشاره شد، از کاراکترهاي ويژه استفاده ميشود.
لوله بندي فرامين (Piping Commands)
کاراکتر ويژه لوله بندي کاراکتر (|) است. اين کاراکتر، خروجي يک فرمان را به ورودي فرمان ديگر هدايت ميکند. براي مثال :
$ cat /etc/passwd | sort | more
adm:x:3:4:adm:/var/adm:/sbin/nologin
Alan:x:500:500:Alan Bachumian,7852020:/home/Alan:/bin/bash
apache:x:48:48:Apache:/var/www:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
Linet:x:501:501:Linet Minasian:/home/Linet:/bin/bash
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
--More--
اين فرمان محتويات فايل etc/passwd را خوانده و خروجي را به فرمان sort هدايت ميکند. اين فرمان، کاراکتر ابتداي هر سطر را گرفته و خروجي را بصورت الفبايي مرتب کرده و خروجي را به دستور more ميفرستد و اين دستور نيز خروجي را بصورت صفحه به صفحه نمايش ميدهد.
قابليت لوله بندي نمايش خوبي است از اينکه چگونه يونيکس، پدر لينوکس بر اساس قطعات مختلف نرم افزاري شکل گرفته است. مثلا در يونيکس ابزارهاي مختلف را طوري به هم وصل ميکردن که کارهاي مختلفي بتوان با آنها انجام داد. مثال خوبي که در اين مورد ميشود زد: سالها پيش که واژه پردازهاي گرافيکي و راحت مانند اکنون وجود نداشتند، کاربران بايد ابتدا سند خود را بصورت متني ايجاد کرده و سپس آنرا بوسيله ماکروهاي خاصي فرمت بندي ميکردند و بعد بايد بررسي ميکردند که چطور از آب در آمده است . براي اين کار از فرماني مانند زير استفاده ميشد:
$ nroff -man grep.1 | lpr
در دستور بالا از nroff براي فرمت کردن فايل grep.1 با استفاده از ماکروي man استفاده شده و حاصل کار با استفاده از لوله بندي به خروجي چاپگر که lpr است فرستاده شده است.
دستورات متوالي کار به سادگي امکان پذير است. کافي است پس از اتمام هر فرمان آنرا از فرمان بعدي بوسيله يک کاراکتر سم کالن (;) جدا کنيد. براي مثال :
$ date; troff -me mytext | lpr; ls /home
فرامين پس زمينه
برخي دستورات براي تمام شدن نياز به زمان دارند. برخي اوقات مايل نيستيد که پوسته فرمانتان را معطل باقي بگذاريد تا دستور به اتمام برسد. براي اين منظور ميتوانيد دستور مورد نظر را با استفاده از کاراکتر آمپرسند (&) در پس زمينه اجرا کنيد. براي مثال :
$ troff -me mytext &
راههايي براي مديريت پروسه هاي پيش زمينه و پس زمينه وجود دارد که جلوتر درباره آنها صحبت خواهيم کرد.
توسعه فرامين
به وسيله قابليت جانشيني فرامين ميتوانيد پوسته فرمان را وادار کنيد تا خروجي يک فرمان را خودش تفسير کند، بجاي اينکه اين کار به خود فرمان واگذار شود. در اين مورد شما ميتوانيد خروجي استاندارد يک فرمان را بصورت آرگومان يک دستور ديگر تعيين کنيد. دو شکل قابليت جانشيني فرامين بصورت زير است :
$(sommand) or 'command'
براي فهميدن اين قابليت به مثال زير توجه کنيد:
$ vi $(find / -print | grep xyzzy)
در اين دستور، قبل از اجراي vi جانشيني فرامين صورت مي گيرد. ابتدا دستور find از دايرکتوري ريشه شروع به کار کرده و نام تمام فايلها و دايرکتوري ها را چاپ ميکند. خروجي اين دستور به grep ارسال ميشود و اين دستور تمام آنها را که فاقد رشته xyzzy هستند را فيلتر ميکند. سپس vi تمام فايلهايي را که داراي رشته xyzzy هستند را باز ميکند.
توسعه عبارات حسابي
موارد زيادي وجود دارد که شما مايليد که نتايج يک جمله محاسباتي را به يک فرمان ارسال کنيد . دو راه براي انجام آن وجود دارد:
$[expression] or $((expression))
براي روشن شدن مطلب به مثال زير توجه کنيد :
$ echo “Iam $[2003-1978] years old.”
Iam 25 years old.
در مثال بالا، پوسته فرمان ابتدا عبارت حسابي را انجام داده و سپس نتيجه را به فرمان echo ارسال ميکند.
توسعه متغييرهاي محيطي
همانطور که قبلا گفتيم، متغييرهاي محيطي اطلاعاتي را در مورد پوسته فرمان در بر دارند. هنگامي که يک متغيير محيطي را در يک دستور قرار ميدهيد، بجاي اينکه نام آن چاپ شود، محتويات آن چاپ ميشود :
$ ls -l $BASH
-rwxr-xr-x 1 root root 626188 Aug 24 2002 /bin/bash
در مثال بالا، دستور ls با استفاده از متغيير محيطي BASH محل آنرا چاپ ميکند. در اين مورد بيشتر توضيح خواهم داد.
استفاده از متغيير هاي محيطي
متغييرهاي محيطي براي ذخيره اطلاعاتي مانند محل فايلهاي پيکربندي ، صندوقهاي پستي و مسير دايرکتوري ها بکار ميروند. همچنين اين متغييرها داراي مقاديري براي شکل اعلان فرمان، اندازه تاريخچه و نوع سيستم عامل نيز هستند.
براي نمايش متغييرهايي که اکنون به پوسته فرمان شما اختصاص داده شده اند، بايد از دستور declare استفاده کنيد.
براي نمايش محتويات هر يک ، کافي است يک علامت دلار جلوي آن قرار داده و آن را در دستورات خط فرمان استفاده کنيد :
$ echo $USER
Alan
همانطور که مي بينيد، فرمان بالا نام کاربر فعلي سيستم را نمايش ميدهد.
متغييرهاي محيطي عمومي
هنگامي که يک پوسته فرمان باز ميکنيد، متغييرهايي وجود دارند که مقادير آنها قبلا تخصيص داده شده است. در زير برخي از اين متغييرها نشان داده شده اند :
o BASH: محتوي مسير کامل برنامه پوسته فرمان است. به طور معمول bin/bash .
o BASH_VERSION: شماره نسخه برنامه پوسته فرمان را نشا
ن ميدهد.
o EUID: شماره شناسايي موثر کاربر فعلي را نمايش ميدهد. اين مقدار هنگامي که پوسته شروع ميشود، تخصيص داده ميشود.
o HISTFILE: محل فايل تاريخچه فرامين را نمايش ميدهد.
o HISTFILESIZE: تعداد فراميني که تاريخچه در خود نگهداري ميکند. معمولا ۱۰۰۰ است.
o HISTCMD: شماره فرمان جاري را در تاريخچه نشان ميدهد.
o HOME: دايرکتوري خانگي کاربر جاري را نشان ميدهد.
o HOSTTYPE: نوع معماري پردازنده کامپيوتر را نشان ميدهد.
o MAIL: مسير صندوق پستي کاربر جـاري را نـشـان ميدهد. مـعـمـولا بـه نـام شـمـا در /var/spool/mail قرار دارد.
o OLDPWD: مسير قبل از دايرکتوري جاري فعلي را نشان ميدهد.
o OSTYPE: نوع سيستم عامل را نشان ميدهد. در مورد ما خروجي به صورت linux-gnu خواهد بود.
o PATH: ليست دايرکتوري هاي معرفي شده را نشان ميدهد. براي اجراي يک فرمان در اين دايرکتوري ها جستجو صورت ميگيرد.
o PPID: شماره پروسه اي که پوسته فرمان را شروع کرده است، نمايش ميدهد.
o PROMPT_COMMAND: دستوري را که هربار پيش از نمايش اعلان فرمان اجرا ميشود را نشان ميدهد.
o PS1: مقدار اعلان فرمان را تخصيص ميدهد. مقادير زيادي وجود دارند که آنها را ميتوانيد در اعلان فرمان خود بگنجانيد مانند تاريخ، زمان، نام کاربر، نام کامپيوتر و ... برخي اوقات يک فرمان به اعلان هاي بيشتري نياز دارد که ميتوانيد از متغييرهاي PS2 يا PS3 براي اين کار استفاده کنيد. در اين مورد بيشتر توضيح خواهم داد.
o PWD: دايرکتوري جاري را نشان ميدهد.
o RANDOM: با مراجعه به اين متغيير يک شماره تصادفي بين ۰ و ۹۹۹۹ توليد ميشود.
o SECONDS: تعداد ثانيه اي که پوسته فرمان آغاز به کار کرده است.
o UID: شماره شناسايي اصلي کاربر فعلي را نمايش ميدهد. اين شماره در فايل etc/passwd ذخيره شده است.
ايجاد متغييرهاي محيطي خاص
از متغييرهاي محيطي ميتوانيد براي ذخيره اطلاعاتي که معمولا در پوسته فرمان استفاده ميکنيد، بهره برداري کنيد. شما ميتوانيد هر گونه متغيير محيطي به دلخواه خود ايجاد کنيد. براي ايجاد موقت يک متغيير محيطي ميتوانيد نام متغيير و مقدار آن را جلوي اعلان فرمان تايپ کنيد :
$ AB=/usr/locl/documents; export AB
مثال بالا مسير يک دايرکتوري را به يک متغيير به نام AB اختصاص ميدهد. دستور export اين متغيير را به پوسته فرمان صادر ميکند. بنابراين در صورتي که پوسته هاي فرمان ديگري نيز اجرا شوند، اين متغيير در آنها موجود خواهد بود.
نکته : ممکن است توجه کرده باشيد که تمام متغييرهاي محيطي با حروف بزرگ تعريف شده اند. اين کار يک رسم است نه يک الزام. يعني در صورتي که نام متغييري را با حر
وف کوچک تعيين کنيد ، باز هم کار خواهد کرد. البته توجه داشته باشيد که متغيير xyz با XYZ يکي نيست.
مشکلي که در ايجاد اين گونه متغييرهاي محيطي وجود دارد اين است که موقت بوده و با خروج از پنجره پوسته اي که اين متغيير در آن تخصيص داده شده است، اين متغير پاک خواهد شد. براي اختصاص دائمي اين متغييرها، بايد آنها را به فايلهاي پيکربندي پوسته فرمان اضافه کنيد. اين موضوع جلوتر توضيح داده خواهد شد.
در صورتي که مايليد متني درست جلوي مقدار يک متغيير محيطي قرار گيرد، کافي است که متغيير را در دو پرانتز قرار داده و متن مورد نظر را جلوي آن قرار دهيد . براي مثال :
$ echo ${HOME}/Documents
/home/Alan/Documents
به خاطر داشته باشيد که براي استفاده از متغييرها يا بايد آنها را export کنيد و يا به فايل پيکربندي پوسته فرما اضافه نماييد. دستور export بسيار قابل انعطاف است. مثلا ميتوانيد در هنگام صادر کردن متغيير، مقدار آنرا هم تخصيص دهيد :
$ export XYZ=/home/Alan/Documents
ويا ميتوانيد با حفظ مقادير قبلي، مقداري را به يک متغيير اضافه نماييد :
$ export PATH=$PATH:/home/Alan/Documents
در مثال بالا، دايرکتوري home/Alan/Documents به طور موقت به متغيير PATH اضافه شده است.
در صورتي که احساس کرديد ديگر به يک متغيير نيازي نداريد، ميتوانيد با استفاده از دستور unset آنرا پاک کنيد:
$ unset XYZ
همانطور که ديديد، براي پاک کردن متغيير نيازي به علامت دلار نيست.
مديريت پروسه هاي پس زمينه و پيش زمينه
در صورتي که از لينوکس در محيط شبکه اي و با استفاده از يک ترمينال متني استفاده ميکنيد، پوسته فرمان تنها چيزي است که ميتوانيد از آن استفاده کنيد و از محيطهاي گرافيکي خبري نخواهد بود. در صورتي که نياز داشته باشيد در آن واحد با چندين برنامه کار کنيد، اين مسئله بسيار محدود کننده خواهد بود.
با اينکه پوسته فرمان محيطي گرافيکي براي اجراي برنامه ها ندارد، ولي قابليتي دارد که با استفاده از آن ميتوانيد برنامه هاي فعال را بين پس زمينه و پيش زمينه جابجا نماييد. با اين وسيله ميتوانيد تعداد زيادي برنامه را در يک زمان درحال اجرا داشته باشيد و بين آنها حرکت کنيد.
راههاي گوناگوني براي قرار دادن يک برنامه در پس زمينه وجود دارد. قبلا اشاره کرديم که با اجراي برنامه اي که به آخر آن يک کاراکتر آمپرسند (&) اضافه شده است، در پس زمينه قرار ميگيرد. روش ديگر استفاده از دستور at براي اجراي برنامه ها بصورتي که به پوسته متصل نباشند ، است.
براي توقف اجراي يک فرمان و قرار دادن آن در پس زمينه، از کليدهاي Ctrl+z استفاده کنيد. پس از اينکه اجراي دستور متوقف شد، با استفاده از دستور fg ميتوانيد آنرا به پيش زمينه آورده، استفاده کنيد و يا با دستور bg آنرا در پس زمينه بکار بگيريد.
شروع پروسه هاي پس زمينه
در صورتي که برنامه هايي داريد که مايليد در هنگام کار کردن شما در پس زمينه ا
جرا شوند، پس از دستور ، يک علامت آمپرسند (&) در پايان آن اضافه کنيد. براي مثال :
$ find /usr -print > /home/Alan/usrfiles &
اين دستور تمام فايلهاي موجود در دايرکتوري usr لينوکس شما را در فايلي به نام usrfiles ذخيره ميکند. علامت آمپرساند باعث ميشود که اين فرمان در پس زمينه اجرا شود. براي ديدن اينکه چه برنامه هايي در پس زمينه در حال اجرا هستند، از دستور jobs استفاده کنيد:
$ jobs
[2]+ Stopped vi
[3] Running find /usr -print >usrfiles &
همانطور که در خروجي فرمان بالا مشاهده ميکنيد، سه برنامه mc ، vi و دستور find در حال اجرا در پس زمينه هستند. علامت مثبت در کنار برنامه دوم نشان ميدهد که اين آخرين پروسه اي است که درحالت پس زمينه اجرا شده است و علامت منفي نشاندهنده پروسه اي است که قبل از آخرين پروسه، در پس زمينه قرار داده شده است. بعلت اينکه برنامه هاي اول و دوم براي کارکرد به خروجي ترمينال نياز دارند تا زماني که در حالت پيش زمينه اجرا شوند، متوقف باقي خواهند ماند. ولي برنامه find که به خروجي ترمينال نيازي ندارد، در حال اجرا ميباشد.
نکته : براي نمايش شماره پروسه برنامه هاي پس زمينه ، ميتوانيد گزينه l را به فرمان jobs اضافه نماييد. در صورتي که از دستور ps براي نمايش پروسه هاي فعال استفاده کنيد، ميتوانيد ببينيد که کداميک از آنها دستوري است که در پس زمينه در حال اجراست.
استفاده از فرامين پس زمينه و پيش زمينه
در ادامه مثالي که در بالا ذکر شد، براي برگرداندن برنامه vi به پيش زمينه ميتوانيد از دستور زير استفاده کنيد:
$ fg %2
با اين دستور، برنامه vi مجددا روي پوسته فرمان نمايش داده خواهد شد. با فشردن کليدهاي Ctrl+z ميتوانيد مجددا آنرا به پس زمينه بفرستيد.
هشدار : قبل از اينکه يک برنامه واژه پرداز و يا برنامه اي که اطلاعات ذخيره نشده دارد را به پس زمينه ارسال کنيد، اطلاعات آنرا ذخيره نماييد. برنامه هاي پس زمينه به سادگي فراموش ميشوند و ممکن است اطلاعات خود را از دست بدهيد.
همانطوري که ديديد براي نمايش يک برنامه پس زمينه از علامت درصد و شماره آن که در دستور jobs مشخص شده بود استفاده شد. علاوه بر شماره، ميتوانيد بجاي آن نام برنامه و يا قسمتي از نام برنامه که ابتداي آن علامت سوال قرار داده شده استفاده کنيد. اين کار هنگامي که دو برنامه مشابه به همراه دو فايل متفاوت باز هستند، به شما کمک خواهد کرد. براي روشن شدن مطلب به مثال زير توجه کنيد :
$ jobs
[2] Stopped vi
[3]- Stopped mc
[4]+ Stopped vi ./mytext
$ fg %?my
با تايپ دستور fg %?my برنامه vi که در حال ويرايش فايل mytext است، در پوسته فرمان نمايش داده خواهد شد.
پيکربندي پوسته فرمان
براي اينکه بتوانيد بطور موثرتري از پوسته فرمان خود استفاده کنيد، ميتوانيد آنرا بنا به خواسته خود تنظيم کنيد. براي اين منظور بايد فايلهاي پيکربندي پوسته فرمان خود را ويرايش کنيد.
تعدادي فايل پيکربندي وجود دارد که نحوه رفتار پوسته فرمان شما را تعيين ميکند. برخي از اين فايلها براي تمام کاربران و پوسته ها مشترک بوده و برخي مخصوص يک کاربر خاص هستند. فايلهاي پيکربندي زير فايلهايي هستند که هر کاربر پوسته فرمان در لينوکس از آنها استفاده ميکند :
o Etc/profile: اين فايل اطلاعات محيط کاربري هر کاربر را ذخيره ميکند. اين فايل هنگامي اجرا ميشود که شما به سيستم وارد شده و پوسته فرمان آغاز به کار ميکند. اين فايل مقادير پيش گزيده مسير، شکل اعلان فرمان، حداکثر تعداد فايلي که شما ميتوانيد ايجاد کنيد و مجوز هاي پيش گزيده براي فايلهايي که ايجاد ميکنيد را تعيين ميکند. همچنين اين فايل متغيير هاي محيطي مانند محل صندوق پستي و اندازه فايلهاي تاريخچه را تنظيم ميکند.
o etc/bashrc : اين فايل براي هر کاربري که پوسته bash را اجراميکند، اجرا ميشود. اين فايل حالت اعلان فرمان را تنظيم ميکند. مقادير اين فايل ميتواند توسط فايل bashrc که در دايرکتوري خانگي هر کاربر وجود دارد، تحت تاثير قرار گيرد.
o bashrc./~ : اين فايل حاوي اطلاعات مربوط به bash هر کاربر ميباشد. اين فايل هنگامي خوانده ميشود که به سيستم وارد ميشود و هر گاه که يک پوسته جديد باز ميکنيد. اينجا بهترين مکان براي ذخيره متغييرهاي محيطي و فرمانهاي مستعار خاص خودتان است.
o bash_profile. /~ : اين فايل براي وارد کردن اطلاعات خاصي که هر کاربر در استفاده از پوسته بکار ميبرد ميباشد. اين فايل تنها يکبار اجرا ميشود. هنگامي که کاربر به سيستم وارد ميشود. اين فايل تعدادي از متغييرهاي محيطي را مقدار دهي کرده و فايل bashrc مربوط به کاربر را اجرا ميکند.
o bash_logout. /~ : اين فايل هر گاه که شما از سيستم خارج ميشويد اجرا ميشود. اين فايل فقط صفحه نمايش را پاک ميکند.
براي تغيير فايلهاي etc/profile و etc/bashrc بايد با کاربر ريشه وارد سيستم شده باشيد. هر کاربر ميتواند اطلاعات موجود در فايلهاي bash_profile، bashrc و bash_logout موجود در دايرکتوري هاي خود را تغيير دهد.
در قسمت زير با برخي تنظيمات فايلهاي پيکربندي پوسته فرمان آشنا ميشويد. در بيشتر موارد، تغييرات در فايل bashrc موجود در دايرکتوري خانگي صورت ميگيرد. هرچند در صورتي که شما يک مدير سيستم باشيد، ممکن است اين تنظيمات را براي کل کاربران خود اعمال کنيد.
تنظيم اعلان فرمان
اعلان فرمان شما از تعدادي کاراکتر تشکيل شده است که هر گاه که به نمايش در مي آيد، معني آن اين است که پوسته فرمان آماده دريافت فرمان جديد است. محتويات اعلان فرمان در متغيير محيطي PS1 قرار دارد. در صورتي که پوسته فرمان شما به ورودي بيشتري نياز داشته باشد، از مقادير PS2، PS3 و PS4 نيز استفاده خواهد شد.
هنگامي که سيستم لينوکس شما نصب ميشود، اعلان فرمان طوري تنظيم ميشود که حاوي اطلاعات زير باشد: نام کاربري شما، نام کامپيوتر شما و نام دايرکتوري که اکنون در آن قرار داريد. اين اطلاعات در ميان دو براکت قرار گرفته و در انتهاي آن براي کاربران عادي ي
ک علامت دلار ($) و براي کاربر ريشه علامت پوند (#) قرار دارد. در زير مثالي از يک اعلان فرمان را ميبينيد:
[alan@Memphis alan]$
اين امکان وجود دارد تا اطلاعات مختلفي را به اعلان فرمانتان اضافه کنيد. اين اطلاعات ميتواند شامل شماره ترمينال، تاريخ، زمان و اطلاعات ديگر باشد. براي مثال :
• !\ : شماره فعلي تاريخچه فرمان را نشان ميدهد.
• #\ : شماره دستور آخرين دستور را نشان ميدهد.
• $\ : اعلان فرمان استاندارد را نشان ميدهد.
• W\: فقط دايرکتوري کاري جاري را نشان ميدهد.
• \\ : فقط يک بک اسلش نشان داده ميشود.
• d\: روز، ماه و شماره روز را نمايش ميدهد. مثلا : Sat Jan 23
• h\: نام کامپيوتر ميزبان را نشان ميدهد.
• n\: يک خط جديد باز ميکند.
• s\: نام پوسته فرمان را نشان ميدهد. مثلا bash
• t\: زمان را بصورت ساعت، دقيقه و ثانيه نمايش ميدهد. براي مثال : 10:14
:40
• u\: نام کاربر را نمايش ميدهد.
• w\: مسير کامل دايرکتوري جاري را نمايش ميدهد.
نکته : در صورتي که اعلان فرمان خود را به صورت موقت با تايپ مقادير مربوطه در پوسته فرمان تغيير ميدهيد، بايد مقادير PS1 را بين دو گيومه قرار دهيد . مثلا دستور:
export PS1=”[\t\w]\$]”
اعلان فرمان را به صورت زير نشان ميدهد:
[20:25:40 /var/spool/mail]$
براي ايجاد تغييرات دائمي در اعلان فرمان، بايد مقدار PS1 را به فايل bashrc موجود در دايرکتوري خانگي خود اضافه کنيد. معمولا اين مقدار قبلا وجود دارد و کافي است آنرا تغيير دهيد.
تنظيم اسامي مستعار
در لينوکس اين امکان وجود دارد تا براي آساني بيشتر، اسامي مستعاري را بجاي فرمان اصلي تعيين کنيد. براي اضافه کردن اسامي مستعار بايد از دستور alias استفاده کنيد. به مثالهاي زير توجه کنيد:
$ alias p='pwd; ls -CF'
$ alias rm='rm -i'
در مثال نخست حرف p دستور pwd را اجرا کرده و پس از آن دستور ls -CF اجرا خواهد شد که محتويات دايرکتوري جاري را چاپ خواهد کرد. در مثال دوم، دستور rm طوري تنظيم شده است تا فقط با گزينه i اجرا شود.
در صورتي که دستور alias را به تنهايي تايپ کنيد، ليستي از اسامي مستعاري که تنظيم کرده ايد نمايش داده ميشود. توجه داشته باشيد که اسامي مستعار در يک فايل پيکربندي ذخيره شده و با بستن پوسته فرمان از بين نمي روند.
کار کردن با سيستم فايل لينوکس
سيستم فايل لينوکس ساختاري است که اطلاعات شما را در کامپيوتر ذخيره ميکند. فايلها در يک ساختار درختي از دايرکتوري ها ذخيره ميشوند. هر دايرکتوري ميتواند حاوي فايلها و دايرکتوري هاي ديگري باشد. در صورتي که بخواهيد ساختار سيستم فايل لينوکس را دقيق تر توصيف کنيد، آن بيشتر شبيه يک درخت وارونه است. در بالاترين نقطه، دايرکتوري ريشه قرار دارد که بوسيله يک اسلش تنها نشان داده ميشود. در زير آن دايرکتوري هاي عمومي و سيستمي سيستم عامل لينوکس قرار ميگيرند. مانند bin، dev، home و tmp . هر کدام از اين دايرکتوري ها محتوي دايرکتوري هاي ديگري هستند
برخي از دايرکتوري هاي مهم سيستم فايل لينوکس در زير توضيح داده شده اند.
• bin: فرامين عمومي سيستم عامل لينوکس در اين دايرکتوري قرار دارند. مانند ls، sort و chmod.
• dev : حاوي نقاط دسترسي به ابزارهاي سخت افزاري کامپيوتر شما
است. مانند ترمينالها (tty)، ديسکهاي فلاپي (fd)، ديسکهاي سخت (hd) و ... کاربران بطور معمول براي دستيابي به اين دستگاهها از نامهاي آنها استفاده ميکنند.
• etc : حاوي برخي فايلهاي پيکربندي سيستم است.
• home : دايرکتوري هاي کاربران يک سيستم لينوکس در اين دايرکتوري قرار ميگيرد.
• mnt : محلي را براي متصل کردن ابزارها و ديسکها مانند فلاپي، CD-ROM و درايوهاي شبکه ايجاد ميکند.
• root : دايرکتوري خانگي کاربر ريشه است.
• sbin : دستورات مديريتي سيستم در اين دايرکتوري قرار ميگيرند.
• tmp : محل قرارگيري فايلهاي موقت.
• usr : محل قرارگيري مستندات سيستم، بازي ها، فايلهاي گرافيکي، کتابخانه ها و بسياري چيزهاي ديگر.
ساختار سيستم فايل در داس و ويندوز با ساختار آن در لينوکس متفاوت هستند. با وجودي که شباهت هايي نيز در اين ميان ديده ميشود ولي تفاوت هاي عمده به شرح زير هستند:
• در داس و ويندوز براي دسترسي به ابزارهاي ذخيره سازي مختلف و پارتيشن هاي مختلف ديسک سخت از حروفي که به نام درايو موسوم بودند استفاده ميکرديد. مانند A براي فلاپي، C براي ديسک سخت و ... در لينوکس تمام ابزارهاي ذخيره سازي در دل سيستم فايل باهم ادغام شده اند. مثلا محتويات يک فلاپي ديسک در مسير mnt/floppy قرار ميگيرد و... ممکن است در ابتداي کار اصلا به اين سيستم عادت نداشته باشيد ولي پس از مدتي به آن عادت خواهيد کرد. محلي که شما براي ذخيره فايلها و اطلاعات خود استفاده خواهيد کرد، همان دايرکتوري خانگي شماست.
• در سيستم فايل داس و ويندوز براي جداکردن پوشه ها و مسيرها از بک اسلش استفاده ميشود در حالي که در لينوکس از اسلش استفاده ميشود.
• نام فايلها در داس و ويندوز هميشه داراي يک پسوند بوده اند. مانند txt براي فايلهاي متني و... پسوند فايل ها براي لينوکس و يونيکس لازم نيستند. سيستم فايل لينوکس بدون توجه به پسوند، نوع فايل را تشخيص ميدهد.
• هر فايل و دايرکتوري در لينوکس داراي مجوزها و خصوصياتي است که از دسترسي کاربران غير مجاز به آن جلوگيري کرده و يا اين دسترسي را محدود ميکند. در بيشتر سيستمهاي داس و ويندوز از اين مجوزها خبري نيست زيرا اين سيستمها در ابتدا بصورت سيستمهاي تک کاربره طراحي و پياده سازي شده اند. در سيستمهاي ويندوز، سيستمهاي مبتني بر ويندوز NT که بصورت چند کاربره هستند اين مجوزها پياده سازي شده است
نصب بسته هاي rpm در لينوکس
امروزه بسياري از توزيع هاي لينوکس بعلت سادگي و قابليتهاي غير قابل انکار بسته هاي نرم افزاري با فرمت rpm از اين تکنولوژي براي نصب بسته هاي نرم افزاري با استفاده از دستور rpm، استفاده ميکنند . نصب بسته هاي rpm هم ازطريق رابط گرافيکي و هم از راه تايپ مستقيم دستورات در خط فرمان لينوکس امکانپذير است .
توجه داشته باشيد که براي نصب يا برداشتن يک بسته نرم افزاري در لينوکس بايد ابتدا بعنوان کاربر ريشه root وارد سيستم شويد . البته بسياري از توزيعهاي لينوکس با تهيه برنامه گرافيکي مناسب در محيطهاي دسکتاپ لينوکس اين مشکل را با پرسيدن رمز کاربر ريشه در ابتداي اجراي برنامه نصب يا برداشتن بسته ها برطرف نموره اند .
شکل کامل اين دستور در خط فرمان عبارتست از :
$ rpm -i [option] package
package نام بسته rpm است. اين بسته ممکن است در مسير جاري روي هاد ديسک شما قرار داشته باشد، يا در روي درايو CD-ROM و يا روي سايت FTP .
توجه : در صورتي که دستور نصب بستهاي را صادر کنيد که روي سايت FTP قرار دارد، اين بسته ابتدا از سايت دانلود شده و سپس نصب ميگردد.
همراه با گزينه i هنگام نصب ميتوانيد از گزينههاي زير استفاده نماييد:
-vv- اين گزينه اطلاعات Debugging را هنگام نصب چاپ ميکند. با اين گزينه تمام آنچه را هنگام نصب رخ ميدهد خواهيد ديد.
- h- فرايند نصب بسته را بصورت تعدادي کاراکتر # نشان ميدهد. اين کاراکترها در کنار هم تشکيل يک نوار پيشروي (Progress bar) را ميدهند که براي کسب اطلاعات از وضعيت نصب بسته مفيد است.
- percent- درصد پيشرفت نصب بسته را حين فرايند نصب چاپ ميکن
د.
قبل از اينکه نصب بسته شروع شود، ابزار rpm بررسيهايي مبني بر نصب بودن نسخه جديدتر بسته و يا بسته هاي ديگري که به آن نياز ميباشد (Dependencies) به عمل ميآورد. در صورتي که بستههاي جديدتر وجود داشته باشد، بسته نصب نخواهد شد. براي عبور از اين شرايط ميتوانيد از گزينه هاي زير استفاده کنيد:
- force-- با استفاده حتي اگر بسته در حال نصب قديمي تر از بسته نصب شده باشد، نصب خواهد شد. اين کار فايلهاي جديدتر را با فايلهاي قديمي تر جايگزين خواهد کرد. اين گزينه مشابه استفاده از گزينه هاي oldpackage، rplacefiles و replacepkgs است.
- nodeps-- بسته هاي مورد نياز برا ناديده گرفته و بسته را نصب ميکند. البته ممکن است بسته اي که اينگونه نصب شود، کار نکند.
- ignorearch-- با استفاده از اين گزينه اگر بسته با معماري پردازنده شما سازگاري نداشته باشد نيز نصب خواهد شد.
- ignoreos-- در صورتي که بسته با سيستم عامل کامپيوترتان سازگاري نداشته باشد، نصب خواهد شد.
مثال زير چگونگي نصب يک بسته را نشان ميدهد :
$ rpm -i audiofile-devel-0.6-1.i386.rpm
من شخصا ترجيح ميدهد هنگام نصب بسته مطلع باشم که چه چيزي رخ ميدهد. براي اين کار معمولا گزينه vv را هم اضافه ميکنم:
$ rpm -ivv audiofile-devel-0.6-1.i386.rpm
D: counting packages to install
D: found 1 packages
D: looking for packages to download
D: retrieved 0 packages
D: New Header signature
D: Signature size: 160
...
با استفاده از يک خروجي اينچنيني ميتوانيد به تمام جزئيات عملياتي که هنگام نصب بسته انجام ميشود ، پي ببريد. راه ديگري که ميتوانيد بررسي کنيد که آيا بسته به درستي نصب شده است يا خير استفاده از گزينه h است. به مثال زير توجه کنيد :
$ rpm -ivh audiofile-devel-0.6-1.i386.rpm
audiofile-devel [###################################]100%
بوسيله اين گزينه، همانطور که ميبينيد تعدادي کاراکتر # روي صفحه ترمينال چاپ ميشود که بيانگر صحت نصب بسته است. همانطور که ديديد در صورتي که اشکالي وجود نداشته باشد، نصب بسته هاي rpm بسيار آسان است. برخي اوقات ممکن است در نصب بسته ها اشکالاتي ايجاد شود که نمونه هايي از آنها در زير شرح داده شده اند.
-خطاي بسته هاي مورد نياز (Package dependencies errors) : در صورتي که بستههايي که نصب ميکنيد، براي کارکرد صحيح به بستههاي ديگري نياز داشته باشند، اين خطا را دريافت خواهيد کرد. براي حل اين مشکل کافي است که بستههاي مورد نياز را نيز تهيه کرده و قبل از نصب بسته اصلي آنها را نصب کنيد. البته همانطور که در بالا شرح
داده شد، ميتوانيد rpm را مجبور کنيد تا بسته هاي مورد نياز را بررسي نکند، ولي اين کار به هيچ وجه توصيه نمي شود زيرا بسته نصب شده کار نخواهد کرد.
- خطاهاي کاربر غير ريشه : در صورتي که در حالت کاربر ريشه نباشيد و دستور rpm را با گزينه i اجرا کنيد، اين خطاها را دريافت خواهيد کرد. براي رفع اين مشکل کافي است با استفاده از دستور su بصورت کاربر ريشه وارد شويد.
ارتقا بسته هاي rpm