Mundarija (20)
- Bu darsda
- 1. Nega bu kerak?
- 2. Uch tushuncha: terminal, shell, prompt
- 2.1 Terminal — oyna
- 2.2 Shell — buyruqni tushunadigan dastur
- 2.3 Prompt — "tayyorman" belgisi
- 3. Birinchi buyruqlar
- 4. Shell qanday ishlaydi: REPL sikli
- 5. Terminaldagi klaviatura odatlari
- 6. Ko'p uchraydigan xatolar
- 6.1 $ belgisini ham nusxalash
- 6.2 Bash buyrug'ini PowerShell'da yozish
- 6.3 Buyruq ishlab turganda yangi buyruq yozish
- 6.4 Nusxalash uchun Ctrl + C bosish
- 7. Mashqlar
- 1-mashq (oson): Promptni o'qing
- 2-mashq (o'rta): Birinchi sessiya
- 3-mashq (qiyin): Qaysi shell va nima xato?
- 8. Real ishda
- Xulosa
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:
- Takroriy ish. 500 ta rasmni bittalab qayta nomlash sichqoncha bilan bir soat oladi. Buyruq qatorida bu bitta qisqa buyruq.
- 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.
- 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:
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:
echo salomsalomecho — "aks-sado": unga bergan so'zingizni qaytarib yozadi.
Kim sifatida ishlayapman?
whoamialiSizda o'z foydalanuvchi nomingiz chiqadi.
Hozir soat nechchi?
dateSun Sep 27 19:40:26 +05 2026Natijaning ko'rinishi tizimga qarab biroz farq qilishi mumkin.
Qaysi shell'daman?
echo $SHELL/bin/bashGit 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:
exitTekshirib ko'ring:
echo Toshkentyozilsa, 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:
- Read (o'qish) — Enter bosilguncha yozganingizni o'qiydi.
- 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.
- Print (chiqarish) — natija yoki xato matnini terminalga chiqaradi.
- 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 + Insertyoki o'ng tugma → Paste. - macOS:
Cmd + CvaCmd + V. - Linux terminallari:
Ctrl + Shift + CvaCtrl + Shift + V.
Maslahat: Shell javob bermay qolsa va prompt chiqmasa — demak buyruq hali ishlayapti yoki qotib qolgan.
Ctrl + Cbosing: prompt qaytadi.
6. Ko'p uchraydigan xatolar
6.1 $ belgisini ham nusxalash
Qo'llanmalarda buyruqlar ko'pincha prompt belgisi bilan yoziladi:
$ npm installButun qatorni nusxalab qo'ysangiz, shunday xato chiqadi:
bash: $: command not foundTarjimasi: "$ 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:
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:
- O'z ismingizni ekranga chiqaring (
echo). - Foydalanuvchi nomingizni bilib oling.
- Qaysi shell'da ekaningizni tekshiring.
- Shell'dan chiqing.
Yechim
echo Aziz
whoami
echo $SHELL
exitecho 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 buyruqls -la, xato:A parameter cannot be found... - B) Prompt
malika@noutbuk:~$, yozilgan buyruq$ whoami, xato:bash: $: command not found - C) Prompt
jasur@server:~$, yozilgan buyruqecho salom, lekin ekranda hech narsa bo'lmayapti va prompt ham chiqmayapti.
Har birida shell qaysi va nima qilish kerak?
Yechim
- A) Shell — PowerShell (
PSbilan boshlanyapti).ls -labash buyrug'i. Git Bash yoki WSL'ni ochib, o'sha yerda yozish kerak. - B) Shell — bash. Muammo buyruqda:
$ham nusxalangan. Faqatwhoamini yozish kerak. - C) Shell — bash, lekin prompt yo'q — demak oldingi buyruq hali ishlayapti. Yangi buyruq shell'ga yetib bormayapti.
Ctrl + Cbosib, 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; terminaldaCtrl + 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.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!