16-dars: Terminal
4-blokXotira, OS va fayl13–16 darslar
Nega bu muhim
“Nega bu muhim” bo'limiga havolaKino dagi “xakerlar” doim qora ekranga oq matn yozadi. Bu shunchaki kino emas: professional dasturchilar, server administratorlari va olimlar haqiqatan kunining katta qismini terminalda o’tkazadi. Nega, axir sichqoncha qulayroq-ku?
Chunki terminal — til, tugmalar esa — menyu. Menyuda faqat oshpaz taklif qilganini tanlaysiz; tilda esa o’zingiz xohlagan gapni tuzasiz. Bu darsda o’sha tilning asoslarini o’rganasiz — 20 topshiriqli mashq bilan.
Bu darsdan keyin siz
- terminal grafik interfeysdan nimasi bilan kuchli ekanini tushuntira olasiz
- buyruq anatomiyasini bilasiz: nom, argument, bayroq
- fayl daraxti bo’ylab yura olasiz: pwd, ls, cd va yo’llar
- pipe yordamida buyruqlarni zanjirga ulay olasiz
Nazariya
“Nazariya” bo'limiga havolaTerminal nega o’lmadi
“Terminal nega o’lmadi” bo'limiga havolaGrafik interfeys 40 yildan beri bor, terminal esa undan ham qari — lekin yo’qolgani yo’q. Sabablari jiddiy: aniqlik (buyruq — bir ma’noli, “o’sha tugmani bos” emas), takrorlanuvchanlik (buyruqni saqlab, yuz marta qayta ishlatish mumkin), avtomatlashtirish (buyruqlar ketma-ketligi — tayyor skript) va masofa (serverda grafik interfeys yo’q, terminal esa istalgan joydan ulanadi).
terminalterminal / command line
Kompyuter bilan matn orqali muloqot interfeysi: siz buyruq yozasiz, tizim natija bilan javob beradi.
Buyruqning anatomiyasi
“Buyruqning anatomiyasi” bo'limiga havolaHar buyruq gap kabi tuziladi: fe’l + to’ldiruvchi. cat xat.txt — “xat.txt ni o’qi”. Birinchi so’z — buyruq nomi, qolganlari — argumentlar.
Haqiqiy terminallarda bayroqlar ham bor — buyruq ishini o’zgartiruvchi qo’shimchalar: ls -l (batafsil ro’yxat). Bizning o’quv terminalimizda bayroqlar deyarli yo’q — asosiy g’oyaga e’tibor qarating.
14-darsdagi yo’l shu yerda jonlanadi: cd hujjatlar — daraxt bo’ylab bir qadam pastga, cd .. — bir qadam yuqoriga, pwd — “hozir qayerdaman?”.
Pipe: buyruqlar konveyeri
“Pipe: buyruqlar konveyeri” bo'limiga havolaTerminalning eng chiroyli g’oyasi — | belgisi (pipe, quvur): bitta buyruqning chiqishi ikkinchisining kirishiga ulanadi. ls | wc — “ro’yxatni chiqir, uni sanagichga uzat”.
pipepipe
Buyruqlarni zanjirga ulovchi mexanizm: chapdagi buyruq chiqishi o’ngdagisiga kirish bo’lib beriladi. Kichik asboblardan katta ish yig’iladi.
Ehtiyotkorlik darsi
“Ehtiyotkorlik darsi” bo'limiga havolaTerminal kuchli — va shafqatsiz: rm o’chirgan fayl savatga tushmaydi, so’roq ham ko’p hollarda bo’lmaydi. Buyruq nima qilishini bilmasangiz — avval o’qing, keyin bajaring.
Bizning o’quv terminalimiz xavfsiz: fayl tizimi soxta, xohlagancha tajriba qiling. Qayta boshlash hammasini asliga qaytaradi.
Sinab ko’r
“Sinab ko’r” bo'limiga havola20 topshiriq sizni kutmoqda: yo’l topishdan pipe’gacha. Topshiriq panelda yozilgan, yangi buyruqlar qavsda beriladi. Adashsangiz yordam yozing. Yigirmatasini ham bajarsangiz — Terminal Ustasi nishoni.
Terminal mashqi: 20 topshiriq
Topshiriqni o'qing, buyruqni yozib Enter bosing. Adashsangiz: yordam
Bu brauzerdagi soxta terminal: pwd, ls, cd, cat, mkdir, echo kabi buyruqlar ishlaydi va 20 ta topshiriq ketma-ket tekshiriladi. Fayl tizimi virtual — kompyuteringizga tegmaydi.
JavaScript'siz mashq: kompyuterdagi haqiqiy terminalni oching va darsdagi buyruqlar jadvalini birma-bir sinang.
- Terminal — til: aniq, takrorlanuvchan, avtomatlashtiriladigan, masofadan ishlaydi
- Buyruq = nom + argumentlar (+ haqiqiy tizimlarda bayroqlar)
- Daraxtda yurish:
pwd(qayerdaman),ls(nima bor),cd(ko’chish) - Pipe buyruqlarni konveyerga ulaydi — Unix falsafasi: kichik asbob, katta ish
- Terminal so’roq bermaydi: buyruqni tushunmasdan bajarmang
O’zingizni sinang
“O’zingizni sinang” bo'limiga havola1Terminalning grafik interfeysdan ustun keladigan uchta vaziyatini ayting.
Javobni ko'rish
Birinchi: yuz faylni bir buyruq bilan qayta nomlash — sichqoncha bilan yuz marta bosish o’rniga. Ikkinchi: uzoqdagi serverni boshqarish — u yerda grafik interfeys yo’q. Uchinchi: ishni skriptga yozib avtomatlashtirish — menyu bosishlarni “saqlab” bo’lmaydi, buyruqlarni bo’ladi.
2cd hujjatlar va cd .. buyruqlari daraxtda qaysi yo'nalishda yuradi?
Javobni ko'rish
cd hujjatlar — pastga: joriy papka ichidagi “hujjatlar”ga kiradi. cd .. — yuqoriga: ota papkaga qaytadi. Ikki nuqta “..” har doim “bir qavat tepa” degan maxsus nom.
3echo Salom > xat.txt bilan echo Salom ning farqi nimada?
Javobni ko'rish
echo Salom natijani ekranga chiqaradi. > belgisi esa oqimni burib yuboradi: natija ekran o’rniga xat.txt fayliga yoziladi (fayl bo’lmasa yaratiladi). Chiqishni yo’naltirish — pipe’ning aka-ukasi: u ham oqimni boshqa joyga ulaydi.
4ls | wc zanjirida ma'lumot qanday oqadi va natija nimani bildiradi?
Javobni ko'rish
ls papka tarkibini qatorlar ro’yxati qilib chiqaradi; pipe bu ro’yxatni ekranga emas, wc ga uzatadi; wc qator va so’zlarni sanaydi. Natija — papkadagi narsalar soni. Ikkala buyruq ham bir-biri haqida hech narsa bilmaydi — konveyer ularni ulaydi.
5Nega serverlarda deyarli har doim faqat terminal bo'ladi?
Javobni ko'rish
Grafik interfeys resurs yeydi (xotira, protsessor) va masofadan sekin ishlaydi. Server esa har baytini asosiy ishga berishi kerak. Terminal matn uzatadi — bu tez, ishonchli va istalgan zaif internetda ham ishlaydi.
Amaliy topshiriq
Endi haqiqiy terminalda! Windows’da PowerShell (Win tugmasi → “powershell”), Mac/Linux’da Terminal oching.
Birinchi qism. Simulyatorda o’rgangan mashqni takrorlang: pwd, ls
(Windows’da ham ishlaydi), cd bilan hujjatlar papkasiga boring, mkdir sinov
bilan papka yarating, ichiga kirib echo salom > xat.txt yozing, cat xat.txt
(PowerShell’da ham ishlaydi) bilan o’qing.
Ehtiyot bo’ling: bu haqiqiy fayl tizimi. rm ni faqat o’zingiz yaratgan
sinov fayllarida ishlating.
Ikkinchi qism. Har bajargan buyrug’ingizni va natijasini daftarga yozing — kamida 15 buyruq bo’lsin (takrorlashlar hisobga kiradi).
Uchinchi qism. Oxirida sinov papkasini ichidagi fayli bilan o’chirib,
iz qoldirmang.
Topshiriladigan natija: 15+ buyruqlik jurnal + “terminal menga qayerda asqotishi mumkin?” savoliga bir paragraf javob.
Darsni belgilash uchun JavaScript kerak. Bu progressni saqlash uchun ishlatiladi — darslikning o'zi JavaScript'siz ham to'liq o'qiladi.