آموزش خط فرمان لینوکس - قسمت چهارم
قبل از هر چیز معذرت میخوام از همهی کسانی که این مطلب رو دنبال میکردند و انقدر توی انتشار قسمت چهارمش وقفه افتاد.
امروز با یه قسمت فوقالعاده مفید در مورد خط فرمان لینوکس در خدمتتون هستم.
یک سفر آموزنده
حالا زمان گشت و گذار در سیستم فایل است. جدول زیر تعدادی از مکانهای جالب برای کاربران را لیست کرده است. این لیست کامل نیست اما ماجراجویانه و جالب است! برای هر فهرست لیست شده در زیر، بهتر است این کارها را انجام دهید:
- با استفاده از دستور cd به آن شاخه بروید
- با استفاده از ls محتویات آن را لیست کنید
- وقتی یک فایل با نام جالبی را دیدید با دستور file از محتویات آن آگاه شوید.
- برای فایلهای متنی با دستور less آنها را مشاهده کنید.
فهرست |
توضیح |
/ |
فهرست ریشه که سیستم فایل از اینجا شروع میشود. در بیشتر موارد فهرست ریشه فقط شامل زیر فهرستها (و نه فایلها) است.
|
/boot |
جایی که در آن هسته(ها)ی لینوکس و فایلهایی که برای بوت کردن آنها لازم است در آن قرار دارد. یک هستهی لینوکس فایلی است که نامش با vmlinuz آغاز میشود.
|
/etc |
این فهرست شامل فایلهای پیکرهبندی (configuration) برای سیستم است. همهی این فایلها بایستی فایل متنی باشند. مکانهای مورد توجه: /etc/passwd شامل اصلاعات ضروری راجع به هر کاربر است. اینجاست که همهی کاربران در آن تعریف شدهاند. /etc/fstab فایل fstab شامل یک جدول از دستگاههایی است که در هنگام بوت شدن سیستم اصطلاحا سوار (mount) میشوند. این فایل درایوهای دیسکی شما را هم مشخص میکند. (راجع به سوار شدن در آینده خواهیم گفت) /etc/hosts این فایل میزبانهای شبکه و آدرسهای IP آنها را که سیستم آنها را ذاتا میشناسد، لیست کرده است. /etc/init.d این فهرست شامل اسکریپت هایی است که سرویسهای سیستمی گوناگونی را در هنگام بوت شدن سیستم اجرا میکند.
|
/bin, /usr/bin |
این دو فهرست شامل بیشتر برنامههای سیستم است. فهرست bin/ شامل برنامههای ضروری است که سیستم برای عمل کردن به آنها نیاز دارد. در حالیکه bin/usr/ شامل برنامههایی برای کاربران سیستم است. |
/sbin, /usr/sbin |
فهرستهای sbin شامل برنامههایی برای مدیریت سیستم است که اکثر آنها برای استفادهی کاربر مافوق (super user) یا همان مدیر سیستم است. |
/usr |
شاخهی usr/ شامل چیزهای گوناکونی است که برنامههای کاربران را پشتیبانی میکنند. تعدادی از نقاط مورد علاقه: /usr/share/X11 فایلهای پشتیبانی از سیستم پنجرهی X /usr/share/dict فهرستهایی برای چک کردن املای کلمات. شرط میبندم که شما تمیدانستید لینوکس یک چک کنندهی املایی دارد. look و ispell را ببینید. (البته من شرط نمیبندم :دی نویسندهی اصلی مطلب شرط بسته :دی) /usr/share/doc فایلهای مستندسازی مختلف در فرمتهای مختلف. /usr/share/man صفحات راهنمای استفاده یا man page ها در اینجا نگهداری میشوند. /usr/src کدهای منبع بعضی از برنامههای مفید. اگر شما بستههای منبع هسته را نصب کرده باشید، همهی کد منبع هسته را میتوانید در اینجا بیابید. |
/usr/local |
فهرست usr/local/ و زیرفهرستهایش برای نصب برنامهها و فایلهای دیگری که روی همان ماشین مورد استفاده قرار میگیرند، بکار گرفته میشوند. منظور اینست که تمام برنامههایی که جزء رسمی از توزیع (اوبونتو، فدورا، سوزی...) نیستند به جای نصب شدن در usr/bin/ در اینجا قرار میگیرند. وقتی شما یک برنامهی جالب پیدا میکنید و میخواهید آن را روی سیستم خود نصب کنید، آن را در یکی از زیرشاخههای این فهرست نصب میکنید. بیشتر مواقع، فهرست انتخاب شده، usr/local/bin است. |
/var |
فهرست var/ شامل فایلهایی است که وقتی سیستم در حال اجرا است، تغییر میکنند.که شامل موارد زیر است: /var/log شاخهای که شامل فایلهای log است. این فایلها وقتی سیستم اجرا میشود مرتبا به روز میشوند. شما برای مطمئن شدن از سلامت سیستم مرتبا باید آنها را بررسی کنید. /var/spool این فهرست برای نگهداری از فایلهایی که برای استفاده شدن توسط پردازههای مختلف به صف میشوند مورد استفاده قرار میگیرد. مانند پیامهای ایمیل و فایلهایی که باید پرینت شوند. بیشتر ایمیلهایی که برای شما ارسال میشوند ابتدا در فهرست var/spool/mail/ قرار میگیرند. |
/lib |
کتابخانههای مشترک (مفهومی مانند dll های ویندوز) اینجا نگه داشته میشوند. |
/home |
فهرست home/ جایی است که کاربران کارهای شخصی خود را در آن نگه میدارند. به طور کلی، اینجا تنها جایی است که کاربران به طور پیشفرض اجازه دارند که در فایلهای آن بنویسند. |
/root |
این فهرست همان فهرست home/ برای کاربر مافوق است. |
/tmp |
فهرست tmp/ فهرستی است که برنامهها میتوانند فایلهای موقتی خود را در آن ذخیره کنند. |
/dev |
فهرست dev/ یک فهرست خاص است که شامل فایلهایی است که معمولی نیستند.بلکه شامل دستگاههایی (device) است که برای سیستم قابل دسترس هستند. در لینوکس همانند یونیکس، با دستگاهها مانند فایلها برخورد میشود. شما میتوانید دستگاهها را بخوانید و بنویسید به گونهای که انگار فایل هستند. برای مثال dev/fd0/ اولین فلاپی دیسک شماست و dev/sda/ (در سیستمهای قدیمیتر dev/hda/) اولین درایو IDE شماست. همهی دستگاهها که کرنل آنها را میفهمد در اینجا نمایش داده میشوند. |
/proc |
فهرست proc/ نیز خاص است. این فهرست شامل فایل نیست! در واقع، این فهرست در حقیقت اصلا وجود ندارد و به طور کامل مجازی است. فهرست proc/ شامل روزنههای کوچکی به خود هسته است. در این فهرست گروهی از مدخلهای شمارهگذاری شده وجود دارد که مشابه همهی پردازشهای در حال اجرای سیستم هستند. همچنین شامل تعدادی از مدخلهای اسمی است که اجازهی دسترسی به پیکربندی جاری سیستم را میدهند. تعدادی از این مدخلها قابل مشاهده هستند. proc/cpuinfo/ را امتحان کنید. این مدخل به شما میگوید که هستهی لینوکس، پردازنده شما را چگونه میبیند. |
/media,/mnt |
در نهایت، می رسیم به media/، یک فهرست نرمال که برای کار خاصی مورداستفاده قرار میگیرد. این فهرست برای نقاط سوار شدن یا mount points مورد استفاده قرار میگیرد. آنجنان که در درس دوم توضیح دادیم، دستگاههای فیزیکی مختلف مانند درایوهای هارددیسک یه صورت نقاط مختلف به درخت سیستم فایل متصل شدهاند. عملیات اتصال دستگاه به سیستم فایل، سوار شدن یا mounting نامیده میشود. برای اینکه یک دستگاه قایل دسترس باشد، ابتدا باید سوار شود! وقتی سیستم بوت میشود، لیستی از دستورالعملهای سوار شدن را از فایل etc/fstab/ میخواند که در آن توضیح داده شده است که کدام دستگاه در کدام نقطه از درخت سیستم فایل سوار میشود. خوب این روش برای درایوهای دیسک سخت مناسب است، اما باید به درایوهای موقتی مانند CD-ROM ها نیز توجه شود، زیرا آنها قابل برداشتن و تغییر کردن هستند. آنها در تمام زمانها سوار نمیمانند. در توزیعهای مدرن لینوکس، این درایوها به طور خودکار سوار میشوند و اغلب از شاخهی media/ برای اینکار استفاده میکنند. در سیستمهایی که این کار به طور خودکار و با استفاده از فهرست media/ انجام نمیشود، فهرست mnt/ برای این کار مکان مناسب و استانداردی است. برای اینکه ببینید چه دستگاههایی در حال حاضر روی سیستم فایل شما سوار شدهاند، تایپ کنید mount . |
در طول سفر شما، ممکن است نوعی عجیب از فایلها را ببینید. مخصوصا در boot/ و lib/. وقتی شما ls -l را اجرا میکنید، ممکن است چیزی شبیه زیر را ببینید:
lrwxrwxrwx 25 Jul 3 16:42 System.map -> /boot/System.map-2.0.36-3
lrwxrwxrwx 26 Jul 3 16:42 module-info -> /boot/module-info-2.0.36-3
lrwxrwxrwx 16 Dec 11 1999 vmlinuz -> vmlinuz-2.0.36-3
-rw-r--r-- 454325 Oct 13 1998 vmlinuz-2.0.36-0.7
-rw-r--r-- 454434 Dec 29 1998 vmlinuz-2.0.36-3
به فایلهای System.map، moudule-info و vmlinuz توجه کنید. بعد از این نامها یک نماد خاص بکار رفته است.
این فایلها اتصالات یا لینکهای نمادین (symbolic link) نامیده میشوند. لینکهای نمادین یک نوع خاص از فایلها هستند که به فایل دیگری اشاره میکنند. با استفاده از لینکهای نمادین یک فایل امکان این را دارد که چند اسم داشته باشد. هر گاه یک فایل که از نوع لینک نمادین است به سیستم داده شود، سیستم آن را به صورت ناپیدا به فایل دیگری مینگارد.
خوبی این روش چیست؟ این روش بسیار مورد استفاده قرار میگیرد. فهرستی که در بالا لیست شد را فرض کنید. این سیستم چند نسخهی متفاوت از کرنل را داشته است. ما این را به راحتی از روی دو فایل vmlinuz-2.0.36-3 و vmlinuz-2.0.36-0.7 میفهمیم. به این خاطر که نام فایلها حاوی نسخهی مورد نظر نیز هست به راحتی میتوانیم آنها در لیست از هم تمییز دهیم. به هر حال این برای برنامهها پیچیده و سخت است که با نامهای ثابت کرنلها کار کنند در حالیکه نسخههای جدید کرنا مدام به سیستم اضافه و کم میشوند. این برنامهها ممکن است انتظار یک نام سادهتر مثل vmlinux را داشته باشد که به یکی از کرنلهای نصب شده اشاره کند. اینجاست که ساخت یک فایل با لینکهای نمادین به ما کمک میکند. برنامه از نام فایل vmlinuz استفاده میکند. در صورتی که بعدها یک کرنل جدید نصب شد، کافیست بدون تغییر برنامه، مکانی که لینک به آن اشاره میکند را تغییر دهیم.
برای ساخت لینکهای نمادین از دستور استفاده ln کنید.
امیدوارم مطلب این درس مورد استفادهی شما قرار گرفته باشه.
تو فکر یک پست در مورد یادگیری لغات انگلیسی هستم که شاید بتونم اون رو هم امروز منتشر کنم...
=-=-=-=-=Powered by Blogilo