شما برای مطالعه این مقاله فقط 8 دقیقه وقت نیاز دارید

top_liux_directories

اصلی ترین دایرکتوری های لینوکس

4.5/5 - (2 امتیاز)

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

دایرکتوری های لینوکس هر کدام مسئول نگهداری بخشی از فایل و داده های مربوط به سیستم و کاربران هستند که root، bin، home و usr از مهم ترین آنها هستند.

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

ساختار دایرکتوری های لینوکس

در لینوکس/یونیکس همه چیز بر اساس سیستم فایل است و این سیستم فایل از دایرکتوری های مختلفی تشکیل شده است. دایرکتوری هایی که در ویندوز به آنها فولدر گفته می شود. پایه سیستم فایل لینوکس، دایرکتوری ریشه است که با “/” نشان داده می شود.

بعضی از دایرکتوری های لینوکس می توانند در پارتیشن، درایو یا حتی روی سیستم های مختلف هم باشند ولی بخشی از یک سیستم فایل باشند.

کافی است به ساختار درختی دایرکتوری های لینوکس توجه کنید تا قبل از آشنایی با کاربرد هر کدام از آنها، جایگاه آنها را در فایل سیستم درک کنید:

ساختار دایرکتوری های لینوکس

15 دایرکتوری اصلی لینوکس

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

1) root

دایرکتوری ریشه که با / نشان داده می شود، مسئول ذخیره سازی همه دایرکتوری های لینوکس است. همه چیز در سیستم لینوکس زیردرختی از از این دایرکتوری است. در واقع، مسیر رسیدن به هر فایل و دایرکتوری از ریشه شروع می شود؛ مثلا اگر فایلی در /home/user/documents قرار دارد، ساختار دایرکتوری آن به صورت زیر است:

root->home->user->documents

حتی اگر با دستور cd در داخل دایرکتوری ریشه قرار بگیرید و دستور ls را وارد کنید، تمام دایرکتوری های موجود در سیستم به شما نمایش داده می شوند چون این دایرکتوری پدر همه دایرکتوری های لینوکس است.

یک موضوع جالب!

از آنجایی که root مبدا همه دایرکتوری های لینوکس است، اگر از سر کنجکاوی، دستور “/ rm -rf ” را وارد کنید، هر چیزی که در سیستم خود دارید حذف و ناپدید می شود پس بهتر است این تکنیک را نادیده بگیرید مگر اینکه مجبور به انجام آن باشید.

اگر اطلاعات چندانی از کاربرد دستورات لینوکس ندارید و دوست دارید که با کاربرد مهم ترین آنها آشنا شوید، توصیه می کنیم که مقاله “پرکاربردترین دستورات لینوکس” را از دست ندهید.

2) bin

این دایرکتوری حاوی فایل های اجرای بسیاری از دستورات اصلی لینوکس مثل cd و ls و همچنین اپلیکیشن های اصلی سیستم است. بیشتر این فایل ها به صورت باینری هستند و برای همه کاربران لینوکس در دسترس هستند.

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

مثلاً برنامه هایی مثل فایرفاکس که جزو برنامه های اصلی و ضروری نیستند در دایرکتوری /usr/bin ذخیره می شوند ولی ابزارهای مهمی مثل bash shell در /bin قرار دارند.

دایرکتوری sbin هم مشابه bin است با این تفاوت که تمام فایل های باینری موجود در این دایرکتوری فقط توسط کاربر root یا sudo قابل اجرا هستند. درواقع، می توانید این “s” اضافی را به عنوان super یا sudo در نظر بگیرید.

3) boot

boot هم یکی از اصلی ترین دایرکتوری های لینوکس است که تمام فایل های لازم برای بوت شدن سیستم عامل در آن ذخیره می شوند. در واقع، boot loader ها، فایل های مرتبط با هسته، conf، LILO و Grub در این بخش قرار دارند. به همین خاطر توصیه می شود که این دایرکتوری در یک پارتیشین موجود در اول دیسک قرار بگیرد.

در واقع، فایل سیستم initial ram file system یا initramfs در این دایرکتوری همراه هسته ذخیره شده است. پس کار کردن با این دایرکتوری نیاز به حساسیت خاصی دارد و به هیچ وجه نباید فایل های موجود در این بخش را دستکاری کنید و اگر هم کنجکاو هستید که بعضی چیزها را امتحان کنید بهتر است از یک ماشین مجازی استفاده کنید.

4) dev

dev جایی است که همه دستگاه های مربوط به سیستم شما مثل صفحه کلید، ماوس، پرینتر و … در آنجا زندگی می کنند. شما با این دایرکتوری به بخش های مختلف سخت افزار خود دسترسی پیدا می کنید. مثلاً پارتیشن دستگاه با /dev/sda1 قابل دسترسی است. در واقع، همه برنامه ها و درایور به این دایرکتوری دسترسی دارند.

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

این دایرکتوری حاوی شبه دستگاه هایی هم است که ارتباطی با سخت افزار ندارند. مثلاً:

/dev/null که برای از بین بردن هر فایل را رشته ای به کار می رود.

/dev/zero شامل یک دنبال بی نهایت از 0 است.

/dev/random شامل یک دنباله بی نهایت از مقادیر تصادفی است.

5) etc

این دایرکتوری شامل تمام فایل های پیکربندی لازم برای کنترل عملکرد برنامه های سیستم است. etc در درجه اول، توسط ادمین ها و سرویس ها برای پیکربندی فایل های رمز عبور و شبکه استفاده می شود.

اسکریپت های راه اندازی، فایل های شبکه، فایل های مربوط به حساب کاربری و … از جمله فایل های پیکربندی مهمی هستند که ویرایش آنها در دایرکتوری etc باعث می شود که تغییرات جدید در کل سیستم اعمال شود.

البته، توجه داشته باشید که فایل های پیکربندی موجود در این دایرکتوری مربوط به کل سیستم هستند و فایل های پیکربندی خاص هر کاربر در دایرکتوری home مربوط به خود کاربر قرار دارد.

6) home

در سیستم لینوکس، هر کاربر دایرکتوری خاص خود را دارد که فقط توسط خود کاربر و مدیر سیستم قابل دسترسی است. دایرکتوری home همان دایرکتوری کاربر است که فایل های شخصی خود را در آن ذخیره می کند و برنامه ها را نصب می کند. این دایرکتوری حاوی فایل های پیکربندی شخصی کاربر هم است که با یک نقطه (.) قبل از اسم فایل مشخص می شود.

کلیک کنید  آموزش نصب دیتابیس PostgreSQL در لینوکس اوبونتو

مثلاً اگر سیستم دارای دو کاربر به اسم های Ali و Reza باشد، هر کدام از آنها در home/Ali و home/bob لیست فایل و برنامه مخصوص به خود را دارند.

توجه داشته باشید که Ali به فایل های Reza دسترسی ندارد و برعکس. این کاملاً منطقی است که هر کاربر فقط به دایرکتوری home خودش دسترسی داشته باشد.

7) lib

lib به عنوان یکی از مهم ترین دایرکتوری های لینوکس محل قرار گرفتن ماژول های هسته و فایل های کتابخانه های مشترک است. کتابخانه های موجود در این بخش به راحتی با پسوند *.so قابل شناسایی هستند. ماژول ها هم در مسیر ” lib/modules/” قرار دارند.

کتابخانه های موجود در این دایرکتوری می توانند در پروسه اجرای دستورات موجود در دایرکتوری bin مورداستفاده قرار بگیرند. البته کتابخانه های موردنیاز برای اجرای فایل های باینری موجود در /usr/bin در مسیر /usr/lib قرار دارند.

8) media

دایرکتوری مدیا شامل محتویات رسانه های جداشدنی مثل cd rom و دیسک های USB هستند که می توانند به سیستم وصل شوند.

وقتی یک دیسک USB یا CD و DVD را به سیستم وصل می کنید، به صورت خودکار در دایرکتوری media یک لیست برای آن ایجاد می شود که از این طریق می توانید به محتوای آن رسانه دسترسی پیدا کنید. البته، وقتی که رسانه را از دستگاه جدا می کنید، فهرست مربوط به آن به صورت خودکار از سیستم حذف می شوند.

9) mnt

mnt پوشه ای است که مدیر سیستم، دستگاه ها یا سیستم فایل ها را به صورت دستی و موقت در آن mount یا سوار می کند. منظور از mount، عملیاتی است که طی آن یک فایل سیستم در دسترس سیستم عامل قرار می گیرد. البته، برخی از توزیع های لینوکس از mnt به عنوان راه حل ذخیره سازی و نصب دائمی استفاده می کنند.

10) opt

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

به عنوان مثال موقع نصب برنامه whatsapp، فایل های مربوط به آن در مسیر /opt/ whatsapp قرار می گیرد.

11) usr

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

برخلاف برنامه ها و فایل های اصلی سیستم، محتویات این دایرکتوری فقط توسط کاربران استفاده می شود و مثلاً برنامه ها و دستورات غیرضروری به جای /bin در /usr/bin قرار دارند و کتابخانه های مربوط به هر کدام از آنها در داخل دایرکتوری /usr/lib قرار دارند. این usr دایرکتوری های مخصوص به خودش را دارد:

/usr/bin: فایل های اجرایی و دستورات مربوط به کاربر

/usr/sbin: دستورات مخصوص مدیر برای مدیریت سیستم

usr/lib: کتابخانه ها و پکیج های لازم برای اجرای فایل های موجود در /usr/bin:

/usr/include: حاوی فایل های هدر مورداستفاده برای کامپایلرهای زبان c (stdio.h و stdlib.h )

12) srv

این دایرکتوری به عنوان یک سرور دایرکتوری، همان جایی است که داده های مربوط به سرویس ها در آنجا ذخیره می شوند. مثلاً اگر یک سرور FTP یا HTTP اجرا می کنید، فایل هایی که کاربران خارجی به آنها دسترسی خواهند داشت در همین دایرکتوری ذخیره می شود.

در واقع، کاربران به مراجعه به این دایرکتوری می توانند به لوکیشن فایل های مربوط به یک سرویس خاص دسترسی پیدا کنند. این فایل های داده فقط مربوط به کاربری است که دایرکتوری home به او اختصاص دارد.

13) var

var به عنوان یکی از اصلی ترین دایرکتوری های لینوکس، محل ذخیره سازی فایل های متغیر تولید شده توسط سیستم مثل ثبتنام در سیستم، ردیابی کاربر، حافظه پنهان و … است. مثلاً داده های مربوط به فایل های ورود به سیستم یا دایرکتوری spool چاپگر که انتظار می رود اندازه آنها به مرور زمان افزایش پیدا کند.

فایل هایی که در این دایرکتوری ذخیره می شوند، به طور خودکار پاک نمی شوند، به همین خاطر دایرکتوری var شرایطی را برای مدیران فراهم می کند تا به راحتی بتوانند در مورد رفتار سیستم خود جستجو کنند. مثلاً برای بررسی تاریخچه ورود به سیستم لینوکس کافی است محتوای فایل /var/log/wtmp را بررسی کنید.

چند مورد از فایل های مربوط به دایرکتوری:

var/log: حاوی گزارشات مربوط به سیستم و برنامه های مختلف

var/spool: حاوی داده هایی که در انتظار پردازش بعدی در آینده هستند یعنی نوعی حالت پویا دارند.

var/crash: اطلاعات مربوط به فرآیندهایی را نگهداری می کند که از کار افتاده اند.

14) tmp

tmp محل ذخیره سازی فایل های موقتی است که توسط برنامه ها ایجاد می شود. مثلاً اگر در حال نوشتن یک داکیومنت در LibreOffice هستید، به طور منظم یک کپی موقت از آن در این دایرکتوری ذخیره می شود و موقع راه اندازی مجدد سیستم خالی می شود.

البته، بعضی وقت ها ممکن است فایل هایی را ببینید که پاک نشده اند چون سیستم قادر به حذف این فایل ها نیست که در صورت تمایل می توانید آنها را به صورت دستی حذف کنید. در کل چون با هر بار راه اندازی سیستم، این دایرکتوری حذف می شود، سعی کنید هیچ چیز مهمی را در این دایرکتوری قرار ندهید.

15) proc

دایرکتوری proc حاوی اطلاعات مربوط به فرآیندهای در حال اجرا و پارامترهای هسته است که فرآیندها هم با آی دی خاص مشخص می شود. محتوای این دایرکتوری توسط بعضی از ابزارها برای دریافت اطلاعات سیستم runtime استفاده می شود.

مثلا برای بررسی اطلاعات مربوط به پردازنده سیستم لینوکس، به راحتی می توانید به فایل /proc/cpuinfo مراجعه کنید یا جهت اطلاع از میزان استفاده از حافظه می توانید به محتوای فایل /proc/meminfo مراجعه کنید.

این فایل ها موقع راه اندازی سیستم پر می شوند ولی موقع خاموش شدن سیستم کلا خالی می شوند.

 

کلام آخر

در این مقاله سعی کردیم ساختار سلسله مراتبی دایرکتوری های لینوکس را با جزئیات بیشتری نشان دهیم و چون اساس سیستم لینوکس، فایل ها هستند پس آشنایی با اصلی ترین دایرکتوری های لینوکس باعث می شود که مدیریت، تغییرات و دستکاری های لازم را با آگاهی بیشتری انجام دهید و سازگاری سیستم خود را حفظ کنید.

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

سوالات متداول:

این دایرکتوری حاوی فایل های پیکربندی بوت است و حذف هر چیزی از این دایرکتوری باعث خرابی سیستم عامل پس از بوت می شود. در کل، سیستم بدون فایل های موجود در این دایرکتوری نمی تواند بوت شود.

مطالب مشابهی که شاید علاقمند باشید

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

دیدگاه های شما

31 مرداد 1402
پوری

سلام مرسی از مقاله. اما چندتا مشکل ۱- بهتر بود بعضی کلمه های تخصصی رو که به فارسی نوشته بودین توی پرانتز انگلیسیش هم می‌نوشتین . ۲- توضیح بعضی دایرکتوری ها شفاف نبود و باید کاربرد اونارو بیشتر توضیح میکردید

نظر شما پس از تایید قابل مشاهده خواهد بود.

14 شهریور 1402
فرهاد

سلام.مطالب عالی بودن انصافا.ممنون.چرا روی دایرکتوری روت علامت ضربدر زده شده؟با تشکر

    14 شهریور 1402
    زهرا پیرجانی

    سلام ممنون بابت حسن توجهتون. علامت ضربدر(*) کنار روت یه کاراکتریه که موقع انتخاب همه محتوای موجود در دایرکتوری روت استفاده میشه. در کل */ به معنی 'همه چیز در دایرکتوری روت' هست و اگ میخواین به تمام محتوای موجود در روت دسترسی پیدا کنید باید از این ترکیب / و * استفاده کنید.

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

می توانید مقاله را دانلود کنید یا پرینت بگیرید