برای هر شخصی که دانشی در مورد سیستم عامل و فایل سیستم لینوکس ندارد، سرو کار داشتن با فایل ها و مسیر آنها، ممکن است مصیبت بار باشد و یک تازه کار ممکن است واقعا سردرگم شود. این مقاله برای فراهم کردن اطلاعاتی در مورد ساختار فایل ها و دایرکتوری ها در لینوکس، و برخی فایل های مهم می باشد.
دیاگرام ساختار دایرکتوری لینوکس
یک توزیع استاندارد لینوکس از ساختار دایرکتوری ای به صورت شکل زیر پیروی می کند .
همچنین توصیه میشود مطالعه کنید :
سیستم فایل /proc در لینوکس
هرکدام از دایرکتوری های بالا شامل اطلاعات مهمی هستند، اطلاعاتی برای بوت کردن درایور ها، پیکربندی فایل ها و ... . به طور خلاصه ما برای هر دایرکتوری توصیفی مختصر بیان می کنیم.
/bin : تمام برنامه های باینری مورد نیاز در طول بوت ، repair کردن، فایلهای مورد نیاز برای اجرا در single-user-mode، و دستورات اولیه همانند cat،du،df،tar،rpm و wc و history و .... در این دایرکتوری می باشند.
/boot : فایل های مهم در طول پروسه ی boot-up شامل کرنل لینوکس در آن نگهداری می شود.
/dev : فایلهای دیوایس برای تمام دیوایس های سخت افزاری روی ماشین همچون cdrom،cpu و ... را شامل می شود.
/etc : شامل فایل های پیکربندی برنامه ها، startup، shutdown، start،stop کردن اسکریپت های هر برنامه می باشد.
/home : دایرکتوری home کاربران است. هر بار که کاربرجدیدی ایجاد می شود، یک دایرکتوری با نام کاربر در دایرکتوری home ایجاد می شود که شامل دایرکتوری های Desktop،Download،Documents و ... می باشد.
/lib : دایرکتوری lib شامل ماژول های کرنل و shared library image های مورد نیاز برای بوت سیستم و اجرای دستورات در فایل سیستم root می باشد.
/lost+found : این دایرکتوری در طول نصب لینوکس ایجاد می شود، و برای recover کردن فایل هایی که ممکن است در طول shut down کردن غیرمنتظره خراب شده باشند ، استفاده می شود.
/media : دایرکتوری مانت موقت است که برای دیوایس های removable مانند /media/cdrom ایجاد می شود.
/mnt : دایرکتوری مانت موقت برای مانت کردن فایل سیستم ها است.
/opt : این مخفف Optional است و شامل برنامه های نرم افزار های third party همچون java است.
/proc : یک فایل سیستم مجازی و یا شبه فایل سیستم که شامل اطلاعاتی در باره پروسس های در حال اجرا با یک PID خاص می باشد.
/root : این دایرکتوری home کاربرroot می باشد و نباید هر گز با / اشتباه گرفته شود.
/run : این دایرکتوری تنها راه حل تمیز برای مشکلات early-runtime-dir است.
/sbin : شامل برنامه های باینری قابل اجرا می باشد که تنها توسط ادمین سیستم برای نگهداری مورد نیاز است همچون iptables،fdisk،ifconfig،swapon،reboot و ...
/sys : توزیع های مدرن لینوکس شامل یک دایرکتوری /sys به عنوان یک فایل سیستم مجازی است که اجازه ی تغییرات و ذخیره ی دیوایس های متصل شده به سیستم را دارد.
/tmp : دایرکتوری موقت سیستم، توسط کاربران و root در دسترس هستند. فایل های موقت برای کاربر و سیستم تا زمان بوت ذخیره می شوند.
/usr : شامل باینری های قابل اجرا و داکیومنت ها و کد های منبع و لایبرری ها برای برنامه های سطح دوم است.
/var : برای متغیرها می باشد. محتوای این فایل هایی هستند که انتظار می رود در حال رشد باشند. این دایرکتوری شامل log،lock،spool،mail و فایل های temp می باشد.
کاوش فایل های مهم، مکان آنها و قابلیت آنها
لینوکس یک سیستم پیچیده است که راه هایی موثرتر و پیچیده تر از ویندوز برای start، stop، maintain و rebootسیستم دارد. این به خوبی در فایل های پیکربندی، باینری ها و man page ها و فایل های info و ... برای هر چیزی تعریف شده است.
/boot/vmlinuz : فایل کرنل لینوکس.
/dev/hda : فایل دیوایس برای اولین IDE HDD.
/dev/hdc : فایل دیوایس برای IDE Cdrom .
/dev/null : یک شبه دیوایس، که وجود ندارد. گاهی اوقات خروجی دوریختنی به /dev/null هدایت می شود بنابراین آن برای همیشه از دست داده می شود.
/etc/bashrc : شامل پیش فرض های سیستم و آلیاس های استفاده شده توسط شل است.
/etc/crontab : یک اسکریپت shell برای اجرای دستورات بخصوص براساس اینتروال های زمانی خاصی در اینجا زمانبندی می شود.
/etc/exports : اطلاعات فایل سیستم در دسترس روی یک شبکه است.
/etc/fstab : اطلاعات دیسک و سایر مانت پوینت ها.
/etc/group : اطلاعات امنیتی گروه.
/etc/grub.conf : فایل پیکربندی bootloader grub.
/etc/init.d : اسکریپت startup سرویس ها.
/etc/lilo.conf : فایل پیکربندی bootloader lilo.
/etc/hosts : اطلاعاتی در باره آدرس آی پی و نام های هاست مورد نظر.
/etc/hosts.allow : لیستی از هاست های اجازه داده شده برای دسترسی سرویس ها برروی ماشین محلی.
/etc/host.deny : لیستی از هاست های رد شده برای دسترسی سرویس ها برروی ماشین محلی.
/etc/issue : اجازه ی ویرایش پیام قبل از لاگین را می دهد.
/etc/modules.conf : فایل های پیکربندی برای ماژول های سیستم.
etc/motd/ = motd : مخفف Message Of The Day است، پیام کاربرانی که لاگین می کنند.
/etc/mtab : اطلاعات بلاک هایی که در حال حاضر مانت شده اند.
/etc/passwd : شامل پسورد کاربران سیستم در یک فایل shadow، و یک سری اطلاعات امنیتی کاربران است.
/etc/printcap : اطلاعات پرینتر
/etc/profile : پیش فرض های Bash shell.
/etc/profile.d : اسکریپت برنامه که بعد از لاگین اجرا می شود.
/etc/rc.d : اطلاعات درباره اسکریپت خاص run levelها.
/etc/rc.d/init.d : اسکریپت مقداردهی اولیه run levelها.
etc/resolv.conf/ = DNS : استفاده شده توسط سیستم.
/etc/security : لیست ترمینال که لاگین root امکانن پذیر است.
/etc/skel : اسکریپتی که محتویات دایرکتوری home کاربران را پر می کند.
/etc/termcap : یک فایل ASCII که رفتار ترمینال و کنسول و پرینتر را تعریف می کند.
/etc/X11 : فایل پیکربندی محیط گرافیکی X سیستم.
/usr/bin : دستورات قابل اجرا برای کاربر عادی.
/usr/bin/X11 : باینری های محیط گرافیکی X.
/usr/include : شامل فایل هایی که توسط برنامه ی c استفاده می شود.
/usr/share : دایرکتوریهای فایل های man و info.
/usr/lib : فایل های لایبرری که در طول کامپایل برنامه مورد نیاز است.
/usr/sbin : دستوراتی برای super user و برای ادمین سیستم.
/proc/cpuinfo : اطلاعات CPU.
/proc/filesystems : اطلاعات فایل سیستمی که در حال استفاد ه است.
/proc/interrupts : اطلاعاتی درباره interrupt های در حال اجرا در سیستم.
/proc/ioports : شامل تمامی Input/Output های دیوایس ها است.
/proc/meminfo : اطلاعات حافظه مصرفی.
/proc/modules : ماژول های کرنل که در حال حاضر استفاده می شود.
/proc/mount : اطلاعات فایل سیستم مانت شده.
/proc/stat : امار جزئیات سیستم .
/proc/swaps : اطلاعات فایل swap.
/version : اطلاعات نسخه ی لینوکس.
/var/log/lastlog : لاگ آخرین پروسس بوت سیستم.
/var/log/messages : لاگ پیام های تولید شده توسط syslog در زمان بوت.
/var/log/wtmp : لیستی از کاربران لاگین در سیستم.
دیاگرام ساختار دایرکتوری لینوکس
یک توزیع استاندارد لینوکس از ساختار دایرکتوری ای به صورت شکل زیر پیروی می کند .
همچنین توصیه میشود مطالعه کنید :
سیستم فایل /proc در لینوکس
هرکدام از دایرکتوری های بالا شامل اطلاعات مهمی هستند، اطلاعاتی برای بوت کردن درایور ها، پیکربندی فایل ها و ... . به طور خلاصه ما برای هر دایرکتوری توصیفی مختصر بیان می کنیم.
/bin : تمام برنامه های باینری مورد نیاز در طول بوت ، repair کردن، فایلهای مورد نیاز برای اجرا در single-user-mode، و دستورات اولیه همانند cat،du،df،tar،rpm و wc و history و .... در این دایرکتوری می باشند.
/boot : فایل های مهم در طول پروسه ی boot-up شامل کرنل لینوکس در آن نگهداری می شود.
/dev : فایلهای دیوایس برای تمام دیوایس های سخت افزاری روی ماشین همچون cdrom،cpu و ... را شامل می شود.
/etc : شامل فایل های پیکربندی برنامه ها، startup، shutdown، start،stop کردن اسکریپت های هر برنامه می باشد.
/home : دایرکتوری home کاربران است. هر بار که کاربرجدیدی ایجاد می شود، یک دایرکتوری با نام کاربر در دایرکتوری home ایجاد می شود که شامل دایرکتوری های Desktop،Download،Documents و ... می باشد.
/lib : دایرکتوری lib شامل ماژول های کرنل و shared library image های مورد نیاز برای بوت سیستم و اجرای دستورات در فایل سیستم root می باشد.
/lost+found : این دایرکتوری در طول نصب لینوکس ایجاد می شود، و برای recover کردن فایل هایی که ممکن است در طول shut down کردن غیرمنتظره خراب شده باشند ، استفاده می شود.
/media : دایرکتوری مانت موقت است که برای دیوایس های removable مانند /media/cdrom ایجاد می شود.
/mnt : دایرکتوری مانت موقت برای مانت کردن فایل سیستم ها است.
/opt : این مخفف Optional است و شامل برنامه های نرم افزار های third party همچون java است.
/proc : یک فایل سیستم مجازی و یا شبه فایل سیستم که شامل اطلاعاتی در باره پروسس های در حال اجرا با یک PID خاص می باشد.
/root : این دایرکتوری home کاربرroot می باشد و نباید هر گز با / اشتباه گرفته شود.
/run : این دایرکتوری تنها راه حل تمیز برای مشکلات early-runtime-dir است.
/sbin : شامل برنامه های باینری قابل اجرا می باشد که تنها توسط ادمین سیستم برای نگهداری مورد نیاز است همچون iptables،fdisk،ifconfig،swapon،reboot و ...
/sys : توزیع های مدرن لینوکس شامل یک دایرکتوری /sys به عنوان یک فایل سیستم مجازی است که اجازه ی تغییرات و ذخیره ی دیوایس های متصل شده به سیستم را دارد.
/tmp : دایرکتوری موقت سیستم، توسط کاربران و root در دسترس هستند. فایل های موقت برای کاربر و سیستم تا زمان بوت ذخیره می شوند.
/usr : شامل باینری های قابل اجرا و داکیومنت ها و کد های منبع و لایبرری ها برای برنامه های سطح دوم است.
/var : برای متغیرها می باشد. محتوای این فایل هایی هستند که انتظار می رود در حال رشد باشند. این دایرکتوری شامل log،lock،spool،mail و فایل های temp می باشد.
کاوش فایل های مهم، مکان آنها و قابلیت آنها
لینوکس یک سیستم پیچیده است که راه هایی موثرتر و پیچیده تر از ویندوز برای start، stop، maintain و rebootسیستم دارد. این به خوبی در فایل های پیکربندی، باینری ها و man page ها و فایل های info و ... برای هر چیزی تعریف شده است.
/boot/vmlinuz : فایل کرنل لینوکس.
/dev/hda : فایل دیوایس برای اولین IDE HDD.
/dev/hdc : فایل دیوایس برای IDE Cdrom .
/dev/null : یک شبه دیوایس، که وجود ندارد. گاهی اوقات خروجی دوریختنی به /dev/null هدایت می شود بنابراین آن برای همیشه از دست داده می شود.
/etc/bashrc : شامل پیش فرض های سیستم و آلیاس های استفاده شده توسط شل است.
/etc/crontab : یک اسکریپت shell برای اجرای دستورات بخصوص براساس اینتروال های زمانی خاصی در اینجا زمانبندی می شود.
/etc/exports : اطلاعات فایل سیستم در دسترس روی یک شبکه است.
/etc/fstab : اطلاعات دیسک و سایر مانت پوینت ها.
/etc/group : اطلاعات امنیتی گروه.
/etc/grub.conf : فایل پیکربندی bootloader grub.
/etc/init.d : اسکریپت startup سرویس ها.
/etc/lilo.conf : فایل پیکربندی bootloader lilo.
/etc/hosts : اطلاعاتی در باره آدرس آی پی و نام های هاست مورد نظر.
/etc/hosts.allow : لیستی از هاست های اجازه داده شده برای دسترسی سرویس ها برروی ماشین محلی.
/etc/host.deny : لیستی از هاست های رد شده برای دسترسی سرویس ها برروی ماشین محلی.
/etc/issue : اجازه ی ویرایش پیام قبل از لاگین را می دهد.
/etc/modules.conf : فایل های پیکربندی برای ماژول های سیستم.
etc/motd/ = motd : مخفف Message Of The Day است، پیام کاربرانی که لاگین می کنند.
/etc/mtab : اطلاعات بلاک هایی که در حال حاضر مانت شده اند.
/etc/passwd : شامل پسورد کاربران سیستم در یک فایل shadow، و یک سری اطلاعات امنیتی کاربران است.
/etc/printcap : اطلاعات پرینتر
/etc/profile : پیش فرض های Bash shell.
/etc/profile.d : اسکریپت برنامه که بعد از لاگین اجرا می شود.
/etc/rc.d : اطلاعات درباره اسکریپت خاص run levelها.
/etc/rc.d/init.d : اسکریپت مقداردهی اولیه run levelها.
etc/resolv.conf/ = DNS : استفاده شده توسط سیستم.
/etc/security : لیست ترمینال که لاگین root امکانن پذیر است.
/etc/skel : اسکریپتی که محتویات دایرکتوری home کاربران را پر می کند.
/etc/termcap : یک فایل ASCII که رفتار ترمینال و کنسول و پرینتر را تعریف می کند.
/etc/X11 : فایل پیکربندی محیط گرافیکی X سیستم.
/usr/bin : دستورات قابل اجرا برای کاربر عادی.
/usr/bin/X11 : باینری های محیط گرافیکی X.
/usr/include : شامل فایل هایی که توسط برنامه ی c استفاده می شود.
/usr/share : دایرکتوریهای فایل های man و info.
/usr/lib : فایل های لایبرری که در طول کامپایل برنامه مورد نیاز است.
/usr/sbin : دستوراتی برای super user و برای ادمین سیستم.
/proc/cpuinfo : اطلاعات CPU.
/proc/filesystems : اطلاعات فایل سیستمی که در حال استفاد ه است.
/proc/interrupts : اطلاعاتی درباره interrupt های در حال اجرا در سیستم.
/proc/ioports : شامل تمامی Input/Output های دیوایس ها است.
/proc/meminfo : اطلاعات حافظه مصرفی.
/proc/modules : ماژول های کرنل که در حال حاضر استفاده می شود.
/proc/mount : اطلاعات فایل سیستم مانت شده.
/proc/stat : امار جزئیات سیستم .
/proc/swaps : اطلاعات فایل swap.
/version : اطلاعات نسخه ی لینوکس.
/var/log/lastlog : لاگ آخرین پروسس بوت سیستم.
/var/log/messages : لاگ پیام های تولید شده توسط syslog در زمان بوت.
/var/log/wtmp : لیستی از کاربران لاگین در سیستم.