PDA

مشاهده نسخه کامل : آشنايي با ساختار فايل‌ها در لينوكس؟!



Saeed-Milan
12-02-10, 19:01
آشنايي با ساختار فايل‌ها در لينوكس

درخت‌هاي لينوکسي
اولين مساله عجيبي که تقريبا همه کاربران ويندوزي بعد از مهاجرت به لينوکس با آن مواجه مي‌شوند، تفاوت از پايه و اساس ساختار دايرکتوري‌هاي آن با ساختار ويندوز است. در نگاه اول، اين ساختار دايرکتوري به‌نظر غيرمنطقي مي‌آيد و مشخص نيست تنظيمات، آيکون‌ها و برنامه‌ها کجا ذخيره شده‌اند. اما با کمک اين راهنما مي‌توانيد ساختار دايرکتوري‌ لينوکس را مثل کف دست بشناسيد. البته اين فهرست کامل نيست و برخي از بخش‌ها توضيح داده نشده‌ است، اما مي‌توانيد نقاط مهم را در ساختار لينوکس به‌خوبي بشناسيد.

Only the registered members can see the link (Only the registered members can see the link)
مسير (/)

مسير اصلي يا ريشه (root)، نقطه آغازين ساختار دايرکتوري در لينوکس است. اينجا همان جايي است که سيستم لينوکس از آن شروع مي‌شود. هر فايل و دايرکتوري ديگر، بخشي از اين مسير و يا زيردايرکتوري آن به‌حساب مي‌آيد. از آن‌جايي که به‌طور پيش‌فرض تنها زيردايرکتوري در مسير ريشه وجود دارد، بهترين کار اين است که هيچ فايلي را به‌صورت تنها در اين مسير قرار ندهيد.

ذکر اين نکته ضروري است که نبايد دايرکتوري ريشه را با کاربر root اشتباه گرفت.

مسير (/boot)

همان‌طور که از نام آن بر مي‌آيد، اينجا محلي است که لينوکس اطلاعات مرتبط با بوت شدن را در آن ذخيره مي‌کند. براي مثال، اطلاعات هسته لينوکس در اين مسير قرار مي‌گيرد. اگر محتويات مسير /boot را با دستور ls ببينيد، به يک فايل vmlinuz برمي‌خوريد. اين فايل همان فايل هسته لينوکس است.

مسير (/etc)

مسير تنظيمات براي سيستم لينوکس. بيشتر فايل‌هايي که در اين دايرکتوري قرار مي‌گيرند، فايل‌هاي متني هستند و قابليت ويرايش دستي دارند. برخي از فايل‌هاي جالب در اين مسير به‌صورت زير هستند:

* مسير (/etc/inittab): فايل متني است که نشان مي‌دهد چه پروسه‌‌هايي در زمان بالا آمدن سيستم شروع به‌کار کرده‌اند. براي مثال، مي‌توانيد تعيين کنيد که آيا سيستم X Window در هنگام بوت شدن به‌صورت خودکار فعال شود يا خير؟ حتي مي‌توانيد تعيين کنيد که وقتي يک کاربر کليدهاي ترکيبي Ctrl+Alt+Del را زد، چه اتفاقي بيافتد.

* مسير (/etc/fstab): اين فايل شامل اطلاعات مرتبط با سيستم‌هاي فايل مختلف موجود در سيستم است. در اين فايل همچنين اطلاعاتي همچون دستگاه‌هاي شناخته شده، فرمت آنها، سي‌دي‌رام، فلاپي و ... نيز وجود دارد.

* مسير (/etc/passwd): فايلي است که اطلاعات مرتبط با هر کاربر را در اختيار دارد. در اين فايل مشخص مي‌شود که چه کاربراني تعريف شده‌اند.

مسير (/bin) و (/usr/bin)

در اين دو دايرکتوري برنامه‌هاي زيادي قرار مي‌گيرند (نام اين دايرکتوري هم گويا است). دايرکتوري /bin شامل مهم‌ترين برنامه‌هايي است که سيستم براي اجرا به‌آن نياز دارد، اين برنامه‌ها شامل پوسته‌ها، ls، grep‌ و... است. دايرکوتري /usr/bin شامل برنامه‌هايي است که در فضاي کاربري سيستم نصب شده‌اند. هر چند که گاهي اوقات نمي‌توان تفاوتي ميان /bin و /usr/bin قائل شد و معمولا تفاوتي نمي‌کند که فايل‌هاي خود را در چه مسيري بگذاريد.

مسير (/usr)

اين شاخه شامل نرم‌افزارهاي کاربردي کاربر و آيتم‌هاي ديگري چون سورس برنامه‌ها، تصاوير، پرونده‌ها و يا فايل‌هاي تنظيمات برنامه‌هاي کاربر است. /usr بزرگترين دايرکتوري يک سيستم لينوکسي است و گاهي اوقات مديران سيستم اين مسير را روي يک پارتيشن ديگر قرار مي‌دهند. برخي از زيرشاخه‌هاي مهم اين دايرکتوري به‌صورت زير است:

* مسير (/usr/doc): سندهاي برنامه‌ها که در فرمت‌هاي مختلفي وجود دارد.

* مسير (/usr/share): فايل‌هاي پيکربندي و گرافيکي بيشتر نرم‌افزارهاي کاربردي.

* مسير (/usr/src): کدهاي منبع نرم‌افزار سيستمي که شامل هسته لينوکس مي‌شود.

* مسير (/usr/include): فايل‌هاي سرآيند‌ (Header) که براي کامپايلر C استفاده مي‌شود. اين فايل‌هاي سرآيند ساختارها و ثابت‌هايي که براي ساختن بيشتر برنامه‌هاي استاندارد لازم است را در خود دارند.

* مسير (/usr/X11R6): سيستم پنجره X و تمام ملزومات آن در اين شاخه قرار مي‌گيرد. تمامي زيرشاخه‌هاي اين دايرکتوري هم شامل نرم‌افزارهاي جانبي سيستم X مي‌شوند، همچنين سندهاي راهنما، فايل‌هاي سرآيند، فايل‌هاي تنظيمات،‌ آيکون‌ها، صداها و ديگر چيزهاي لازم براي برنامه‌هاي گرافيکي در اين دايرکتوري قرار مي‌گيرند.

* مسير (/usr/local): در اين مسير نرم‌افزارها و فايل‌هاي ديگر را روي سيستم محلي نصب مي‌کنند. اگر ماشين عضوي از شبکه باشد، در اين صورت دايرکتوري /usr مي‌تواند از نظر فيزيکي روي ماشين ديگري غير از ماشين لينوکس کاربر قرار داشته باشد، اما دايرکتوري /usr/local تنها شامل چيزهايي مي‌شود که قرار نيست روي ماشين‌هاي زيادي استفاده شوند و براي استفاده محلي در نظر گرفته شده‌اند.

در بيشتر مواقع، ماشين به‌طريقي که توضيح داده شد، عضوي از شبکه نيست، اما اين نشان نمي‌دهد که دايرکتوري /usr/local بي‌استفاده باشد. اگر برنامه‌اي پيدا کرديد که به‌صورت رسمي عضوي از توزيع شما نبود، در اين صورت آن را در شاخه /usr/local نصب کنيد. براي مثال اگر نرم‌افزار به‌صورت عادي به شاخه /usr/bin مي‌رود اما بخشي از توزيع شما نيست، بايد آن را در مسير /usr/local/bin نصب کنيد. وقتي برنامه‌هاي خودتان را از برنامه‌هاي سيستمي دور نگاه مي‌داريد، در اين صورت از عدم تطابق‌ها و گيج‌شدن‌ها جلوگيري خواهيد کرد، همچنين همه چيز مرتب و تميز باقي خواهد ماند.

مسير (/lib)

کتابخانه‌هاي اشتراکي که به‌صورت ديناميک لينک شده‌اند. گفتني است که کتاب‌خانه‌هاي اشتراکي در ويندوز با نامه dll معروف هستند.

مسير (/home)

اينجا همانجايي است که کاربران فايل‌هاي شخصي خود را نگاه مي‌دارند. هر کاربري يک دايرکوتري به‌نام خود در فولدر /home دارد و به‌صورت پيش‌فرض، کاربران عادي تنها در اين محل است که مي‌توانند فايل‌هاي خود را بنويسند و براي ايجاد فايل در ديگر مسيرها دسترسي ندارند.

مي‌توانيد سيستم لينوکس را طوري پيکربندي کنيد که کاربران عادي حتي از محتويات فايل‌هاي ديگر دايرکتوري‌ها حتي با خبر هم نشوند. در اين صورت مي‌توانيد براي افراد مختلف يک سيستم حريم خصوصي بيشتري ايجاد کنيد.

مسير (/root)

شاخه خانه (home) حساب کاربري ريشه (root) با ديگر مسيرها تفاوت دارد و در اين مسير ذخيره مي‌شود. اين مسير را با دايرکتوري ريشه اشتباه نگيريد.

مسير (/var)

اين مسير شامل داده‌هاي متغيرهايي است که به‌طور دائمي در حال تغيير نيسنتد. برخي از زيرشاخه‌هاي مهم اين مسير به‌صورت زير است:

* مسير (/var/log): دايرکتوري است که گزارش‌هاي سيستمي را در خود ذخيره مي‌کند. اين گزارش‌ها در هنگام اجراي سيستم به‌روز مي‌شوند و مي‌توانيد براي سلامت کارکرد برنامه‌هاي مختلف سيستمي از آنها استفاده کنيد. اگر برنامه‌اي در سيستم شما به‌صورت ناگهاني از کار افتاد، فايل‌هاي گزارش بهترين محل براي يافتن علت اين کار هستند.

* مسير (/var/mail): نامه‌هاي ورودي و خروجي در اين دايرکتوري قرار داده مي‌شوند.

* مسير (/var/spool): اين دايرکتوري فايل‌هايي که براي پردازش در صف قرار گرفته‌اند را در خود نگه مي‌داريد. معروف‌ترين مثال اسپول، کاربرد آن در پرينت کردن است.

مسير (/tmp)

برنامه‌ها مي‌توانند داده‌هاي موقتي خود را در اين دايرکتوري قرار دهند.

مسير (/dev)

دستگاه‌هاي موجود در سيستم لينوکسي در اين بخش قرار مي‌گيرند. به‌ياد داشته باشيد که در لينوکس با فايل‌ها هم مشابه فايل‌ها رفتار مي‌شود. براي مثال، /dev/fd0 اولين درايو فلاپي شماست، /dev/cdrom درايو سي‌دي شما و /dev/hda اولين ديسک سخت IDE شماست و به‌همين ترتيب. تمام دستگاه‌هايي که توسط هسته لينوکس قابل شناسايي است در مسير /dev ذخيره مي‌شود، به‌همين دليل، اين دايرکتوري معمولا بسيار شلوغ است.

مسير (/mnt)

اين دايرکتوري براي نقاط سوارشدن (Mount Point) استفاده مي‌شود. به‌عنوان مثال، ديسک سخت، سي‌دي‌رام، فلاپي‌ها و ... در صورتي که براي استفاده آماده شوند، بايد ابتدا سوار(mount) شوند، و مسيري که براي دسترسي درايوهاي سوارشده قرار مي‌گيرد، نقطه سوارشدن است. نقاط سوارشدن دستگاه‌هاي مختلف به‌صورت زيردايرکتوري در اين دايرکتوري قرار مي‌گيرند.

استفاده از دايرکتوري /mnt براي سوار کردن دستگاه‌ها الزامي نيست و در توزيع‌هاي مختلف، محل‌هاي مختلفي براي اين دستگاه‌ها در نظر گرفته شده است. به‌عنوان مثال در اوبونتو، کليه دستگاه‌هاي حافظه به بخش /media منتقل مي‌شوند.

مسير (/proc)

اين مسير، مسير مخصوصي است. ذکر اين نکته ضروري است که اين دايرکتوري يک دايرکتوري مجازي است، چون به‌هيچ عنوان وجود فيزيکي ندارد. در اين دايرکتوري اطلاعاتي چون خود هسته وجود دارد. همچنين تعداد زيادي مدخل شماره‌دار وجود دارد که نشان‌دهنده پروسس‌هاي در حال اجراي داخل سيستم است. مداخلي که نام دارند براي پيکربندي تنظيمات فعلي سيستم استفاده مي‌شوند. مي‌توانيد بسياري از اين مدخل‌ها را باز کرده و داخل آنها را مشاهده کنيد.

مسير /lost+found

وقتي سيستم لينوکس بر اثر يک حادثه ناگهاني از دسترس خارج مي‌شوند، بعد از بازگشت به حالت عادي، مي‌توان فايل‌هايي که در حال اجرا از بين رفته‌‌اند را در اين دايرکتوري‌ها پيدا کرد.

محمدرضا قرباني
منبع: