1. Shell, Terminal va Bash nima? โ
Bu bobda nima o'rganasiz:
- Terminal, shell va bash โ uchta alohida tushuncha o'rtasidagi farq
- Birinchi terminal sessiyasini ochish va buyruq kiritish
- Prompt belgisining mazmuni
- Asosiy buyruqlar:
pwd,echo,whoami,dateโฑ Vaqt: ~15 daqiqa ๐งช Mashqlar:
bashlings watchโ 5 ta interaktiv mashq tayyor (exercises/01_intro/)
Linux yoki macOS bilan ishlashni boshlaganingizda eshitadigan birinchi atamalar โ terminal, shell va bash. Ko'pchilik ularni bir narsa deb o'ylaydi, lekin aslida bular uchta alohida tushunchadir. Keling, har birini batafsil ko'rib chiqamiz.
1.1. Terminal nima? โ
Terminal (yoki "terminal emulator") โ bu dasturning grafik oynasi bo'lib, u sizga matn ko'rinishidagi buyruqlarni kiritish va ularning natijasini ko'rish imkonini beradi.
Boshqacha aytganda, terminal โ bu eshik (oyna), shell esa shu eshikdan kiradigan ofitsiant.
Mashhur terminal dasturlari:
| OS | Terminal dasturlari |
|---|---|
| macOS | Terminal.app, iTerm2, Warp, Alacritty |
| Linux | GNOME Terminal, Konsole, xterm, kitty |
| Windows | Windows Terminal, WSL, Git Bash |
Eslatma
Terminal โ bu shunchaki "konteyner". Ichida qaysi shell ishlayotgani esa boshqa masala.
1.2. Shell nima? โ
Shell โ foydalanuvchi bilan operatsion tizim yadrosi (kernel) o'rtasidagi tarjimon dastur. Siz ls deb yozasiz, shell uni o'qiydi, kernelga "shu papkadagi fayllar ro'yxatini ber" deb so'rov yuboradi va natijani sizga qaytaradi.
flowchart LR
A[Foydalanuvchi] -->|buyruq yozadi| B[Terminal]
B -->|matnni uzatadi| C[Shell]
C -->|tizim chaqiruvi| D[Kernel / OS]
D -->|natija| C
C --> B --> AEng mashhur shell dasturlari:
bashโ Bourne Again SHell (Linuxda standart)zshโ Z Shell (macOS'da default, ko'p funksional)fishโ Friendly Interactive Shell (zamonaviy, auto-suggest bilan)shโ POSIX shell (eng minimal)dash,kshโ boshqa variantlari
1.3. Bash nima? โ
Bash (Bourne Again SHell) โ 1989-yilda Brian Fox tomonidan GNU loyihasi uchun yozilgan shell. U eski sh (Bourne shell)ning kengaytirilgan, kuchaytirilgan versiyasi.
Bash bugungi kunda:
- Aksariyat Linux distributivlarida default
- Skript yozish uchun eng keng tarqalgan
- POSIX standartiga mos
- Millionlab serverlar va CI/CD pipeline'larida ishlatiladi
Qaysi shell sizda ishlayapti?
Hozirgi shell turini bilish uchun:
echo $SHELL
# /bin/bash yoki /bin/zshYoki versiyani ko'rish:
bash --version
# GNU bash, version 5.2.15(1)-release ...1.4. Prompt โ buyruq qatori belgisi โ
Terminalni ochsangiz, biror belgi kutib turibdi:
user@hostname:~$Bu โ prompt. Uning tarkibi:
| Qism | Ma'nosi |
|---|---|
user | Foydalanuvchi nomi |
hostname | Kompyuter nomi |
~ | Joriy katalog (~ โ bu home directory) |
$ | Oddiy foydalanuvchi (root bo'lsa #) |
Diqqat
Agar prompt'da # ko'rsangiz โ siz root (superuser) sifatida ishlayapsiz. Har bir buyruq juda ehtiyotkorlik bilan kiritilishi kerak!
1.5. Birinchi buyruqlaringiz โ
Keling, asosiy buyruqlar bilan tanishaylik:
# Salom dunyo
echo "Salom, Bash!"
# Joriy sana va vaqt
date
# Tizim haqida ma'lumot
uname -a
# Qaysi foydalanuvchisiz?
whoami
# Qaysi papkdasiz?
pwd
# Mavjud buyruq qayerdan ishlayapti?
which lsNatija namunasi:
$ whoami
mac
$ pwd
/Users/mac
$ which ls
/bin/ls1.6. man โ yordamchingiz โ
Har bir Unix buyrug'i o'zining qo'llanmasiga ega. Uni man (manual) buyrug'i orqali ochasiz:
man ls
man grep
man bashManual ichida:
- Yuqoriga / Pastga:
โ โyokijk - Qidirish:
/qidiriladigan-so'z, keyinEnter - Chiqish:
q
Tezroq variant
Ba'zi buyruqlar --help flagini qo'llab-quvvatlaydi:
ls --help
grep --help1.7. Tarixiy buyruqlar va auto-complete โ
Bash sizga ish tezligini oshiruvchi ikkita ulkan imkoniyat beradi:
History (tarix) โ
history # oxirgi buyruqlar ro'yxati
!! # oxirgi buyruqni qayta ishga tushiradi
!123 # tarixdagi 123-buyruqni ishga tushiradi
Ctrl + R # tarixdan qidirish (incremental search)Tab completion โ
Buyruq yoki fayl nomini to'liq yozish shart emas โ Tab tugmasini bosing va Bash o'zi yakunlab beradi.
cd Doc<Tab> # โ cd Documents/
ls -l README<Tab> # โ ls -l README.md1.8. Tez-tez uchraydigan xatolar โ
Boshlovchilar uchun ogohlantirish
- Bo'shliqlarga e'tibor bering. Bashda
x=5to'g'ri,x = 5esa xato (probel โ alohida argument). - Hech qachon
rm -rf /ni bajarmang. Bu butun tizimni o'chiradi. sudoni o'ylab ishlating. U "men nima qilayotganimni bilaman" demakdir.- Buyruqlar katta-kichik harf farqlaydi.
lsvaLSโ bir xil emas.
1.9. Mashqlar โ
๐งช Bashlings โ interaktiv mashqlar
Bu bobning 5 ta mashqi bashlings CLI orqali avto-tekshiruv bilan:
bashlings watch # birinchi pending mashqdan boshlash
bashlings run intro1 # bitta mashqni tekshirish
bashlings hint intro1 # bosqichli maslahatManba: exercises/01_intro/
Quyidagi qo'shimcha vazifalarni terminalda qo'l bilan bajaring:
- O'z home katalogingizning to'liq yo'lini chiqaring.
- Qaysi shell ishlatayotganingizni aniqlang.
bashversiyasini ko'ring.datebuyrug'iningmansahifasini oching va--iso-8601flagini topib qo'llang.- Tarixdagi oxirgi 5 ta buyruqni chiqaring (
history | tail -5).
1.10. Xulosa โ
| Atama | Mohiyat |
|---|---|
| Terminal | Matn interfeysiga ega oyna (dastur) |
| Shell | Buyruqlarni tushunadigan tarjimon (bash, zsh, fish) |
| Bash | Eng mashhur shell dasturi |
| Prompt | Buyruq kiritish chizig'i ($ yoki #) |
man | Buyruq qo'llanmasi |
Keyingi bobda biz fayl tizimi bo'ylab harakatlanishni o'rganamiz: cd, ls, pwd, mkdir, cp, mv, rm.
Keyingi sahifa: 2. Fayl tizimi bo'ylab navigatsiya โ