tutorials / linux / chapter-02.md · utf-8 ⬇ download chapter-02.md
فصل دوم: ساختار فایل سیستم لینوکس
Linux Filesystem Structure
یکی از مهمترین مفاهیمی که هر کاربر لینوکس باید به صورت عمیق یاد بگیرد، ساختار فایل سیستم است.
در سیستمعاملهای مختلف، نحوه سازماندهی فایلها و پوشهها متفاوت است. برای مثال، در ویندوز کاربران معمولاً با مفهوم درایوهایی مانند C و D کار میکنند.
اما لینوکس از چنین ساختاری استفاده نمیکند.
در لینوکس تمام فایلها، پوشهها، دستگاهها و منابع سیستم در یک ساختار درختی واحد قرار دارند که از یک نقطه اصلی به نام Root Directory آغاز میشود.
Root Directory چیست؟
در لینوکس بالاترین سطح فایل سیستم با علامت زیر نمایش داده میشود:
/
این مسیر را Root Directory مینامند.
Root Directory نقطه شروع تمام مسیرهای موجود در سیستم است.
تمام فایلها و پوشههای لینوکس، چه فایلهای مربوط به سیستم و چه فایلهای شخصی کاربران، در نهایت زیرمجموعه این مسیر قرار میگیرند.
ساختار ساده فایل سیستم:
/ | ├── home ├── etc ├── bin ├── usr ├── var └── tmp
تفاوت Root Directory و Root User
یکی از اشتباهات رایج کاربران تازهکار، یکی دانستن Root Directory و Root User است.
این دو مفهوم کاملاً متفاوت هستند.
Root Directory
Root Directory یک مسیر در فایل سیستم است:
/
این مسیر نشاندهنده بالاترین سطح ساختار فایلها در لینوکس است.
Root User
Root User یک حساب کاربری قدرتمند در لینوکس است.
این کاربر بالاترین سطح دسترسی را در سیستم دارد و میتواند عملیاتهای مدیریتی مانند نصب نرمافزار، تغییر تنظیمات سیستم، مدیریت کاربران و تغییر فایلهای حساس را انجام دهد.
root یعنی کاربر قدرتمند سیستم.
ساختار استاندارد پوشههای لینوکس
یک سیستم لینوکسی دارای پوشههای استانداردی در مسیر Root است.
مهمترین این پوشهها:
/bin
/boot
/dev
/etc
/home
/lib
/media
/mnt
/opt
/proc
/root
/run
/sbin
/sys
/tmp
/usr
/var
هرکدام از این مسیرها وظیفه مشخصی دارند.
پوشه Home
مسیر:
/home
محل ذخیره فایلهای کاربران عادی سیستم است.
هر کاربر معمولاً یک پوشه اختصاصی در این مسیر دارد.
برای مثال:
/home/asa
این مسیر شامل فایلهای شخصی کاربر است:
- Documents
- Downloads
- Pictures
- Videos
- پروژهها
- فایلهای شخصی
زمانی که کاربر وارد سیستم میشود، معمولاً در Home Directory خود قرار میگیرد.
برای مشاهده مسیر فعلی از دستور زیر استفاده میکنیم:
pwd
پوشه Root
مسیر:
/root
خانه اختصاصی کاربر Root است.
این مسیر با Root Directory یعنی / متفاوت است.
تفاوت:
/
Root Directory
/root
Home Directory کاربر root
پوشه Etc
مسیر:
/etc
محل نگهداری فایلهای تنظیمات سیستم است.
بسیاری از تنظیمات مهم لینوکس در این مسیر قرار دارند.
نمونه فایلها:
/etc/passwd
/etc/hosts
/etc/fstab
برای مثال:
/etc/passwd
اطلاعات کاربران سیستم را نگهداری میکند.
پوشه Bin
مسیر:
/bin
شامل دستورات ضروری سیستم است.
برخی از دستورات معروف:
ls
cp
mv
rm
cat
echo
این ابزارها باید حتی در شرایط خاص مانند تعمیر سیستم نیز قابل استفاده باشند.
پوشه Sbin
مسیر:
/sbin
شامل ابزارهای مدیریتی سیستم است.
این ابزارها معمولاً برای مدیریت بخشهای حساس سیستم استفاده میشوند.
نمونهها:
shutdown
reboot
fdisk
پوشه Usr
مسیر:
/usr
یکی از بزرگترین بخشهای فایل سیستم لینوکس است.
بسیاری از برنامهها، کتابخانهها و فایلهای نرمافزاری در این مسیر قرار دارند.
نمونه مسیرها:
/usr/bin
/usr/lib
/usr/share
پوشه Var
مسیر:
/var
برای اطلاعاتی استفاده میشود که دائماً تغییر میکنند.
نام Var از کلمه Variable گرفته شده است.
نمونه اطلاعات:
- فایلهای Log
- کش برنامهها
- اطلاعات سرویسها
یکی از مهمترین مسیرها:
/var/log
است که گزارشهای سیستم در آن ذخیره میشوند.
پوشه Tmp
مسیر:
/tmp
برای نگهداری فایلهای موقت استفاده میشود.
برنامهها هنگام اجرا ممکن است فایلهای موقتی ایجاد کنند.
این فایلها معمولاً دائمی نیستند و ممکن است پس از خاموش شدن سیستم حذف شوند.
پوشه Dev
مسیر:
/dev
شامل فایلهای مربوط به دستگاههای سختافزاری است.
در لینوکس بسیاری از سختافزارها مانند فایل نمایش داده میشوند.
برای مثال:
/dev/sda
ممکن است مربوط به یک حافظه ذخیرهسازی باشد.
یکی از فلسفههای معروف لینوکس:
Everything is a file
است.
یعنی بسیاری از منابع سیستم از طریق فایلها قابل مدیریت هستند.
پوشه Proc
مسیر:
/proc
یک فایل سیستم مجازی است.
این مسیر اطلاعات مربوط به پردازشهای در حال اجرا و وضعیت داخلی Kernel را نمایش میدهد.
نمونهها:
/proc/cpuinfo
اطلاعات پردازنده را نمایش میدهد.
/proc/meminfo
اطلاعات حافظه را نمایش میدهد.
پوشه Boot
مسیر:
/boot
شامل فایلهای مورد نیاز برای راهاندازی سیستم است.
مانند:
- Kernel
- Bootloader
بدون این بخش، سیستم ممکن است نتواند به درستی اجرا شود.
مسیرها در لینوکس
برای کار با فایلها باید مفهوم مسیر یا Path را به خوبی یاد بگیریم.
در لینوکس دو نوع مسیر وجود دارد:
- Absolute Path
- Relative Path
Absolute Path چیست؟
مسیر کامل یک فایل که از Root شروع میشود.
مثال:
/home/username/Documents/file.txt
این مسیر مکان دقیق فایل را مشخص میکند.
Relative Path چیست؟
مسیر نسبی نسبت به موقعیت فعلی کاربر مشخص میشود.
برای مثال اگر در مسیر زیر باشیم:
/home/username
مسیر:
Documents/file.txt
به معنی:
/home/username/Documents/file.txt
خواهد بود.
نقطه و دو نقطه
دو علامت مهم در مسیرهای لینوکس وجود دارد.
نقطه
.
به مسیر فعلی اشاره میکند.
مثال:
./script.sh
یعنی اجرای فایل script.sh در مسیر فعلی.
دو نقطه
..
به پوشه والد اشاره میکند.
مثال:
اگر در مسیر زیر باشیم:
/home/username/Documents
با استفاده از:
..
به مسیر زیر بازمیگردیم:
/home/username
مشاهده فایلها و پوشهها
برای مشاهده محتویات یک مسیر از دستور ls استفاده میکنیم.
نمایش اطلاعات بیشتر:
ls -l
نمایش فایلهای مخفی:
ls -a
نمایش کامل:
ls -la
فلسفه فایل سیستم لینوکس
ساختار فایل سیستم لینوکس بر اساس نظم و استاندارد طراحی شده است.
هر پوشه وظیفه مشخصی دارد و قرار دادن فایلها در مسیر مناسب باعث میشود سیستم قابل مدیریتتر باشد.
یک کاربر حرفهای لینوکس باید بداند:
- فایلهای تنظیمات کجا قرار دارند.
- برنامهها در چه مسیرهایی نصب میشوند.
- گزارشهای سیستم کجا ذخیره میشوند.
- فایلهای کاربران در چه محلی قرار دارند.
تمرینهای فصل دوم
[01]مسیر فعلی خود را مشاهده کنید.
دستور:
pwd
[02]محتویات مسیر فعلی را مشاهده کنید.
دستور:
ls
[03]محتویات Root Directory را بررسی کنید.
دستور:
ls /
[04]پوشه کاربران را مشاهده کنید.
دستور:
ls /home
جمعبندی
در این فصل با ساختار فایل سیستم لینوکس آشنا شدیم.
یاد گرفتیم:
- لینوکس از یک ساختار درختی واحد استفاده میکند.
- نقطه شروع فایل سیستم / است.
- هر پوشه وظیفه مشخصی دارد.
- مسیرهای Absolute و Relative تفاوت دارند.
- بسیاری از منابع سیستم در قالب فایل مدیریت میشوند.
شناخت فایل سیستم، یکی از پایهایترین مهارتها برای تبدیل شدن به یک کاربر حرفهای لینوکس است.
در فصلهای بعدی از این دانش برای مدیریت فایلها، مجوزها، کاربران و سیستم استفاده خواهیم کرد.