9-dars: Terminal va buyruq qatori (Command Line)
Dars haqida
Davomiyligi: 90 daqiqa Maqsad: Talaba terminal nima ekanligini tushunishi, asosiy buyruqlarni (cd, ls, pwd, mkdir, cp, mv, rm) bilishi va Git uchun terminalda ishlay olishi kerak.
1. Terminal nima?
Terminal (yoki Command Line, Shell, Console) — kompyuter bilan matn orqali muloqot qilish vositasi.
Sichqoncha va menyu yo'q. Faqat klaviatura orqali buyruq yozasiz.
Hayotda misol
GUI (oyna interfeysi) — restoran menyusi. Sichqoncha bilan tanlaysiz.
Terminal — restoran ofitsiantiga to'g'ridan-to'g'ri aytishingiz. Tezroq va aniqroq, lekin tilni bilish kerak.
2. Nima uchun terminal kerak?
Boshlovchi savol: "Kompyuter oddiygina ishlaydi-ku, terminal nima uchun?"
Sabablar:
- Git va GitHub — terminal orqali ishlaydi
- Dasturlash — kompilyatsiya, dasturni ishga tushirish
- Tezlik — tajribali odam — sichqonchaga qaraganda 10x tez
- Avtomatlashtirish — bir nechta vazifani birga
- Server — uzoq kompyuterda ishlash
- Maxsus vazifalar — GUI'da bo'lmaydigan narsalar
Foundation va keyingi yo'nalishlar (Mobile, Backend) — terminal doim ishlatiladi.
3. Terminal turlari
Windows
- Command Prompt (CMD) — eski, kam funksiya
- PowerShell — yangi, kuchli
- Windows Terminal — modern, ko'p tab
- Git Bash — Linux uslubidagi terminal (Git bilan keladi)
- WSL (Windows Subsystem for Linux) — Windows ichida Linux muhiti
macOS
- Terminal — sukut bo'yicha bor
- iTerm2 — yaxshilangan (bepul yuklab olish mumkin)
- Zsh — sukut bo'yicha shell (2019+)
Linux
- Bash yoki Zsh — har distroda boshqacha
- GNOME Terminal, Konsole, Terminator va h.k.
Tavsiya
Foundation kursida:
- Windows — Git Bash (Git o'rnatishi bilan keladi)
- macOS — Terminal (sukut bo'yicha)
- Linux — Terminal
Hammasi bir xil buyruqlarni qabul qiladi.
4. Terminal ochish
Windows
- Start menyu → "Git Bash" yoki "Terminal" yoki "PowerShell"
- Yoki File Explorer'da papkada o'ng tugma → "Git Bash Here"
macOS
- Cmd + Space → "Terminal" → Enter
- Yoki Applications → Utilities → Terminal
- Yoki Finder'da papkada o'ng tugma → "New Terminal at Folder"
Linux
- Ctrl + Alt + T (Ubuntu)
- Yoki menyudan "Terminal"
5. Terminal interfeysi
Ochilgandan keyin sizning oldingizda:
akmal@MacBook:~ $| Qism | Ma'no |
|---|---|
akmal | Foydalanuvchi nomi |
@ | Belgi |
MacBook | Kompyuter nomi |
~ | Hozirgi papka (~ = home papka) |
$ | Prompt belgisi (yoki % Zsh'da, > Windows'da) |
Prompt — kompyuter siz buyruq berishingizni kutmoqda.
6. Birinchi buyruq: pwd
pwd — Print Working Directory — hozirgi papka qayerda?
$ pwd
/Users/akmalHozir siz /Users/akmal papkada.
7. ls — papkadagi narsalar
ls — LiSt — papkadagi fayllar va papkalar.
$ ls
Desktop Documents Downloads Pictures Musicls bayroqlar
$ ls -l # batafsil ro'yxat
$ ls -a # yashirin fayllar bilan (. bilan boshlanadigan)
$ ls -la # ikkalasini birga
$ ls -lh # batafsil + o'qish oson hajmlar (KB, MB)ls -la natijasi
drwxr-xr-x Akmal 4096 May 14 10:30 Documents
-rw-r--r-- Akmal 245 May 14 11:00 README.txtBirinchi belgi:
d— directory (papka)-— fayl
Keyingisi — huquqlar (rwx — read/write/execute).
8. cd — papkaga o'tish
cd — Change Directory — boshqa papkaga o'tish.
$ cd Documents # Documents'ga kirish
$ pwd
/Users/akmal/Documents
$ cd .. # bir qadam orqaga
$ pwd
/Users/akmal
$ cd / # ildiz papkaga (Mac/Linux)
$ cd ~ # home papkaga
$ cd - # avvalgi joyga qaytishPath turlari
Absolute path — ildizdan to'liq yo'l:
/Users/akmal/Documents/Foundation
C:\Users\Akmal\Documents\FoundationRelative path — hozirgi joydan:
Documents/Foundation
../Documents
./README.md| Belgi | Ma'no |
|---|---|
~ | Home papka |
. | Hozirgi papka |
.. | Yuqori papka (parent) |
/ | Ildiz papka |
9. mkdir — yangi papka
mkdir — MaKe DIRectory.
$ mkdir oquv-markazi
$ ls
oquv-markazi Desktop DocumentsBir nechta papka:
$ mkdir oy1 oy2 oy3Papka ichida papka:
$ mkdir -p Foundation/3-oy/scratch-p flag — kerak bo'lsa, oraliq papkalarni ham yaratadi.
10. touch — bo'sh fayl yaratish
$ touch README.md
$ ls
README.mdYoki bir nechta:
$ touch fayl1.txt fayl2.txt fayl3.txt11. cat — fayl tarkibini ko'rish
$ cat README.md
# Bu mening loyiham
Bu birinchi qatordagi matn.Faylni terminal'da ko'rsatadi.
Bir nechta fayl:
$ cat fayl1.txt fayl2.txtUlanib ko'rinadi.
12. echo — matn chiqarish va faylga yozish
$ echo "Salom dunyo!"
Salom dunyo!Faylga yozish:
$ echo "Birinchi qator" > fayl.txt
$ cat fayl.txt
Birinchi qator
$ echo "Ikkinchi qator" >> fayl.txt # qo'shish (append)
$ cat fayl.txt
Birinchi qator
Ikkinchi qator| Belgi | Ma'no |
|---|---|
> | Faylga yozish (ustiga yozadi) |
>> | Faylga qo'shish |
13. cp — nusxalash
cp — CoPy.
$ cp fayl1.txt fayl2.txt # fayl1 ni fayl2 deb nusxalash
$ cp fayl.txt papka/ # papkaga nusxalash
$ cp -r papka1 papka2 # papkani butunligicha-r (recursive) — papka ichidagi hamma narsa bilan.
14. mv — ko'chirish va qayta nomlash
mv — MoVe.
$ mv fayl1.txt fayl2.txt # qayta nomlash
$ mv fayl.txt papka/ # boshqa papkaga
$ mv eski-nom yangi-nom # papkani qayta nomlash15. rm — o'chirish
rm — ReMove. Diqqat! O'chirilgan qaytarib bo'lmaydi (Korzina yo'q).
$ rm fayl.txt # bitta fayl
$ rm fayl1.txt fayl2.txt # bir nechta
$ rm -r papka # papka (ichidagi bilan)
$ rm -rf papka # majburiy o'chirish (juda ehtiyot bo'ling)rm -rf
rm -rf / — butun diskni o'chiradi! Hech qachon bunday yozmang.
rm ehtiyot ishlating. Path'ni 3 marta tekshiring.
16. clear va exit
$ clear # ekranni tozalash
$ exit # terminal'dan chiqishYoki Cmd + K (Mac) / Ctrl + L (Linux/Git Bash) — ekran tozalash.
17. man — qo'llanma
man — MANual.
$ man ls # ls buyrug'i haqida batafsil
$ man cp
$ man cdQ klavishi bilan chiqish.
Yoki --help:
$ ls --help
$ cp --help18. history — buyruqlar tarixi
$ history
1 cd Documents
2 ls
3 mkdir oquv-markazi
...Eski buyruqni qayta ishga tushirish:
$ !3 # 3-buyruq qayta
$ !! # oxirgi buyruq qaytaYoki strelka yuqoriga — oldingi buyruqlar.
19. wildcard — joker belgilar
$ ls *.txt # barcha .txt fayllar
$ rm *.tmp # barcha .tmp o'chirish
$ cp data?.csv arxiv/ # data1.csv, data2.csv va h.k.| Belgi | Ma'no |
|---|---|
* | Har qanday belgilar |
? | Bitta belgi |
[abc] | a, b yoki c |
20. Pipe va Redirect
Pipe |
Bir buyruqning natijasini ikkinchisiga uzatish.
$ ls -la | grep txt # ls natijasidan txt'ni qidirish
$ cat file.txt | wc -l # file qatorlar sonini sanashRedirect
$ ls > files.txt # natijani faylga yozish
$ ls >> files.txt # qo'shish
$ command < input.txt # fayldan o'qish
$ command 2> errors.txt # xatolarni faylga21. Foydali buyruqlar
| Buyruq | Vazifa |
|---|---|
whoami | Foydalanuvchi nomi |
date | Hozirgi sana va vaqt |
cal | Kalendar |
which python | Python qayerda? |
wc fayl.txt | So'z, qator, belgi soni |
head fayl.txt | Faylning birinchi 10 qatori |
tail fayl.txt | Oxirgi 10 qator |
grep "so'z" fayl.txt | Faylda so'z qidirish |
find . -name "*.txt" | Fayl qidirish |
df -h | Disk hajmi |
du -sh papka | Papka hajmi |
ps | Hozir ishlayotgan jarayonlar |
kill PID | Jarayonni to'xtatish |
22. Windows va Mac farqi
| Mac/Linux | Windows CMD |
|---|---|
ls | dir |
cd .. | cd .. |
mkdir | mkdir |
cp | copy |
mv | move / rename |
rm | del / rmdir |
clear | cls |
cat | type |
pwd | cd |
~ (home) | %USERPROFILE% |
Git Bash
Windows'da Git Bash ishlatsangiz — Linux buyruqlari bilan ishlaydi. Foundation kursida shuni ishlating.
23. Terminal'da matn muharriri
nano (oddiy)
$ nano fayl.txtMatn yozing.
- Ctrl + O — saqlash
- Ctrl + X — chiqish
vim (kuchli, lekin qiyin)
$ vim fayl.txt- i — yozish rejimi
- Esc — chiqish
- :wq — saqlab chiqish
- :q! — saqlamasdan chiqish
Foundation uchun
Hozircha nano yetarli. Yoki — VS Code (kelajakda asosiy).
24. VS Code'ni terminal'dan ochish
$ code . # hozirgi papkani VS Code'da ochish
$ code fayl.txt # bitta fayl(VS Code o'rnatilgan bo'lsa)
Darsdagi topshiriqlar
Topshiriq 1 — Birinchi buyruqlar
Terminalda quyidagi buyruqlarni bajaring va natijani daftarga yozing:
pwd— qayerda turibsiz?ls— nimalar bor?whoami— kim siz?date— bugun nima sana?clear— ekranni tozalanghistory— oldingi buyruqlar
Topshiriq 2 — Papka tuzilmasi
Terminal orqali quyidagi tuzilmani yarating:
Foundation/
├── 3-oy/
│ ├── darslar/
│ ├── uy-vazifalari/
│ └── loyihalar/
│ └── scratch/
└── README.mdBuyruqlar:
$ mkdir -p Foundation/3-oy/darslar
$ mkdir -p Foundation/3-oy/uy-vazifalari
$ mkdir -p Foundation/3-oy/loyihalar/scratch
$ touch Foundation/README.mdTekshiring:
$ ls -R FoundationDaftarga natijani yozing.
Topshiriq 3 — Fayl bilan ishlash
$ cd Foundation
$ echo "# Foundation Portfolio" > README.md
$ echo "## Talaba: [Sizning ismingiz]" >> README.md
$ echo "## Sana: $(date)" >> README.md
$ cat README.mdNatija nima ko'rinadi? Daftarga yozing.
Yana:
$ cd 3-oy/loyihalar/scratch
$ touch loyiha1.sb3 loyiha2.sb3 loyiha3.sb3
$ lsTopshiriq 4 — Nusxalash va ko'chirish
$ cd Foundation
$ cp README.md README-backup.md
$ ls
$ mv README-backup.md backup.md
$ ls
$ mkdir backups
$ mv backup.md backups/
$ ls
$ ls backups/Har qadamdan keyin ls qiling. Natijani daftarga yozing.
Topshiriq 5 — Qidiruv va grep
- Find — fayllarni topish:
$ find ~/Documents -name "*.txt"Documents'da barcha .txt fayllar.
- Grep — matn qidirish:
$ echo "Salom dunyo!" > test.txt
$ echo "Salom Akmal" >> test.txt
$ echo "Xayrlashish" >> test.txt
$ grep "Salom" test.txtNatija:
Salom dunyo!
Salom Akmal- Pipe bilan birga:
$ ls -la | grep "txt"Daftarga natijalarni yozing.
Topshiriq 6 — Wildcard mashqi
$ mkdir wildcard-test
$ cd wildcard-test
$ touch fayl1.txt fayl2.txt fayl3.txt
$ touch image1.jpg image2.jpg
$ touch data.csv
$ ls *.txt # barcha txt
$ ls *.jpg # barcha jpg
$ ls fayl?.txt # ? — bitta belgi
$ ls f* # f bilan boshlanadiganHar buyruq natijasini daftarga yozing.
Tozalash:
$ cd ..
$ rm -r wildcard-testTopshiriq 7 — Nano matn muharriri
$ nano mening-eslatma.mdIchiga yozing:
# Terminal — birinchi tajriba
Bugun terminal bilan tanishdim.
Asosiy buyruqlar:
- pwd
- ls
- cd
- mkdir
- touch
- cat
- cp, mv, rm- Ctrl + O — saqlash
- Ctrl + X — chiqish
Tekshiring:
$ cat mening-eslatma.mdTopshiriq 8 — Disk va papka hajmi
$ df -h # disklar va hajmi
$ du -sh ~/Documents # Documents hajmi
$ du -sh ~/Desktop # Desktop hajmi
$ du -sh ~/Downloads # Downloads hajmiDaftarga yozing:
- Asosiy diskingiz qancha to'lgan?
- Eng katta papka qaysi?
- Qancha bo'sh joy qoldi?
Topshiriq 9 — VS Code o'rnatish va terminal'dan ochish
code.visualstudio.comsaytidan VS Code yuklang- O'rnating
- Terminal'da:
$ code --version
$ cd ~/Foundation
$ code .VS Code ochildi? Endi VS Code ichidan ham terminal ochish mumkin:
- View → Terminal (yoki Ctrl + ` )
VS Code o'rnatilganligini Drive'ga screenshot bilan yuklang.
Topshiriq 10 — Cheat sheet
Daftarga 20 ta terminal buyrug'ini yozib chiqing:
1. pwd — hozirgi papka
2. ls — papkadagi narsalar
3. ls -la — batafsil
4. cd <papka> — papkaga o'tish
5. cd .. — yuqoriga
6. cd ~ — home papkaga
...
20. exit — terminal'dan chiqishHar birini eslab qoling — keyingi darslar uchun majburiy.
Asosiy tushunchalar (lug'at)
| Termin | Qisqacha izoh |
|---|---|
| Terminal / CLI / Shell | Buyruq qatori interfeysi |
| Bash / Zsh | Unix shell turlari |
| PowerShell / CMD | Windows shell |
| Git Bash | Windows'da Linux uslubidagi shell |
| Prompt | $ yoki % belgisi |
| pwd | Hozirgi papka |
| ls / dir | Papkadagi narsalar |
| cd | Papkaga o'tish |
| mkdir | Papka yaratish |
| touch | Bo'sh fayl |
| cat | Fayl ko'rish |
| echo | Matn chiqarish |
| cp | Nusxalash |
| mv | Ko'chirish / qayta nomlash |
| rm | O'chirish |
| man / --help | Yordam |
| history | Buyruqlar tarixi |
wildcard (*, ?) | Joker belgi |
pipe (|) | Buyruqlar zanjiri |
redirect (>, >>) | Faylga yozish |
| nano / vim | Matn muharrirlari |