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

Terminal, shell va prompt

Qisqacha: Terminal — buyruq yoziladigan va natija ko'rinadigan oyna. Shell — shu oyna ichida ishlaydigan va buyruqni tushunib bajaradigan dastur (bash, zsh, PowerShell). Prompt — shell "yangi buyruqqa tayyorman" deb chiqaradigan qator, masalan ali@noutbuk:~$. Shell doim bir xil siklda ishlaydi: o'qiydi, bajaradi, natijani chiqaradi va yana kutadi.

Bu darsda

  • Grafik interfeys (GUI) va buyruq qatori (CLI) farqini tushuntira olasiz.
  • Terminal, shell va prompt — uch xil narsa ekanini misol bilan ajrata olasiz.
  • Qaysi tizimda qaysi shell ishlashini va bu kursda qaysi birini ishlatishimizni bilasiz.
  • Prompt qatorini bo'laklab o'qiy olasiz: kim, qayerda, qanday huquq bilan.
  • Birinchi buyruqlaringizni yozasiz va REPL sikli nima ekanini tushunasiz.

Oldin bilishingiz kerak: Operatsion tizim nima: kernel, jarayon va oqim, Dastur o'rnatish va paket menejerlari, WSL2: Windows ichida Linux.

1. Nega bu kerak?

Oldingi darslarda winget install yoki wsl --install kabi buyruqlarni "yozib, Enter bosing" deb ishlatdik. Endi ular yoziladigan joyni tushunish vaqti keldi.

Hozirgacha kompyuter bilan asosan sichqoncha orqali ishladingiz: papkani ikki marta bosasiz, faylni sudrab ko'chirasiz. Bunday boshqaruv GUI (Graphical User Interface — grafik foydalanuvchi interfeysi) deb ataladi. Tugmalar, oynalar, ikonkalar — hammasi GUI.

Uning muqobili — CLI (Command Line Interface — buyruq qatori interfeysi). Unda siz kompyuterga so'z bilan buyruq yozasiz, u matn bilan javob beradi.

Dasturchilar CLI'da ko'p vaqt o'tkazadi. Uch sababi bor:

  1. Takroriy ish. 500 ta rasmni bittalab qayta nomlash sichqoncha bilan bir soat oladi. Buyruq qatorida bu bitta qisqa buyruq.
  2. Serverda oyna yo'q. Serverlar odatda grafik interfeyssiz ishlaydi. Siz masofadagi serverga ulanganda (bu SSH orqali bo'ladi, keyinroq o'rganamiz) oldingizda faqat buyruq qatori turadi.
  3. Dasturchi vositalari. Git, Node.js, npm, Docker — avvalo buyruq qatori uchun yaratilgan. Ularning ko'p imkoniyati faqat shu yerda bor.

2. Uch tushuncha: terminal, shell, prompt

Boshlovchilar bu uch so'zni bitta narsa deb o'ylaydi. Aslida ular uch xil qatlam. Avval umumiy rasmga qarang:

flowchart LR
  S["Siz: klaviatura"] --> T["Terminal: oyna"]
  T --> SH["Shell: buyruqni tushunadi"]
  SH --> OS["Operatsion tizim: dasturni ishga tushiradi"]
  OS --> SH
  SH --> T
  T --> N["Ekranda natija va yangi prompt"]

Siz terminalga yozasiz. Terminal matnni shell'ga uzatadi. Shell uni tushunib, operatsion tizimdan dasturni ishga tushirishni so'raydi. Natija xuddi shu yo'l bilan orqaga qaytadi.

2.1 Terminal — oyna

Terminal (to'liq nomi — terminal emulyatori, terminal emulator) — harflarni qabul qilib, matnni ko'rsatadigan oyna. U buyruqlarni tushunmaydi. Uning ishi — sizning yozganingizni uzatish va javobni chiroyli ko'rsatish: shrift, rang, varaqlar.

Nega "emulyator"? O'tmishda terminal alohida qurilma edi: katta kompyuterga sim bilan ulangan ekran va klaviatura. Bugun o'sha qurilmani oddiy dastur taqlid qiladi (emulyatsiya qiladi).

Tizim Mashhur terminallar
Windows Windows Terminal (Windows 11'da tayyor), Git Bash oynasi
macOS Terminal (tayyor), iTerm2
Linux GNOME Terminal, Konsole
Hamma joyda VS Code ichidagi terminal

2.2 Shell — buyruqni tushunadigan dastur

Shell (inglizcha "qobiq") — buyruqni o'qiydigan, tushunadigan va bajaradigan dastur. "Aql" aynan shu yerda.

Nega "qobiq"? OS darsida operatsion tizimning markazi — yadro (kernel) ekanini ko'rgan edik. Shell esa yadroni o'rab turgan tashqi qatlam: siz yadro bilan to'g'ridan-to'g'ri emas, u orqali gaplashasiz.

Shell Qayerda Qisqacha
bash Linux, serverlar, Git Bash Eng keng tarqalgan klassik shell
zsh macOS (2019-yildan standart) bash'ga juda o'xshash, qulayliklari ko'proq
PowerShell Windows Microsoft'ning shell'i, sintaksisi bash'dan farq qiladi
cmd Windows Eski Windows buyruq qatori

Git Bash — Windows uchun moslangan bash. U Git bilan birga o'rnatiladi (Dastur o'rnatish darsi mashqida o'rnatgan bo'lishingiz kerak). Unda Linux buyruqlari ishlaydi.

Muhim nuqta: bitta terminal ichida turli shell'lar ishlashi mumkin. Windows Terminal'da bir varaqda PowerShell, ikkinchisida Ubuntu'ning bash'i, uchinchisida Git Bash ochiq tura oladi. Oyna bitta, "miya" har xil.

Maslahat: Bu kursda buyruqlar bash uchun yoziladi — serverlarda aynan u ishlaydi. Windows'da Git Bash yoki WSL'dagi Ubuntu'ni oching. macOS'dagi zsh'da deyarli barcha buyruqlar xuddi shunday ishlaydi. PowerShell'ning farqlarini alohida darsda ko'ramiz.

2.3 Prompt — "tayyorman" belgisi

Prompt (inglizcha "taklif", "undash") — shell yangi buyruq kutayotganda chiqaradigan qator. Kursor doim uning oxirida miltillaydi. Prompt ko'rinib turgan bo'lsa — shell bo'sh, buyruq yozsangiz bo'ladi.

Ubuntu'dagi odatiy prompt:

text
ali@noutbuk:~/loyiha$

Uni bo'laklaymiz:

Qism Ma'nosi
ali Foydalanuvchi nomi — kim sifatida ishlayapsiz
noutbuk Kompyuter nomi — qaysi kompyuterdasiz
~/loyiha Joriy papka; ~ — uy papkangiz (Yo'llar darsidan)
$ Oddiy foydalanuvchi. Root (bosh administrator) bo'lsangiz — #

Prompt har shell'da boshqacha ko'rinadi:

Qayerda Prompt
Ubuntu (bash) ali@noutbuk:~$
Git Bash Ali@NOUTBUK MINGW64 ~ va keyingi qatorda $
macOS (zsh) ali@MacBook-Air ~ %
PowerShell PS C:\Users\Ali>

Git Bash'dagi MINGW64 — "bu Windows uchun moslangan bash" degan belgi, u sizga halaqit bermaydi.

O'xshatish: terminal — telefon apparati, shell — narigi tomondagi yordamchi, prompt — uning "Labbay, eshitaman" degani. Yordamchi "labbay" demaguncha gapirishni boshlamaysiz.

Tekshirib ko'ring: malika@server1:/var/www# promptidan nimalarni bilib olasiz?

Javob

Foydalanuvchi — malika, kompyuter — server1, joriy papka — /var/www. Oxirida $ emas, # turibdi — demak bu shell root (bosh administrator) huquqi bilan ishlayapti. Bunday promptda ehtiyot bo'lish kerak: har bir buyruq tizimning istalgan joyini o'zgartira oladi.

Tekshirib ko'ring: Terminal ham, shell ham "dastur". Unda ularning farqi nima?

Javob

Terminal faqat oyna: yozganingizni qabul qiladi va matnni ko'rsatadi, buyruqni tushunmaydi. Shell esa buyruqni o'qiydi, tushunadi va operatsion tizim orqali bajaradi. Bitta terminalda turli shell'lar ishlashi mumkin.

3. Birinchi buyruqlar

Git Bash'ni oching (Windows tugmasi → Git Bash), yoki WSL'dagi Ubuntu'ni, yoki macOS'da Terminal'ni. Prompt paydo bo'lgach, quyidagilarni yozib, har biridan keyin Enter bosing.

Matn chiqarish:

bash
echo salom
text
salom

echo — "aks-sado": unga bergan so'zingizni qaytarib yozadi.

Kim sifatida ishlayapman?

bash
whoami
text
ali

Sizda o'z foydalanuvchi nomingiz chiqadi.

Hozir soat nechchi?

bash
date
text
Sun Sep 27 19:40:26 +05 2026

Natijaning ko'rinishi tizimga qarab biroz farq qilishi mumkin.

Qaysi shell'daman?

bash
echo $SHELL
text
/bin/bash

Git Bash'da /bin/bash.exe yoki /usr/bin/bash, macOS'da /bin/zsh chiqishi mumkin. $SHELL — shell nomi saqlangan muhit o'zgaruvchisi (Dastur o'rnatish darsida muhit o'zgaruvchisi nima ekanini ko'rgan edik).

Terminal oynasini yopish yoki shell'dan chiqish uchun:

bash
exit

Tekshirib ko'ring: echo Toshkent yozilsa, ekranda nima chiqadi?

Javob

Toshkent. echo o'ziga berilgan so'zni qaytarib ekranga yozadi. Keyin shell yangi prompt chiqaradi.

4. Shell qanday ishlaydi: REPL sikli

Siz hozirgina bir necha buyruq yozdingiz. Har safar bir xil narsa takrorlandi: prompt, siz yozasiz, natija, yana prompt. Bu tasodif emas — shell doim to'rt qadamli siklda aylanadi:

  1. Read (o'qish) — Enter bosilguncha yozganingizni o'qiydi.
  2. Eval (bajarish) — buyruqni tahlil qiladi. Buyruq shell'ning o'zida bo'lsa — o'zi bajaradi. Bo'lmasa, dasturni PATH papkalaridan topadi va operatsion tizimdan uni yangi jarayon sifatida ishga tushirishni so'raydi.
  3. Print (chiqarish) — natija yoki xato matnini terminalga chiqaradi.
  4. Loop (takrorlash) — yangi prompt chiqaradi va birinchi qadamga qaytadi.

Bosh harflardan REPL (Read–Eval–Print Loop) nomi kelib chiqqan. Bu so'zni kursda yana uchratasiz: Node.js va Python ham shunday "yozing — javob oling" rejimiga ega.

Choyxonadagi ofitsiantni tasavvur qiling. U buyurtmani eshitadi (Read), oshxonaga yetkazadi (Eval), taomni olib keladi (Print) va "yana nima olib kelay?" deb so'raydi (Loop).

Tekshirib ko'ring: Siz buyruq yozdingiz, lekin Enter bosmadingiz. Shell REPL'ning qaysi qadamida turibdi?

Javob

Read (o'qish) qadamida. Shell Enter bosilishini kutyapti — shundan keyingina buyruqni bajarishga o'tadi. Enter bosilmaguncha yozganingizni o'chirib, tuzatishingiz mumkin.

5. Terminaldagi klaviatura odatlari

Terminalda ba'zi tugmalar odatdagidan boshqacha ishlaydi:

Tugmalar Terminalda nima qiladi
Ctrl + C Ishlab turgan buyruqni to'xtatadi (nusxalamaydi!)
Enter Buyruqni yuboradi
exit Shell'dan chiqadi

Nusxalash va joylash terminalga qarab farq qiladi:

  • Windows Terminal: matnni belgilab Ctrl + C — nusxa (belgilangan matn bo'lsa, to'xtatmaydi). Ctrl + V — joylash.
  • Git Bash: matnni sichqoncha bilan belgilash — avtomatik nusxa. Joylash — Shift + Insert yoki o'ng tugma → Paste.
  • macOS: Cmd + C va Cmd + V.
  • Linux terminallari: Ctrl + Shift + C va Ctrl + Shift + V.

Maslahat: Shell javob bermay qolsa va prompt chiqmasa — demak buyruq hali ishlayapti yoki qotib qolgan. Ctrl + C bosing: prompt qaytadi.

6. Ko'p uchraydigan xatolar

6.1 $ belgisini ham nusxalash

Qo'llanmalarda buyruqlar ko'pincha prompt belgisi bilan yoziladi:

text
$ npm install

Butun qatorni nusxalab qo'ysangiz, shunday xato chiqadi:

text
bash: $: command not found

Tarjimasi: "$ degan buyruq topilmadi". Shell birinchi so'zni buyruq nomi deb o'qiydi, birinchi so'z esa $ bo'lib qoldi. Tuzatish: $ va undan keyingi bo'sh joyni yozmang — faqat npm install ni yozing. $ — "bu yerdan buyruq boshlanadi" degan ishora, xolos. PowerShell qo'llanmalaridagi PS C:\> ham xuddi shunday — uni nusxalamang.

6.2 Bash buyrug'ini PowerShell'da yozish

Siz kursdagi ls -la buyrug'ini PowerShell'da yozdingiz (bu buyruqni keyingi darslarda o'rganamiz). Javob:

text
A parameter cannot be found that matches parameter name 'la'.

"la nomli parametr topilmadi". Buyruq to'g'ri — shell boshqa. Bash buyruqlarini Git Bash, WSL yoki macOS terminalida yozing. Qaysi shell'dasiz — promptga qarang: PS bilan boshlansa, bu PowerShell.

6.3 Buyruq ishlab turganda yangi buyruq yozish

Prompt qaytmagan bo'lsa, oldingi buyruq hali tugamagan. Yangi yozganlaringiz o'sha ishlab turgan dasturga ketadi yoki shunchaki ekranda qoladi. Kuting yoki Ctrl + C bilan to'xtating.

6.4 Nusxalash uchun Ctrl + C bosish

Git Bash yoki Linux terminalida Ctrl + C nusxa olmaydi — u ishlab turgan buyruqni to'xtatadi. Uzoq davom etayotgan o'rnatishni shu tarzda tasodifan to'xtatib qo'yish mumkin. Nusxalash usullarini yuqoridagi klaviatura bo'limida ko'ring.

7. Mashqlar

1-mashq (oson): Promptni o'qing

jasur@kompyuter:~/darslar$ promptida:

  • foydalanuvchi nomi —
  • joriy papka —
  • oxirgi belgi $ bo'lgani uchun bu root emas, foydalanuvchi.
Yechim

Foydalanuvchi — jasur (@ dan oldingi qism). Kompyuter — kompyuter. Joriy papka — ~/darslar, ya'ni uy papkasidagi darslar papkasi (: dan keyingi qism). $ — oddiy foydalanuvchi; root bo'lsa # turardi.

2-mashq (o'rta): Birinchi sessiya

Git Bash, WSL'dagi Ubuntu yoki macOS Terminal'ni oching va ketma-ket bajaring:

  1. O'z ismingizni ekranga chiqaring (echo).
  2. Foydalanuvchi nomingizni bilib oling.
  3. Qaysi shell'da ekaningizni tekshiring.
  4. Shell'dan chiqing.
Yechim
bash
echo Aziz
whoami
echo $SHELL
exit

echo Aziz — Aziz ni chiqaradi (o'z ismingizni yozing). whoami — foydalanuvchi nomingizni. echo $SHELL — masalan /bin/bash. exit — shell'dan chiqadi va oyna yopiladi.

3-mashq (qiyin): Qaysi shell va nima xato?

Uch dasturchi qo'llanmadan buyruq nusxaladi va xato oldi:

  • A) Prompt PS C:\Users\Ali>, yozilgan buyruq ls -la, xato: A parameter cannot be found...
  • B) Prompt malika@noutbuk:~$, yozilgan buyruq $ whoami, xato: bash: $: command not found
  • C) Prompt jasur@server:~$, yozilgan buyruq echo salom, lekin ekranda hech narsa bo'lmayapti va prompt ham chiqmayapti.

Har birida shell qaysi va nima qilish kerak?

Yechim
  • A) Shell — PowerShell (PS bilan boshlanyapti). ls -la bash buyrug'i. Git Bash yoki WSL'ni ochib, o'sha yerda yozish kerak.
  • B) Shell — bash. Muammo buyruqda: $ ham nusxalangan. Faqat whoami ni yozish kerak.
  • C) Shell — bash, lekin prompt yo'q — demak oldingi buyruq hali ishlayapti. Yangi buyruq shell'ga yetib bormayapti. Ctrl + C bosib, prompt qaytgach, qayta yozish kerak.

8. Real ishda

  • Serverga ulanish. Sayt serverga joylashtirilganda dasturchi SSH orqali ulanadi va ali@server:~$ ko'rinishidagi promptni ko'radi. Promptdagi kompyuter nomi "men qaysi serverdaman?" savoliga javob beradi — bu xato serverda buyruq yozib yubormaslik uchun muhim.
  • Loyiha yo'riqnomalari. Har bir loyihaning README faylida "Ishga tushirish" bo'limi bor va u buyruqlardan iborat: npm install, npm run dev. Ularni to'g'ri nusxalash — kundalik ish.
  • VS Code terminali. Kod yozayotganda terminal VS Code'ning pastki qismida ochiq turadi. Qaysi shell ishlayotgani o'sha yerda yozilgan bo'ladi.
  • Intervyu. "Terminal va shell farqi nima?" yoki "bash va zsh nima?" — boshlang'ich darajadagi savollar.

Xulosa

  • GUI — sichqoncha va oynalar; CLI — yozma buyruqlar. Dasturchi uchun CLI tezroq va serverlarda yagona yo'l.
  • Terminal — oyna; shell — buyruqni tushunadigan dastur (bash, zsh, PowerShell); prompt — "tayyorman" qatori.
  • Prompt ichida: foydalanuvchi, kompyuter, joriy papka va $ (oddiy) yoki # (root).
  • Shell REPL siklida ishlaydi: o'qiydi → bajaradi → chiqaradi → yana kutadi.
  • Qo'llanmadagi $ ni nusxalamang; terminalda Ctrl + C — to'xtatish.

Keyingi dars: Buyruq anatomiyasi va yordam olish — buyruq qanday qismlardan tuzilganini va har qanday buyruq bo'yicha yordamni qayerdan olishni o'rganamiz.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
Terminal, shell va prompt — IlmHamroh