Navigatsiya — pwd, cd, ls, absolyut va nisbiy yo'llar

~12 daq · Linux · Fayl tizimi

Muammodan boshlaylik

Grafik interfeysda siz papkani ko'rib turasiz: ichida nima borligi, qayerda turganingiz. Terminalda — faqat prompt. "Men hozir qayerdaman? Bu yerda nima bor? U yerga qanday o'taman?" — uchta savol, uchta buyruq: pwd, ls, cd.


pwd — men qayerdaman?

pwd (print working directory) — joriy papka:

pwd
/home/otabek

Terminal ochilganda siz odatda uy papkangizda bo'lasiz.


ls — bu yerda nima bor?

ls
Documents  loyihalar  rasm.png  eslatma.txt

Boshqa papkani ko'rish (u yerga o'tmasdan):

ls /etc
ls loyihalar

Muhim bayroqlar

ls -l
total 12
drwxr-xr-x 2 otabek otabek 4096 Nov  6 10:15 Documents
drwxr-xr-x 5 otabek otabek 4096 Nov  6 11:30 loyihalar
-rw-r--r-- 1 otabek otabek 2048 Nov  5 18:02 eslatma.txt
-rw-r--r-- 1 otabek otabek 845K Nov  4 09:44 rasm.png

Ustunlar:

drwxr-xr-x  2  otabek  otabek  4096  Nov  6 10:15  Documents
│└───┬───┘     └──┬─┘  └──┬─┘  └┬─┘  └─────┬────┘  └───┬───┘
tur ruxsatlar   egasi  guruhi  hajm   o'zgargan vaqt  nomi
  • Birinchi belgi: d — papka, - — oddiy fayl, l — havola (10-dars)
  • Ruxsatlar — 20-darsda batafsil
Buyruq Nima
ls -a Yashirin fayllar bilan (.bashrc, .git)
ls -l Batafsil ro'yxat
ls -lh Hajmlar o'qiladigan: 845K, 1.2G
ls -lt Vaqt bo'yicha, eng yangisi tepada
ls -lS Hajm bo'yicha, eng kattasi tepada
ls -R Ichki papkalar bilan
ls -la Eng ko'p ishlatiladigan kombinatsiya

Ko'p tizimlarda ll = ls -alF (alias).

ls -la
drwxr-x--- 8 otabek otabek 4096 Nov  6 11:30 .
drwxr-xr-x 4 root   root   4096 Nov  1 09:00 ..
-rw-r--r-- 1 otabek otabek 3771 Nov  1 09:00 .bashrc
drwx------ 2 otabek otabek 4096 Nov  2 14:12 .ssh
...

. va .. — har bir papkada mavjud maxsus yozuvlar (quyida).

tree — daraxt ko'rinishi

sudo apt install tree
tree -L 2 loyihalar
loyihalar
├── blog
│   ├── index.html
│   └── style.css
└── dokon
    ├── package.json
    └── src

-L 2 — 2 daraja chuqurlikkacha. Katta papkalarda (node_modules) ehtiyot bo'ling: tree -I node_modules.


cd — papkaga o'tish

cd loyihalar
pwd
/home/otabek/loyihalar

Maxsus yo'llar

Yozuv Ma'nosi
. Joriy papka
.. Ota papka (bir daraja yuqori)
~ Uy papka
- Oldingi papka
/ Ildiz
cd ..             # bir daraja yuqoriga
cd ../..          # ikki daraja
cd ~              # uyga
cd                # xuddi shu — argumentsiz cd uyga olib boradi
cd -              # oldingi papkaga qaytish (ikki papka orasida "sakrash")
cd /              # ildizga

Absolyut va nisbiy yo'llar

Bu — fayl tizimidagi eng muhim tushuncha.

Absolyut yo'l — / dan boshlanadi; qayerda turganingizdan qat'i nazar, bir xil joyni ko'rsatadi:

cd /home/otabek/loyihalar/dokon
cat /etc/hosts

Nisbiy yo'l — / siz; joriy papkadan hisoblanadi:

# Hozir: /home/otabek
cd loyihalar/dokon         # → /home/otabek/loyihalar/dokon
cd ../blog                 # → /home/otabek/loyihalar/blog
cat ../../eslatma.txt      # → /home/otabek/eslatma.txt

Misol — daraxt:

/home/otabek
├── eslatma.txt
└── loyihalar
    ├── blog
    │   └── index.html
    └── dokon
        └── src
            └── app.js

Siz /home/otabek/loyihalar/dokon/src da turibsiz. index.html ga yo'l:

  • Absolyut: /home/otabek/loyihalar/blog/index.html
  • Nisbiy: ../../blog/index.html
  • Uy orqali: ~/loyihalar/blog/index.html

[!TIP] Skriptlar va sozlama fayllarida (systemd, cron, nginx) absolyut yo'l ishlating — ular qaysi papkadan ishga tushirilishini oldindan bilib bo'lmaydi. Terminalda qo'lda ishlashda — nisbiy yo'l tezroq.

Bo'shliqli nomlar

cd Mening fayllarim         # ❌ cd: too many arguments
cd "Mening fayllarim"       # ✅
cd Mening\ fayllarim        # ✅ (\ — keyingi belgini oddiy belgi qiladi)

Tab bosing — shell o'zi to'g'ri yozadi. Shu sababli Linux da fayl nomlarida bo'shliq o'rniga - yoki _ afzal: mening-fayllarim.


Amaliy oqim

cd ~/loyihalar        # loyihalar papkasiga
ls                    # nima bor?
cd dokon              # dokon ga kirdik
ls -la                # batafsil, yashirinlari bilan
cd src && ls          # src ga kirib, ro'yxat
cd -                  # dokon ga qaytish
pwd                   # tekshirish

Nima uchun shunday?

Nima uchun .. va . har bir papkada haqiqiy yozuv sifatida mavjud?

Chunki bu nisbiy yo'llarni universal qiladi: .. — har doim "ota papka", qanchalik chuqur bo'lmasin. Dastur yoki skript o'z joyini bilmasdan ham "yonimdagi papkadagi fayl" (../config/app.json) ga murojaat qila oladi. Loyihani boshqa joyga ko'chirsangiz — nisbiy yo'llar ishlashda davom etadi (absolyut yo'llar esa buziladi). Shuning uchun loyiha ichida nisbiy yo'llar, tizimga tashqaridan murojaat qilganda (cron, systemd) — absolyut yo'llar.


Xulosa

Eslab qoling:

  • pwd — qayerdaman; ls — nima bor; cd — o'tish
  • ls -la — batafsil + yashirin; -h — o'qiladigan hajm; -t — vaqt bo'yicha
  • ls -l dagi birinchi belgi: d papka, - fayl, l havola
  • . joriy, .. ota, ~ uy, - oldingi, / ildiz
  • Absolyut yo'l / dan; nisbiy — joriy papkadan
  • Bo'shliqli nomlar — qo'shtirnoq yoki Tab
  • Skriptlarda — absolyut yo'llar

Keyingi dars

7-dars: Fayl va papkalar — touch, mkdir, cp, mv, rm