Fayl tizimi tuzilishi — /, /home, /etc, /var, /usr
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/rootemas!)/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
.exebilan 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