در یک تعبیر ساده و قابل فهم(البته نادرست)، فایل ها همان برگه های کاغذی هستند که در کشوهایی به نام دایرکتوری وجود دارند. برای این ساختار استانداردی تحت عنوان Filesystem Hierarchy Standard یا به اختصار FHS وجود دارد که به آن استاندارد سلسله مراتب فایل سیستم نیز گفته میشود. نسخه اولیه این استاندارد در سال ۱۹۹۴ و آخرین نسخه آن تا به امروز در سوم ژوئن ۲۰۱۵ منتشر شده است.
علت نادرست بودن تعریف بالا این است که در لینوکس همه چیز ماهیت فایل را دارد و طبیعتا دایرکتوری ها خود نوعی فایل به حساب می آیند.
نمایش فایل ها و دایرکتوری ها در لینوکس
در سیستم عامل لینوکس مانند همه ی سیستم های unix like همه چیز از دایرکتوری ریشه یا / آغاز میشود. حتی با افزوده شدن دستگاه های خارجی مانند فلش و … آن ها در دایرکتوری مربوط به خود مونت خواهند شد. در ادامه با دستور tree نگاهی اجمالی به دایرکتوری های اصلی لینوکس می اندازیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
blog@arshatech:~$ tree / -L 1 -d / ├── bin ├── boot ├── cdrom ├── dev ├── etc ├── home ├── lib ├── lib64 ├── lost+found ├── media ├── mnt ├── opt ├── proc ├── root ├── run ├── sbin ├── srv ├── sys ├── tmp ├── usr └── var 21 directories |
معرفی دایرکتوری ها در لینوکس
اگر شما میخواهید روی ماشین شخصی خود و یا سروری که روی آن مشغول به ارائه سرویس های گوناگونی به مشتریان میباشید شناخت کافی را داشته باشید ابتدا لازم است دایرکتوری های مهم سیستم را به خوبی بشناسید:
دایرکتوری | کاربرد | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/ | این دایرکتوری ریشه است که همه فایلها و دایرکتوری ها (و دستگاه های متصل به سیستم که به شکل یک فایل یا دایرکتوری شناخته میشوند) در آن قرار دارند. | ||||||||||||||||
bin/ | در این دایرکتوری اکثر دستورات اجرایی مهم بخصوص دستوراتی که در حالت تک کاربره و مشکلیابی باید در دسترس باشند وجود دارند. همچنین دستورات عمومی که بسیار مورد نیاز کاربر می باشد در این مسیر وجود دارند: ls, mv, rm و … | ||||||||||||||||
boot/ | در این دایرکتوری مجموعه فایلهای مرتبط با بوت لودر قرار گرفتهاند که وظیفه بوت اولیه سیستم را بر عهده دارند. مانند کرنل، initrd و بوت کننده grub. | ||||||||||||||||
dev/ | این دایرکتوری محل قرار گفتن ابزارهاست. در لینوکس همه چیز یا پروسه است یا فایل و همین فلسفه باعث شده که تک تک ابزارهای سخت افزاری متصل به سیستم هم در این دایرکتوری به شکل یک فایل شناخته شوند. برای مثال dev/random/ میتواند ابزاری باشد که هربار آن را فراخوانی کنید، یک عدد اتفاقی به شما باز میگرداند. | ||||||||||||||||
etc/ |
این دایرکتوری یکی از اصلیترین بخش های سیستم شماست. کلیه تنظیمات سیستمی در اینجا قرار دارند. معمولا تمامی برنامه های نصب شده در لینوکس در این دایرکتوری برای خود یک دایرکتوری مجزا یا حداقل یک فایل می سازد و تنظیمات مورد نظر خود را در آن قرار میدهد. بعنوان مثال، ویرایش کننده vim تنظیمات خود را درون فایلی با نام vimrc ذخیره مینماید. این دایرکتوری مهم همچنین شامل تنظیماتی است که مربوط به برنامههایی میشود که در هر مرحله از بوت شدن سیستم باید اجرا شوند(init.d) و تنظیمات کرون ها و… است. |
||||||||||||||||
home/ | دایرکتوری مربوط به هر کاربر در این مسیر قرار دارد. بعنوان مثال اگر شما دو کاربر به نام های alex و bob در سیستم خود داشته باشید آدرس دایرکتوری های شخصی آنان به صورت home/alex/ و home/bob/ خواهد بود. | ||||||||||||||||
lib/ | محل قرار گرفتن کتابخانه های فایل های اجرایی مانند فایل هایی که در bin و sbin هستند می باشد. | ||||||||||||||||
media/ | این دایرکتوری محل نمایش رسانه های متصل شده به سیستم شما می باشد. | ||||||||||||||||
mnt/ | این دایرکتوری جهت مونت کردن انواع دستگاه ها و تجهیزات به سیستم مورد استفاده قرار میگیرد. | ||||||||||||||||
opt/ | این مسیر معمولا برای نصب برنامههای مستقل مورد استفاده قرار میگیرد. شما میتوانید از این بخش برای نصب نرم افزارهایی مانند lamp و … استفاده کنید. | ||||||||||||||||
proc/ | این دایرکتوری شبیه یک فایل سیستم مجازی کار میکند و در لینوکس هر آنچه که اتفاق می افتد و دارای یک پروسه است را به صورت فایل به نمایش در می آورد. | ||||||||||||||||
root/ | این دایرکتوری، بعنوان دایرکتوری شخصی کاربر root می باشد و کاربرد آن شبیه home/ با سطح دسترسی root می باشد. | ||||||||||||||||
run/ | اطلاعاتی مربوط به سیستم از زمان آخرین بوت. چیزهایی مانند کاربران وارد شده به سیستم و دامونهای در حال اجرا در اینجا قابل دسترسی هستند. این دایرکتوری نیز تمامی پروسه ها را به شکل فایل نمایش میدهد. | ||||||||||||||||
sbin/ | فایلهای اجرایی حیاتی در اینجا قرار میگیرند. چیزهایی مانند init و mount. | ||||||||||||||||
tmp/ | فایلهای موقتی که برنامهها یا کاربران آنها را ساختهاند در این مسیر به صورت موقت قرار میگیرد و با هر بار بوت، اطلاعات موجود در آن حذف میشوند. | ||||||||||||||||
usr/ |
این دایرکتوری و دایرکتوریهای درون آن حاوی کتابخانههای برنامه نویسی، اسناد، برنامهها و حتی سورس برنامههایی هستند که در سیستم نصب شده اند. زیر دایرکتوریهای این شاخه، معمولا به شکل زیر یافت میشوند:
|
||||||||||||||||
var/ |
این دایرکتوری محل قرار گرفتن فایلهایست که دائما نسبت به وضعیت و فعالیت سیستم در حال تغییر هستند. چیزهایی مانند لاگهای سیستم، فایلهای سرور، ایمیلهای در حال ارسال و اسناد منتظر پرینت شدن و دیتابیسها. این دایرکتوری معمولا حاوی زیرشاخههایی به شکل زیر است:
|