Fayl tizimi tuzilishi — /, /home, /etc, /var, /usr

~12 daq · Linux · Fayl tizimi

Muammodan boshlaylik

Windows da hamma narsa disklarda: C:\, D:\. Dasturlar — C:\Program Files, sozlamalar — registry da, loglar — har xil joyda.

Serverda Nginx sozlamasini o'zgartirish kerak. Uning konfiguratsiyasi qayerda? Ilova loglari qayerda? Dastur qayerga o'rnatildi? Linux da bu savollarga javob har doim bir xil — chunki fayl tizimi standart tartibga ega. Uni bir marta o'rgansangiz, istalgan Linux serverda adashmaysiz.


Yagona daraxt

Linux da disk harflari yo'q. Hamma narsa bitta daraxtda, uning ildizi — / (root, "ildiz"):

/
├── bin  → usr/bin      dasturlar
├── boot                yadro va yuklovchi
├── dev                 qurilmalar
├── etc                 sozlamalar
├── home                foydalanuvchilar papkalari
│   ├── otabek
│   └── malika
├── opt                 qo'shimcha dasturlar
├── proc                jarayonlar (virtual)
├── root                root foydalanuvchining uyi
├── srv                 xizmat ma'lumotlari
├── tmp                 vaqtinchalik fayllar
├── usr                 dasturlar va kutubxonalar
│   ├── bin
│   ├── lib
│   └── local
└── var                 o'zgaruvchan ma'lumotlar
    ├── log
    ├── lib
    └── www

Ikkinchi disk yoki fleshka ham shu daraxtning biror papkasiga ulanadi (mount): masalan, /mnt/fleshka yoki /media/otabek/USB. WSL da Windows diski — /mnt/c.

[!INFO] Linux da yo'l ajratuvchi — / (oldinga qiya chiziq). Windows dagi \ emas. /home/otabek/loyiha/index.js.


Eng muhim papkalar

/home — sizning uyingiz

Har bir foydalanuvchining shaxsiy papkasi: /home/otabek. Hujjatlar, loyihalar, shaxsiy sozlamalar shu yerda. Qisqa yozuvi — ~.

Bu yerda istalgancha fayl yaratish, o'chirish mumkin — tizimga zarar yetmaydi.

/etc — sozlamalar

Butun tizim va dasturlarning konfiguratsiya fayllari — hammasi matnli:

Fayl Nima
/etc/hosts Domen → IP (lokal)
/etc/passwd Foydalanuvchilar ro'yxati
/etc/ssh/sshd_config SSH server sozlamalari
/etc/nginx/ Nginx sozlamalari
/etc/os-release Distributiv haqida
/etc/crontab Rejalashtirilgan vazifalar

"X dasturini qanday sozlayman?" — javob deyarli har doim /etc/x/ da.

/var — o'zgaruvchan ma'lumotlar

Ishlash davomida o'sib boradigan narsalar:

  • /var/log — loglar: /var/log/nginx/access.log, /var/log/syslog
  • /var/lib — dasturlar ma'lumotlari: /var/lib/mysql, /var/lib/docker
  • /var/www — veb-sayt fayllari (an'anaviy joy)

Disk to'lib qolsa — birinchi /var ni tekshiring (27-dars).

/usr — dasturlar

O'rnatilgan dasturlar va kutubxonalar:

  • /usr/bin — oddiy dasturlar (ls, git, python3)
  • /usr/sbin — administrator dasturlari
  • /usr/lib — kutubxonalar
  • /usr/local — qo'lda o'rnatilgan dasturlar (paket menejeridan tashqari)

Zamonaviy distributivlarda /bin va /sbin — /usr/bin va /usr/sbin ga havola (10-dars).

/tmp — vaqtinchalik

Har kim yoza oladi; qayta yuklanishda tozalanadi. Muhim narsani bu yerda saqlamang.

/opt — qo'shimcha dasturlar

Butunlay o'z papkasida o'rnatiladigan dasturlar: /opt/google/chrome. Ko'pincha o'z ilovalarimizni ham shu yerga qo'yamiz: /opt/dokon.

Virtual papkalar: /proc, /sys, /dev

Diskda mavjud emas — yadro ularni "uchib" yaratadi:

  • /proc — jarayonlar va tizim haqida: /proc/cpuinfo, /proc/meminfo
  • /dev — qurilmalar: /dev/sda (disk), /dev/null (hamma narsani yutadi)
  • /sys — uskuna va yadro sozlamalari
cat /proc/meminfo | head -3

/root va /boot

  • /root — root foydalanuvchining uyi (/home/root emas!)
  • /boot — yadro va yuklovchi. Tegmang.

Qayerga qarash kerak — tezkor jadval

Savol Javob
Nginx sozlamasi qayerda? /etc/nginx/
Nginx loglari? /var/log/nginx/
MySQL ma'lumotlari? /var/lib/mysql/
git qayerda o'rnatilgan? which git → /usr/bin/git
Mening fayllarim? /home/ism = ~
Tizim loglari? /var/log/syslog yoki journalctl (26-dars)
Ilovamni qayerga qo'yay? /opt/ilova yoki /srv/ilova yoki /var/www/sayt

Fayl kengaytmalari

Linux uchun fayl kengaytmasi majburiy emas va hech narsani hal qilmaydi:

  • nginx.conf, config, Dockerfile, Makefile — barchasi matnli fayllar
  • Dastur .exe bilan tugamaydi: /usr/bin/git — kengaytmasiz
  • Bajarilishi — ruxsatga bog'liq (20-dars), nomga emas

Fayl turini bilish:

file /usr/bin/git
file /etc/hosts
/usr/bin/git: ELF 64-bit LSB pie executable, x86-64, ...
/etc/hosts: ASCII text

Yashirin fayllar

Nomi nuqta bilan boshlanadigan fayllar — yashirin: .bashrc, .gitignore, .ssh/, .env. Oddiy ls ularni ko'rsatmaydi; ls -a — ko'rsatadi (6-dars). Odatda sozlama fayllari shunday nomlanadi.


Nima uchun shunday?

Nima uchun Linux fayllarni dastur bo'yicha emas (Windows dagi Program Files\Nginx\ kabi), turi bo'yicha ajratadi — sozlamalar /etc da, loglar /var/log da?

Chunki administrator uchun "turi bo'yicha" savollar muhimroq. "Barcha sozlamalarni zaxiralash" — bitta papka: /etc. "Disk nima bilan to'ldi?" — /var/log va /var/lib. "Barcha loglarni ko'rish" — /var/log. Shuningdek, /usr faqat o'qish uchun bo'lishi mumkin (dasturlar o'zgarmaydi), /var esa o'sib boradi — ularni turli disklarga joylash oson. Bu standart FHS (Filesystem Hierarchy Standard) deb ataladi va deyarli barcha distributivlarda bir xil — shuning uchun bitta serverdagi tajriba boshqasiga to'liq ko'chadi.


Xulosa

Eslab qoling:

  • Yagona daraxt, ildizi /; disk harflari yo'q, ajratuvchi — /
  • ~ = /home/ism — sizning papkangiz
  • /etc — sozlamalar; /var/log — loglar; /var/lib — ma'lumotlar
  • /usr/bin — dasturlar; /opt — qo'shimcha va o'z ilovalaringiz
  • /tmp — vaqtinchalik; /proc, /dev — virtual
  • Kengaytma majburiy emas; file — turini aniqlash
  • Nuqta bilan boshlangan nom — yashirin fayl

Keyingi dars

6-dars: Navigatsiya — pwd, cd, ls, absolyut va nisbiy yo'llar