Skip to content

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:

  1. Git va GitHub — terminal orqali ishlaydi
  2. Dasturlash — kompilyatsiya, dasturni ishga tushirish
  3. Tezlik — tajribali odam — sichqonchaga qaraganda 10x tez
  4. Avtomatlashtirish — bir nechta vazifani birga
  5. Server — uzoq kompyuterda ishlash
  6. 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:~ $
QismMa'no
akmalFoydalanuvchi nomi
@Belgi
MacBookKompyuter 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?

bash
$ pwd
/Users/akmal

Hozir siz /Users/akmal papkada.

7. ls — papkadagi narsalar

ls — LiSt — papkadagi fayllar va papkalar.

bash
$ ls
Desktop  Documents  Downloads  Pictures  Music

ls bayroqlar

bash
$ 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.txt

Birinchi belgi:

  • d — directory (papka)
  • - — fayl

Keyingisi — huquqlar (rwx — read/write/execute).

8. cd — papkaga o'tish

cd — Change Directory — boshqa papkaga o'tish.

bash
$ 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 qaytish

Path turlari

Absolute path — ildizdan to'liq yo'l:

/Users/akmal/Documents/Foundation
C:\Users\Akmal\Documents\Foundation

Relative path — hozirgi joydan:

Documents/Foundation
../Documents
./README.md
BelgiMa'no
~Home papka
.Hozirgi papka
..Yuqori papka (parent)
/Ildiz papka

9. mkdir — yangi papka

mkdir — MaKe DIRectory.

bash
$ mkdir oquv-markazi
$ ls
oquv-markazi  Desktop  Documents

Bir nechta papka:

bash
$ mkdir oy1 oy2 oy3

Papka ichida papka:

bash
$ mkdir -p Foundation/3-oy/scratch

-p flag — kerak bo'lsa, oraliq papkalarni ham yaratadi.

10. touch — bo'sh fayl yaratish

bash
$ touch README.md
$ ls
README.md

Yoki bir nechta:

bash
$ touch fayl1.txt fayl2.txt fayl3.txt

11. cat — fayl tarkibini ko'rish

bash
$ cat README.md
# Bu mening loyiham
Bu birinchi qatordagi matn.

Faylni terminal'da ko'rsatadi.

Bir nechta fayl:

bash
$ cat fayl1.txt fayl2.txt

Ulanib ko'rinadi.

12. echo — matn chiqarish va faylga yozish

bash
$ echo "Salom dunyo!"
Salom dunyo!

Faylga yozish:

bash
$ 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
BelgiMa'no
>Faylga yozish (ustiga yozadi)
>>Faylga qo'shish

13. cp — nusxalash

cp — CoPy.

bash
$ 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.

bash
$ mv fayl1.txt fayl2.txt        # qayta nomlash
$ mv fayl.txt papka/            # boshqa papkaga
$ mv eski-nom yangi-nom         # papkani qayta nomlash

15. rm — o'chirish

rm — ReMove. Diqqat! O'chirilgan qaytarib bo'lmaydi (Korzina yo'q).

bash
$ 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

bash
$ clear     # ekranni tozalash
$ exit      # terminal'dan chiqish

Yoki Cmd + K (Mac) / Ctrl + L (Linux/Git Bash) — ekran tozalash.

17. man — qo'llanma

man — MANual.

bash
$ man ls    # ls buyrug'i haqida batafsil
$ man cp
$ man cd

Q klavishi bilan chiqish.

Yoki --help:

bash
$ ls --help
$ cp --help

18. history — buyruqlar tarixi

bash
$ history
1  cd Documents
2  ls
3  mkdir oquv-markazi
...

Eski buyruqni qayta ishga tushirish:

bash
$ !3        # 3-buyruq qayta
$ !!        # oxirgi buyruq qayta

Yoki strelka yuqoriga — oldingi buyruqlar.

19. wildcard — joker belgilar

bash
$ ls *.txt          # barcha .txt fayllar
$ rm *.tmp          # barcha .tmp o'chirish
$ cp data?.csv arxiv/  # data1.csv, data2.csv va h.k.
BelgiMa'no
*Har qanday belgilar
?Bitta belgi
[abc]a, b yoki c

20. Pipe va Redirect

Pipe |

Bir buyruqning natijasini ikkinchisiga uzatish.

bash
$ ls -la | grep txt        # ls natijasidan txt'ni qidirish
$ cat file.txt | wc -l     # file qatorlar sonini sanash

Redirect

bash
$ ls > files.txt           # natijani faylga yozish
$ ls >> files.txt          # qo'shish
$ command < input.txt      # fayldan o'qish
$ command 2> errors.txt    # xatolarni faylga

21. Foydali buyruqlar

BuyruqVazifa
whoamiFoydalanuvchi nomi
dateHozirgi sana va vaqt
calKalendar
which pythonPython qayerda?
wc fayl.txtSo'z, qator, belgi soni
head fayl.txtFaylning birinchi 10 qatori
tail fayl.txtOxirgi 10 qator
grep "so'z" fayl.txtFaylda so'z qidirish
find . -name "*.txt"Fayl qidirish
df -hDisk hajmi
du -sh papkaPapka hajmi
psHozir ishlayotgan jarayonlar
kill PIDJarayonni to'xtatish

22. Windows va Mac farqi

Mac/LinuxWindows CMD
lsdir
cd ..cd ..
mkdirmkdir
cpcopy
mvmove / rename
rmdel / rmdir
clearcls
cattype
pwdcd
~ (home)%USERPROFILE%

Git Bash

Windows'da Git Bash ishlatsangiz — Linux buyruqlari bilan ishlaydi. Foundation kursida shuni ishlating.

23. Terminal'da matn muharriri

nano (oddiy)

bash
$ nano fayl.txt

Matn yozing.

  • Ctrl + O — saqlash
  • Ctrl + X — chiqish

vim (kuchli, lekin qiyin)

bash
$ 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

bash
$ 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:

  1. pwd — qayerda turibsiz?
  2. ls — nimalar bor?
  3. whoami — kim siz?
  4. date — bugun nima sana?
  5. clear — ekranni tozalang
  6. history — oldingi buyruqlar

Topshiriq 2 — Papka tuzilmasi

Terminal orqali quyidagi tuzilmani yarating:

Foundation/
├── 3-oy/
│   ├── darslar/
│   ├── uy-vazifalari/
│   └── loyihalar/
│       └── scratch/
└── README.md

Buyruqlar:

bash
$ mkdir -p Foundation/3-oy/darslar
$ mkdir -p Foundation/3-oy/uy-vazifalari
$ mkdir -p Foundation/3-oy/loyihalar/scratch
$ touch Foundation/README.md

Tekshiring:

bash
$ ls -R Foundation

Daftarga natijani yozing.

Topshiriq 3 — Fayl bilan ishlash

bash
$ cd Foundation
$ echo "# Foundation Portfolio" > README.md
$ echo "## Talaba: [Sizning ismingiz]" >> README.md
$ echo "## Sana: $(date)" >> README.md
$ cat README.md

Natija nima ko'rinadi? Daftarga yozing.

Yana:

bash
$ cd 3-oy/loyihalar/scratch
$ touch loyiha1.sb3 loyiha2.sb3 loyiha3.sb3
$ ls

Topshiriq 4 — Nusxalash va ko'chirish

bash
$ 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

  1. Find — fayllarni topish:
bash
$ find ~/Documents -name "*.txt"

Documents'da barcha .txt fayllar.

  1. Grep — matn qidirish:
bash
$ echo "Salom dunyo!" > test.txt
$ echo "Salom Akmal" >> test.txt
$ echo "Xayrlashish" >> test.txt
$ grep "Salom" test.txt

Natija:

Salom dunyo!
Salom Akmal
  1. Pipe bilan birga:
bash
$ ls -la | grep "txt"

Daftarga natijalarni yozing.

Topshiriq 6 — Wildcard mashqi

bash
$ 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 boshlanadigan

Har buyruq natijasini daftarga yozing.

Tozalash:

bash
$ cd ..
$ rm -r wildcard-test

Topshiriq 7 — Nano matn muharriri

bash
$ nano mening-eslatma.md

Ichiga 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:

bash
$ cat mening-eslatma.md

Topshiriq 8 — Disk va papka hajmi

bash
$ df -h              # disklar va hajmi
$ du -sh ~/Documents # Documents hajmi
$ du -sh ~/Desktop   # Desktop hajmi
$ du -sh ~/Downloads # Downloads hajmi

Daftarga 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

  1. code.visualstudio.com saytidan VS Code yuklang
  2. O'rnating
  3. Terminal'da:
bash
$ code --version
$ cd ~/Foundation
$ code .

VS Code ochildi? Endi VS Code ichidan ham terminal ochish mumkin:

  • ViewTerminal (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 chiqish

Har birini eslab qoling — keyingi darslar uchun majburiy.

Asosiy tushunchalar (lug'at)

TerminQisqacha izoh
Terminal / CLI / ShellBuyruq qatori interfeysi
Bash / ZshUnix shell turlari
PowerShell / CMDWindows shell
Git BashWindows'da Linux uslubidagi shell
Prompt$ yoki % belgisi
pwdHozirgi papka
ls / dirPapkadagi narsalar
cdPapkaga o'tish
mkdirPapka yaratish
touchBo'sh fayl
catFayl ko'rish
echoMatn chiqarish
cpNusxalash
mvKo'chirish / qayta nomlash
rmO'chirish
man / --helpYordam
historyBuyruqlar tarixi
wildcard (*, ?)Joker belgi
pipe (|)Buyruqlar zanjiri
redirect (>, >>)Faylga yozish
nano / vimMatn muharrirlari

Keyingi dars

10-dars: Git asoslari →

Master IT o'quv markazi — o'qitish rejasi