IlmHamroh
JavaScript Full-stack/1-qism. Kompyuter, fayllar va terminal20/40-dars11 daqiqa
Mundarija (30)

Terminalda harakatlanish

Qisqacha: Terminalda yurish uch buyruqqa tayanadi: pwd — "qayerdaman?", ls — "bu yerda nima bor?", cd — "boshqa papkaga o't". cd .. bir qavat yuqoriga chiqaradi, cd yolg'iz o'zi uy papkasiga, cd - esa oldingi papkaga qaytaradi. Nomni to'liq yozmang — birinchi harflarni yozib, Tab bosing. Eski buyruqni ↑ yoki Ctrl + R bilan toping.

Bu darsda

  • pwd bilan turgan joyingizni bilib olasiz.
  • ls, ls -a, ls -l natijalarini o'qiy olasiz, jumladan ls -l ning har bir ustunini.
  • cd bilan absolyut va nisbiy yo'l orqali istalgan papkaga o'ta olasiz.
  • Tab bilan nomlarni to'ldirasiz va xato yozishdan qutulasiz.
  • Buyruqlar tarixidan (↑, Ctrl + R) foydalanasiz va ekranni tozalaysiz.

Oldin bilishingiz kerak: Yo'llar (path): absolyut va nisbiy, Terminal, shell va prompt, Buyruq anatomiyasi va yordam olish.

1. Nega bu kerak?

Explorer yoki Finder'da siz qaysi papkada turganingizni ko'rib turasiz: yuqorida manzil, o'rtada fayllar. Terminalda esa faqat prompt va miltillovchi kursor. Birinchi marta bu qorong'i xonaga kirgandek tuyuladi.

Bu darsda "chiroqni yoqamiz". Uchta buyruq bilan har doim qayerdaligingizni, atrofda nima borligini bilasiz va istalgan joyga o'tasiz. Keyingi barcha terminal ishlari — fayl yaratish, dastur ishga tushirish, serverda ishlash — shu uch buyruqdan boshlanadi.

Buyruqlarni o'qib qolmang — Git Bash, WSL'dagi Ubuntu yoki macOS terminalini ochib, birga yozib boring.

2. pwd — "Men qayerdaman?"

pwd — print working directory, "joriy papkani chiqar". Yo'llar darsida ko'rgan joriy papka (current working directory) — shell hozir "turgan" papka. Nisbiy yo'llar aynan shu papkadan hisoblanadi.

bash
pwd

Natija — joriy papkaning absolyut yo'li. Terminal yangi ochilganda odatda uy papkasida bo'lasiz:

Qayerda pwd natijasi
Ubuntu (WSL yoki server) /home/ali
macOS /Users/ali
Git Bash /c/Users/Ali

Git Bash'dagi yo'lga e'tibor bering: C:\Users\Ali u yerda /c/Users/Ali bo'lib ko'rinadi. Disk harfi kichik harfga aylanib, boshiga chiziq qo'yiladi. WSL'dagi /mnt/c/... ga o'xshaydi, faqat mnt yo'q.

Tekshirib ko'ring: Git Bash'da pwd /d/darslar/html ni ko'rsatdi. Explorer'da bu qaysi papka?

Javob

D:\darslar\html. Git Bash'da /d — D: diski, keyingi / lar Windows'dagi \ o'rnida turadi.

3. ls — "Bu yerda nima bor?"

3.1 Oddiy ro'yxat

ls — list, "ro'yxatla". Joriy papkadagi fayl va papkalarni chiqaradi:

bash
ls
text
Desktop  Documents  Downloads  loyihalar  rasm.png

Ko'p terminallarda papkalar ko'k rangda, oddiy fayllar oq rangda chiqadi. Boshqa papkaning ichini ko'rish uchun uni argument qilib bering — o'sha papkaga o'tish shart emas:

bash
ls loyihalar

3.2 ls -a: yashirinlari bilan

-a (all) flagi nuqta bilan boshlanadigan yashirin fayllarni ham ko'rsatadi:

bash
ls -a
text
.  ..  .bash_history  .gitconfig  Desktop  Documents  loyihalar

Ro'yxat boshidagi ikkita g'alati nomni taniysizmi? . — joriy papkaning o'zi, .. — ota papka. Bular Yo'llar darsidagi nuqtalar — ular har bir papkada haqiqatan yozilgan. .bash_history — bash yozgan buyruqlaringizni saqlaydigan fayl (tarix bo'limida qaytamiz).

3.3 ls -l: batafsil ro'yxat

-l (long) har bir element haqida to'liq ma'lumot beradi. Biz Git Bash'da ishga tushirdik:

text
-rw-r--r-- 2 Ali 197121  6 Sep 27 19:31 asl.txt
drwxr-xr-x 1 Ali 197121  0 Sep 27 19:30 loyiha

Birinchi qatorni bo'laklaymiz:

Qism Misolda Ma'nosi
Birinchi belgi - Tur: - — fayl, d — papka, l — symlink
Ruxsatlar rw-r--r-- Ega, guruh, boshqalar (Ruxsatlar darsi)
Son 2 Nechta nom bog'langan (hard link)
Ega va guruh Ali 197121 Kimga tegishli
Hajm 6 Baytlarda
Sana Sep 27 19:31 Oxirgi o'zgartirilgan vaqti
Nom asl.txt Fayl yoki papka nomi

Oldingi darslarda o'rgangan narsalaringiz bitta qatorda jamlandi. Git Bash'da guruh o'rnida 197121 kabi raqam chiqishi normal — Windows guruhlarni boshqacha saqlaydi.

3.4 Birlashtirilgan: ls -lah

Oldingi darsda qisqa flaglarni birlashtirishni o'rgandik. Dasturchilar ko'pincha shunday yozadi:

bash
ls -lah

-l batafsil, -a hammasi, -h hajmni 4.0K, 2.4M ko'rinishida ko'rsatadi. -h faqat -l bilan birga ma'noga ega — hajm ustuni -l da chiqadi.

Tekshirib ko'ring: ls -l natijasida qator drwxr-xr-x bilan boshlanyapti. Bu fayl yoki papka? Egasi unga yoza oladimi?

Javob

Papka — birinchi belgi d (directory). Keyingi uch belgi rwx — egasining huquqlari: o'qish, yozish va kirish. Ha, egasi yoza oladi.

4. cd — papkaga o'tish

4.1 Asosiy harakatlar

cd — change directory, "papkani almashtir". Unga boradigan joyning yo'lini berasiz. Misollar uchun shu papkalar daraxtini olaylik:

flowchart TD
  H["/home/ali (uy papkasi, ~)"] --> L["loyihalar"]
  H --> R["rasmlar"]
  L --> S["sayt"]
  S --> C["css"]
Buyruq Qayerga olib boradi
cd loyihalar Joriy papka ichidagi loyihalar ga
cd loyihalar/sayt Ikki qavat pastga birdaniga
cd .. Bir qavat yuqoriga — ota papkaga
cd ../.. Ikki qavat yuqoriga
cd yoki cd ~ Uy papkasiga
cd /home/ali/rasmlar Absolyut yo'l — qayerda turganingizdan qat'i nazar
cd - Oldingi turgan papkaga

cd muvaffaqiyatli bo'lsa, hech narsa yozmaydi — faqat prompt'dagi papka nomi o'zgaradi. Ishonch uchun pwd bilan tekshiring.

4.2 Qadamma-qadam

Keling, daraxt bo'ylab yuramiz. Har qatordan keyin shell qayerda ekanini izohda yozdik:

bash
cd ~                 # /home/ali
cd loyihalar/sayt    # /home/ali/loyihalar/sayt
cd css               # /home/ali/loyihalar/sayt/css
cd ../..             # /home/ali/loyihalar
cd ../rasmlar        # /home/ali/rasmlar

# dan keyingi matn — izoh: shell uni o'qimaydi, u faqat siz uchun. Oxirgi qatorga e'tibor bering: ../rasmlar — "bir qavat yuqoriga chiq, keyin rasmlar ga kir".

4.3 cd - — "oldingi kanal"

Televizor pultidagi "oldingi kanal" tugmasini eslang. cd - ham shunday: ikki papka orasida sakrash uchun.

bash
cd /home/ali/loyihalar/sayt/css
cd /home/ali/rasmlar
cd -
text
/home/ali/loyihalar/sayt/css

cd - qaytgan papkasini ekranga ham yozib qo'yadi. Yana cd - desangiz — rasmlar ga qaytadi.

Diqqat: cd - bash, zsh va Git Bash'da ishlaydi. Windows'dagi eski PowerShell 5.1'da ishlamaydi — biz tekshirdik, u - degan papkani qidiradi.

4.4 Nomida bo'sh joy bor papka

bash
cd "Mening hujjatlarim"

Qo'shtirnoqsiz shell ikki argument ko'radi (Buyruq anatomiyasi darsidagi qoida). Tab bilan to'ldirsangiz, shell o'zi Mening\ hujjatlarim deb yozadi: \ — "keyingi bo'sh joy nomning bir qismi" degani.

Tekshirib ko'ring: Siz /home/ali/loyihalar/sayt/css dasiz. Bitta nisbiy yo'l bilan /home/ali/rasmlar ga o'tadigan buyruqni yozing.

Javob

cd ../../../rasmlar. Uch marta yuqoriga: css → sayt → loyihalar → ali. Keyin rasmlar ga kiramiz. Absolyut yo'l bilan ham bo'ladi: cd ~/rasmlar — ko'pincha bu qisqaroq.

5. Tab — nomni to'ldirish

Uzun nomlarni qo'lda yozish sekin va xatoga olib keladi. Shuning uchun dasturchilar Tab tugmasini ishlatadi:

  1. cd lo deb yozing va Tab bosing.
  2. Shell nomni o'zi to'ldiradi: cd loyihalar/.
  3. Bir xil boshlanadigan bir nechta nom bo'lsa (loyihalar, loyiha-eski), birinchi Tab hech narsa qilmaydi. Tab'ni ikki marta bosing — shell barcha variantlarni ko'rsatadi. Yana bir-ikki harf qo'shib, Tab bosing.

Tab faqat mavjud narsani to'ldiradi. Tab bosdingiz, lekin hech narsa bo'lmadi va variant ham chiqmadi — demak bunday nomli fayl yoki papka yo'q. Xato yozganingizni Enter bosmasdan bilib olasiz.

Tab buyruq nomlarini ham to'ldiradi: whoa + Tab → whoami.

Maslahat: PowerShell'da Tab variantlar orasida aylanadi: har bosishda keyingi mos nomni qo'yadi.

6. Buyruqlar tarixi

6.1 ↑ va ↓

Klaviaturadagi yuqoriga strelka oxirgi buyruqni qaytaradi. Yana bossangiz — undan oldingisini. Kerakli buyruq chiqqach, Enter bosasiz yoki avval tahrirlaysiz.

Tarixni ro'yxat qilib ko'rish ham mumkin:

bash
history
text
  101  cd loyihalar/sayt
  102  ls -la
  103  pwd

Bash tarixni uy papkangizdagi .bash_history fayliga saqlaydi — shuning uchun terminal yopilsa ham yo'qolmaydi.

6.2 Ctrl + R — tarixdan qidirish

Kecha yozgan uzun buyruqni ↑ bilan 50 marta bosib izlash noqulay. Ctrl + R bosing — pastda qidiruv qatori chiqadi:

text
(reverse-i-search)`':

Buyruqdan bir bo'lak yozing, masalan sayt. Shell tarixdagi eng yaqin mos buyruqni ko'rsatadi:

text
(reverse-i-search)`sayt': cd loyihalar/sayt
  • Enter — shu buyruqni bajaradi.
  • Yana Ctrl + R — undan oldingi mos buyruq.
  • → — buyruqni tahrirlash uchun qatorga oladi.
  • Ctrl + G yoki Esc — qidiruvdan chiqish.

PowerShell'da ham Ctrl + R ishlaydi, faqat qidiruv qatori boshqacha yoziladi.

6.3 Qator ichida tez yurish

Tugmalar Nima qiladi
Ctrl + A Qator boshiga
Ctrl + E Qator oxiriga
Ctrl + U Kursordan chapdagi hamma narsani o'chiradi
Ctrl + L Ekranni tozalaydi

Bular bash va zsh'da ishlaydi.

7. Ekranni tozalash

Ekran natijalar bilan to'lib ketsa:

bash
clear

yoki Ctrl + L. Ekran tozalanadi, lekin tarix joyida qoladi — ↑ bilan eski buyruqlarni baribir topasiz. PowerShell'da ham clear ishlaydi.

Tekshirib ko'ring: clear bosgandan keyin ↑ tugmasi oldingi buyruqni ko'rsatadimi?

Javob

Ha. clear faqat ekrandagi matnni tozalaydi. Buyruqlar tarixi alohida saqlanadi va o'chmaydi.

8. Ko'p uchraydigan xatolar

8.1 cd.. — bo'sh joysiz

text
bash: cd..: command not found

"cd.. degan buyruq topilmadi". Shell bo'sh joy bo'yicha bo'laklaydi va cd.. ni bitta so'z — buyruq nomi deb o'qiydi. Bunday buyruq yo'q. To'g'risi: cd ... (Windows'ning cmd va PowerShell'i cd.. ni kechiradi, bash kechirmaydi.)

8.2 No such file or directory

text
bash: cd: loyihalr: No such file or directory

"Bunday fayl yoki papka yo'q". Sabablari: nomda xato (loyihalr), katta-kichik harf (Loyihalar va loyihalar Linux'da ikki xil), yoki papka boshqa joyda. Tuzatish: ls bilan qarang, nomni Tab bilan yozing, pwd bilan qayerdaligingizni tekshiring.

8.3 Not a directory

text
bash: cd: asl.txt: Not a directory

"Bu papka emas". cd faqat papkaga kiradi, faylga emas. Faylni ochish uchun boshqa buyruqlar bor — ularni keyingi darsda ko'ramiz.

8.4 Git Bash'da Windows yo'lini qo'shtirnoqsiz yozish

Explorer'dan nusxalangan yo'lni yozdingiz:

text
bash: cd: C:UsersAli: No such file or directory

Xatodagi yo'lda teskari chiziqlar yo'qolgan! Sababi: bash'da \ maxsus belgi ("keyingi belgini oddiy belgi deb ol"), shuning uchun shell ularni "yeb qo'ydi". Tuzatish: yo'lni qo'shtirnoqqa oling — cd "C:\Users\Ali" — yoki Git Bash usulida yozing: cd /c/Users/Ali. Ikkalasini ham sinab ko'rdik, ishlaydi.

9. Mashqlar

1-mashq (oson): Qayerda qoldik?

Shell /home/malika da turibdi. Ketma-ket bajarildi: cd darslar, cd html, cd ... Endi pwd nima chiqaradi?

Javob:

Yechim

cd darslar → /home/malika/darslar. cd html → /home/malika/darslar/html. cd .. bir qavat yuqoriga → /home/malika/darslar.

2-mashq (o'rta): Yo'lni yozing

Darsdagi daraxtdan foydalaning. Siz /home/ali/rasmlar dasiz. css papkasiga o'tish uchun:

  1. nisbiy yo'l bilan buyruq yozing;
  2. ~ bilan boshlanadigan yo'l bilan yozing;
  3. o'tgandan keyin bitta qisqa buyruq bilan yana rasmlar ga qayting.
Yechim
  1. cd ../loyihalar/sayt/css — avval ali ga chiqamiz, keyin pastga uch qavat.
  2. cd ~/loyihalar/sayt/css — ~ uy papkasini bildiradi, qayerda turganingiz muhim emas.
  3. cd - — oldingi papkaga qaytaradi.

3-mashq (qiyin): Terminalda sayohat

O'z terminalingizda bajaring va har qadamda natijaga qarang:

  1. Uy papkangizga o'ting va pwd bilan tekshiring.
  2. Yashirin fayllar bilan batafsil ro'yxat chiqaring. Eng kamida bitta yashirin faylni toping.
  3. ls -l natijasidan bitta papka qatorini toping. Uni qanday tanidingiz?
  4. Biror papkaga Tab yordamida kiring, keyin bitta buyruq bilan uy papkasiga qayting.
  5. Ctrl + R bosib, ls so'zi bor buyruqni tarixdan toping va Enter bilan qayta bajaring.
Yechim
bash
cd
pwd
ls -la
cd Doc        # Tab bosing — Documents/ gacha to'ldiriladi
cd
  1. cd yolg'iz o'zi uy papkasiga olib boradi. pwd — masalan /c/Users/Ali (Git Bash) yoki /home/ali.
  2. ls -la — nuqta bilan boshlanadigan nomlar yashirin: .bash_history, .gitconfig kabi.
  3. Papka qatori d harfi bilan boshlanadi, masalan drwxr-xr-x ... Documents.
  4. cd Doc + Tab → cd Documents/. Qaytish — cd yoki cd -.
  5. Ctrl + R, keyin ls — shell eng oxirgi ls li buyruqni ko'rsatadi, Enter uni bajaradi.

Sizda papka nomlari boshqacha bo'lishi mumkin — asosiysi, har qadamda natija nimani bildirishini tushunish.

10. Real ishda

  • Loyihaga kirish. Dasturchining kuni ko'pincha cd ~/loyihalar/dokon kabi buyruq bilan boshlanadi. Shundan keyin npm run dev kabi buyruqlar aynan shu papkada ishlaydi.
  • Serverda. Serverga ulangach birinchi savol — "qayerdaman?": pwd, keyin ls -la. Loglar odatda /var/log da — cd /var/log.
  • "Fayl topilmadi" xatolari. Ko'p xato dastur noto'g'ri joriy papkadan ishga tushirilgani uchun chiqadi. Tajribali dasturchi avval pwd ni tekshiradi.
  • Tezlik. Tab va Ctrl + R ni ishlatadigan dasturchi terminalda sichqonchadagidan ancha tez ishlaydi. Bu odatni birinchi kundan shakllantiring.

Xulosa

  • pwd — joriy papkaning absolyut yo'li. Git Bash'da C:\Users\Ali → /c/Users/Ali.
  • ls — ro'yxat; -a yashirinlari bilan (. va .. ham), -l batafsil, -h hajmni qulay ko'rsatadi.
  • ls -l qatori: tur va ruxsatlar, nomlar soni, ega, hajm, sana, nom.
  • cd papka, cd .. (bo'sh joy bilan!), cd — uyga, cd - — oldingi papkaga.
  • Tab nomni to'ldiradi va xatodan saqlaydi; ↑ va Ctrl + R tarixdan topadi; clear yoki Ctrl + L ekranni tozalaydi.

Keyingi dars: Fayl va papkalar bilan ishlash — terminalda papka va fayl yaratish, nusxalash, ko'chirish va xavfsiz o'chirishni o'rganamiz.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
Terminalda harakatlanish — IlmHamroh