Terminal komandalari |Part 3
Tags: cpp, vscode, github, linux
Published: 2022-04-26 10:31:22

## cd filename
- xohlagan papkaga o'ta oladi.

## mkdir $(date +'%d-%m-%Y')
- bugungi sana bilan papka yaratadi.

## code.
- shu papkani butunligicha VSCode (Visual Studio Code)da ochadi.

## #include 
- kerakli kutubxonani chaqirish uchun ishlatiladi.

## iostream
- (input output stream - kiritish chiqarish oqimi), terminalga nimadir kiritish(input) yoki chiqarish(output) uchun ishlatiladigan eng kerakli kodlar avvaldan yozilgan kutubxona.

##cout 
- (console(terminalning 2-nomi) output) - berilgan tekstni consolega chiqarish uchun ishlatiladigan c++ da allaqachon yozib qo'yilgan kod, u orqali bir nechta komandalarni ulab yozsa ham bo'ladi. Masalan, cout << 2222 << endl << "2  2" <<endl; 

##std
- (standart namespace) - iostream ichida bir-biriga o'xshash komandalar takrorlanib qolmasligi uchun komandalar tartiblab chiqilgan va joylashtirilgan papka

##endl
- end line - qatorning tugashi, kursorni pastga olib qo'yadi. Agar endl qo'yilmasa kursor o'rnida % belgisi o'sha qatorning oxirida paydo bo'ladi. Bu komanda doimo cout bilan birga va tashqarida (<< dan keyin) keladi. endl doimo qator oxirida kelishi shart emas. Masalan: cout << "Hello world" << endl << "Salom dunyo" << endl;

##<<
- consolega oqimni yo'naltiradi

## using namespace std;
- std namespace ichidagi komandalarni ishlatish buyurug'i, shunda har bir qatorga std yozish shart bo'lmaydi

## rectangle selection 
```cpp
<<"std :">>
<<"std :">> belgilash, o'chirishda qo'llaniladi.
```

## spacelar
- (kodni to'g'ri formatida 2,4-qator va return 0; dan oldin qo'yiladi) - readabilityni oshirish uchun qo'llaniladi, har bir kodblok orasiga bittadan space qo'yiladi. Bir-biriga aloqador kodbloklar spacesiz yozilaveradi

## Tab
- int main () { hududidaligini anglatish uchun format bo'yicha cout bitta tab ichkarida yoziladi. ("control + {" kursor bitta tab ichkariga (o'ngga) kiradi; "control + }" kursor bitta tab tashqariga (chapga) chiqadi). Ikkita qatorni birdan surish uchun ikkita qatorni birdan belgilab tab bosiladi, lekin hech qachon tab o'rniga space (probel) bilan surilmaydi, chunki bitta tab xotiradan 1 bayt joy egallaydi, 4 ta space 4 bayt joy egallaydi. 

## int main ()
- c++ ichida biz yaratmoqchi bo'lgan bitta funksiya. Bu deyarli barcha dasturlash tili(c++, java, csha, javascript, phyton)da main method funksiya bor, ba'zilarida yashirin lekin bor. Dasturni ishga tushirganimizda "int main ()" qismidan boshlab dastur ishga tushadi, ya'ni "int main ()" dasturni kirish qismi hisoblanadi. "int main ()" yo'q yoki 2 ta bo'lsa dastur ishlamaydi. <<"int main ()" yagona bo'lishi shart va bo'lishi shart!>>  

## { 
- int main () hududini ochadi va dasturning eng muhim qismini o'z ichini o'z ichiga oladi. "int main()" dan pastda turishi kerak. ("shift + {" bosilsa avtomatik "{}" paydo bo'ladi, 2 ta Enter bilan pastga tushib "return 0;" yoziladi va bitta yuqoridan tab orqali surilib, cout buyrug'i beriladi),

## return 0;
- (return - qaytish yoki qaytarish) - sistema dasturni ishga tushirgandan so'ng undan xabardor bo'lib turadi (protocolga ko'ra), dastur yoki funksiyalar sistemaga 0 ni qaytaradi, bu dasturning muvaffaqiyatli tugaganligini bildiradi agar 0 qaytmasa sistema dasturni muvaffaqiyatli tugamadi deb hisoblaydi va qadimgi Windowslarda(hozirgi Windowslarda emas) error beradi, ovoz chiqaradi va "return 0;" bo'lmasa userga dastur muvaffaqiyatli tugamaganligini ko'rsatadi. Bundan tashqari, 0 dan tashqari hech qanday sonni qo'yib bo'lmaydi, chunki 0 dan tashqari har qanday son sistemani crash bo'lganligini anglatadi. Masalan, replit.comda ham "return 1;" deb buyruq berilsa, dastur tugaydi va "exit status 1"- error beradi, chunki dastur tugaydi lekin sistema uni muvaffaqiyatsiz tugadi deb hisoblaydi.   

## ./"name"
- dasturni ishga tushirish

## "string"
- tekstlar odatda " " ichida yoziladi va string deyiladi. c++ sonlar va stringlarni har xil rangda chiqaradi. Tekstga " " qo'ymasa bo'lmaydi, songa shart emas. Shunchaki sonni print qilmoqchi bo'lsa ikki usulda ham (qo'shtirnoqli va qo'shtirnoqsiz) yozsa bo'ladi. Sonlar ustida matematik amallarni (+,-,/,*)ham bajarsa bo'ladi, agar u qo'shtirnoqqa olingan bo'lsa bajarib bo'lmaydi, dastur qo'shtirnoq ichidagi sonlarni string - tekst deb qabul qiladi(tekstlar ustida arifmetik amallarni bajarib bo'lmaydi). Stringlar bir nechta belgi - characterlardan tashkil topgan bo'ladi, ya'ni string ichidagi belgilar ingliz tilida character deyiladi va cout komandasi stringlarni print qila oladi, bir vaqtning o'zida bir nechta stringlarni ham print qila oladi. Masalan, cout << "2222" << "Salom dunyo" << 2222 << endl;

## &
- and - bir nechta operatsiyalarni ulab yozish, dasturlarni ishga tushirish uchun ishlatiladi. Masalan, "clear && g++ main.cpp -o dastur(file name) && ./dastur"

## g++ main.cpp(file name) -o dastur
- dasturni compilatsiya qilish

## alias
- (elias-"meaning - used to indicate that a named person is also known or more familiar under another specified name") taxallus berish. Masalan, alias run = 'clear && g++ main.cpp -o dastur && ./dastur' - shunda dasturni ishga tushirish uchun "run" deb yozish kifoya. Lekin bu komanda har terminal o'chib yongan(session)da o'chib ketadi, u har bir session uchun xotirada vaqtinchalik saqlanadi, xolos. Session tugaganda u ham o'chadi yana qaytadan run deb alias kiritishga to'g'ri keladi, shuning uchun alias komandalarni qayergadir saqlab qo'ygan ma'qul.

## //
- izoh - comment - c++da kodni ichida kodga izoh qoldirib ketish mumkin va kodni izohga aylantirib qo'yish ham mumkin, chunki run buyrug'i berilgandan so'ng compilator izohlarni o'qimaydi. Buning uchun izoh oldidan 2ta slash // (va space) qo'yiladi, odatda kodlar izohga aylanganda rangi o'zgaradi. Izohlar odatda kodni tushuntirish uchun yoziladi, lekin kodni ham kommentga olib qo'ysa bo'laveradi. Kommentni avtomatik yoqib o'chirish uchun "Control + / (slash- klaviaturada ? belgisi)" bosiladi(bitta bossa yonadi, yana bossa o'chadi). Kommentni tepasidan ham, pastidan ham kod yozsa bo'ladi. Hamma coutlarni izohga aylantirish uchun ularni belgilab, "Control + /" bosiladi va coutlar kommentariy (izoh)ga olinadi va dastur tomonidan o'qilmaydi.

## Alt + Shift + Down(Windowsda)
## Option + Shift + Down (Macbookda) 
- kodni yozib o'tirmasdan dublicate qilish uchun o'sha qatorga kursorni etib, yuqoridagi klavishlar bosiladi. (Linuxda ishlamaydi- buning uchun Visual Studio Codeda online tarzda avtomatic ishlaydigan qilsa bo'ladi, ya'ni VSC o'rnatib nastroykasidan ishlaydigan qilib qo'yish kerak) 

## error
- main.cpp(file name):9(qator raqami):21(ustun raqami)

## \ - backslash
- Faqat string bilan ishlaydigan son bilan ishlamaydigan maxsus belgilar bor va ular maxsus vazifalarni bajaradi. Hamma maxsus belgilar backslash(delete - backspace tugmasining ostida joylashgan) bilan boshlanadi. Ikkinchi nomi escape character deb nomlangan maxsus belgi. (") - belgisini terminals chop etish uchun (\") - qilib yoziladi. (\) - belgisini chop qilish (\\) orqali amalga oshiriladi.

##\n
- new line =endl, lekin sondan keyin qo'yilmaydi. Ikkita belgidan tashkil topganday ko'rinadi, lekin bitta belgi-character hisoblanadi.