Mundarija (31)
- Bu darsda
- 1. Nega bu kerak?
- 2. Klassik va zamonaviy: umumiy manzara
- 2.1 Qaysi buyruq nimaga almashadi
- 2.2 O'rnatish
- 3. bat — rangli cat
- 4. eza — rangli ls va papka daraxti
- 5. zoxide — papkalarni eslab qoladigan cd
- 5.1 Qanday ishlaydi
- 5.2 .bashrc ga ulash
- 6. fzf — taxminiy qidiruv
- 6.1 "Fuzzy" nima degani
- 6.2 Pipe bilan ishlatish
- 6.3 Klaviatura yorliqlarini yoqish
- 7. jq — JSON bilan ishlash
- 8. htop va btop — jarayonlar monitori
- 9. Foydali prompt: Starship va Oh My Zsh
- 9.1 Starship
- 9.2 Oh My Zsh
- 9.3 Dotfiles: sozlamalarni ko'chirib yurish
- 10. Ko'p uchraydigan xatolar
- 10.1 command not found — o'rnatgandan keyin ham
- 10.2 .bashrc ni o'zgartirib, source qilmaslik
- 10.3 Belgilar o'rnida kvadratchalar
- 10.4 Serverda zamonaviy vositani kutish
- 11. Mashqlar
- 1-mashq (oson): bat bilan tanishuv
- 2-mashq (o'rta): zoxide ni ishga tushirish
- 3-mashq (qiyin): jq va pipe
- 12. Real ishda
- Xulosa
Zamonaviy CLI vositalari: bat, eza, zoxide, fzf, jq va Starship
Qisqacha: Zamonaviy CLI vositalari — klassik buyruqlarning qulayroq "yangi avlodi".
batfaylni rangli ko'rsatadi (cato'rniga),eza— rangli ro'yxat va daraxt (lso'rniga),zoxidepapkaga bitta so'z bilan sakraydi (cdo'rniga). Yanafzftaxminiy yozilgan nomni topadi,jqJSON'ni o'qiydi, Starship esa promptni foydali qiladi. Ular paket menejeri bilan o'rnatiladi, klassik buyruqlarni esa baribir bilish kerak.
Bu darsda
- Klassik buyruqlarning zamonaviy muqobillarini taniysiz va ularni
winget,brewyokiaptbilan o'rnata olasiz. batbilan faylni rangli va qator raqamlari bilan ko'rasiz,ezabilan papka daraxtini chizasiz.zoxideni.bashrcga ulab, uzun yo'llarni yozmasdan papkaga sakraysiz.fzfbilan nomini aniq eslamagan faylni topasiz,jqbilan JSON'dan kerakli qiymatni olasiz.btopva Starship nima berishini bilasiz va eng ko'p uchraydigan o'rnatish xatolarini tuzata olasiz.
Oldin bilishingiz kerak: Dastur o'rnatish va paket menejerlari, Oqimlar, pipe va yo'naltirish, Muhit o'zgaruvchilari, PATH va shell sozlamalari.
1. Nega bu kerak?
Tasavvur qiling: har kuni ishga bir xil yo'ldan borasiz. Eski mashina ham sizni manzilga yetkazadi. Lekin navigatori bor mashinada yo'lni eslab yurish shart emas — u o'zi ko'rsatadi.
Terminalda ham shunday. Biz o'rgangan ls, cat, cd, top buyruqlari 1970–1980 yillarda yaratilgan. Ular ishonchli va hamma serverda bor. Lekin ba'zi ishlarda noqulay:
catbilan kod faylini ochsangiz, hammasi bir rangda, qator raqamlari yo'q.- Chuqur papkaga borish uchun har safar
cd ~/loyihalar/mijozlar/toshkent-sayt/srckabi uzun yo'l yoziladi. - Nomini aniq eslamagan faylni topish uchun
findbuyrug'ini to'g'ri tuzish kerak.
So'nggi yillarda dasturchilar shu buyruqlarning qulayroq muqobillarini yaratdi. Ular klassik buyruqlarni o'chirmaydi — yoniga qo'shiladi. Serverda ls va cat baribir kerak bo'ladi, shaxsiy kompyuteringizda esa ish tezroq va yoqimliroq ketadi.
Bu darsdagi vositalar majburiy emas. Keyingi darslar ularsiz ham tushunarli bo'ladi. Faqat jq ni o'rnatib qo'yishni maslahat beramiz — uni JSON darsida yana ishlatamiz.
2. Klassik va zamonaviy: umumiy manzara
2.1 Qaysi buyruq nimaga almashadi
| Klassik | Zamonaviy | Nima qo'shadi |
|---|---|---|
cat |
bat |
Ranglar, qator raqamlari |
ls |
eza |
Ranglar, daraxt ko'rinishi |
cd |
zoxide (z) |
Papkani eslab qoladi |
find, Ctrl + R |
fzf |
Taxminiy yozuv bilan qidiruv |
top |
htop, btop |
Grafik va rangli jarayonlar ro'yxati |
| — | jq |
JSON'ni o'qish va filtrlash |
| oddiy prompt | Starship | Promptda foydali ma'lumot |
Shu "yangi avlod"dan yana ikki vositani siz allaqachon ko'rgansiz. tldr — buyruq anatomiyasi darsida: man o'rniga qisqa misollar beradi. rg (ripgrep) — qidiruv darsida: grep ning tez muqobili.
Bu vositalarning ko'pi Rust yoki Go dasturlash tillarida yozilgan. Siz uchun buning ma'nosi bitta: ular juda tez ishlaydi va Windows, macOS, Linux'da bir xil buyruq bilan chaqiriladi.
2.2 O'rnatish
Hammasi paket menejeri bilan o'rnatiladi. Windows'da winget ning --id va -e (aniq moslik) flaglari bilan yozamiz:
winget install --id sharkdp.bat -e
winget install --id eza-community.eza -e
winget install --id ajeetdsouza.zoxide -e
winget install --id junegunn.fzf -e
winget install --id jqlang.jq -e
winget install --id Starship.Starship -emacOS'da hammasi bitta qatorda:
brew install bat eza zoxide fzf jq btop starshipUbuntu (va WSL) da:
sudo apt update
sudo apt install bat eza zoxide fzf jq btopNomlar 2026-yil holatida tekshirilgan. Uch nozik joy bor:
- Ubuntu'da
batning buyrug'ibatcat. Nom boshqa paket bilan to'qnashgani uchun shunday qilingan. Xohlasangiz, alias qo'shing:alias bat='batcat'. - Starship Ubuntu'da rasmiy skript bilan o'rnatiladi:
curl -sS https://starship.rs/install.sh | sh. Bu yerdacurlo'rnatish skriptini internetdan yuklab oladi,| shesa uni darhol bajaradi. - O'rnatgandan keyin terminalni yopib, qayta oching. Aks holda yangi dastur PATH da ko'rinmaydi.
Tekshirib ko'ring: Ubuntu'da
batni o'rnatdingiz, lekinbat fayl.txtyozsangizcommand not foundchiqyapti. Nima uchun?
Javob
Ubuntu'da bu dastur batcat nomi bilan o'rnatiladi. batcat fayl.txt deb yozing yoki ~/.bashrc ga alias bat='batcat' qatorini qo'shing. Dastur o'rnatilgan, faqat nomi boshqacha.
3. bat — rangli cat
cat faylni shunchaki ekranga to'kib tashlaydi. bat esa uni kod muharriridagidek ko'rsatadi:
bat salom.shEkranda nima o'zgaradi:
- Sintaksisni ranglash (syntax highlighting) — kalit so'zlar bir rangda, satrlar boshqa rangda, izohlar kulrangda. Rangli yozuvni ko'z tezroq "o'qiydi".
bat200 dan ortiq til va format ranglarini biladi. - Chap tomonda qator raqamlari chiqadi. Xato xabarida "5-qatorda xato" desa, darhol topasiz.
- Yuqorida fayl nomi yoziladi.
- Fayl uzun bo'lsa,
batunilessichida ochadi. Chiqish —qtugmasi, xuddilessdagi kabi.
Yana ikki foydali flag:
bat -p salom.sh # -p (plain): ranglar qoladi, raqam va ramka yo'q
bat -A salom.sh # -A (show all): ko'rinmas belgilarni ko'rsatadi-A ayniqsa foydali. CRLF darsida Windows qator oxiriga ko'rinmas \r qo'yishini ko'rgan edik. bat -A bu belgilarni ko'zga ko'rinadigan qilib chiqaradi. Shunda ^M xatosi sababini bir qarashda topasiz.
4. eza — rangli ls va papka daraxti
eza — ls ning zamonaviy muqobili. Oddiy chaqirilsa, fayllarni turiga qarab bo'yaydi: papkalar bir rangda, rasmlar boshqa rangda.
Eng ko'p ishlatiladigan shakllari:
eza -la # ls -la kabi: hammasi, batafsil
eza --tree --level=2 # papkalar daraxti, 2 qavat chuqurlikkacha
eza -l --git # har fayl yonida Git holati--tree natijasi taxminan shunday:
.
├── index.html
├── rasmlar
│ └── logo.png
└── style.cssFayl tizimi darsida papkalar daraxti haqida gapirgan edik. eza --tree o'sha daraxtni terminalda chizib beradi. Loyiha tuzilmasini hamkasbingizga ko'rsatish uchun juda qulay.
--git flagi har fayl yonida uning Git'dagi holatini harf bilan ko'rsatadi: masalan, N — yangi (new), M — o'zgargan (modified). Git — kodning o'zgarishlar tarixini saqlaydigan dastur. Uni kursda alohida qismda o'rganamiz, hozir bilish shart emas.
Maslahat: Internetda
exanomini ham uchratasiz. Buezaning eski nomi:exa2023-yilda yangilanmay qoldi, hamjamiyat uniezanomi bilan davom ettirdi. Yangi o'rnatishda doimezani tanlang.
eza ni har kuni ishlatsangiz, alias qo'shish qulay:
alias ll='eza -la --git'Endi ll deb yozsangiz kifoya. Faqat alias ls='eza' qilishdan ehtiyot bo'ling: eza ning ba'zi flaglari ls nikidan farq qiladi va eski skriptlar kutilmagan natija berishi mumkin.
Tekshirib ko'ring: Hamkasbingiz "loyihangiz qanday tuzilgan?" deb so'radi. Qaysi buyruq papkalarni daraxt ko'rinishida, faqat 2 qavat chuqurlikkacha chiqaradi?
Javob
eza --tree --level=2. --tree daraxt chizadi, --level=2 esa chuqurlikni cheklaydi. Cheklov bo'lmasa, katta loyihada minglab qator chiqib ketadi.
5. zoxide — papkalarni eslab qoladigan cd
5.1 Qanday ishlaydi
zoxide siz kirgan har bir papkani eslab boradi. Qaysi papkaga ko'p va yaqinda kirgan bo'lsangiz, uning "bali" shuncha yuqori bo'ladi. Keyin yo'lning bir bo'lagini yozsangiz, eng yuqori balli mos papkaga o'tkazadi.
O'xshatish: taksi haydovchisi. Birinchi marta manzilni to'liq aytasiz: "Chilonzor, 9-kvartal, 15-uy". Keyingi safar "uyga" desangiz kifoya — u eslab qolgan.
cd ~/loyihalar/mijozlar/toshkent-sayt/frontend # 1-marta
cd ~ # uyga qaytdik
z frontend # frontend'gaKo'ryapsizmi? Uchinchi qatorda to'liq yo'l yozilmadi. z "frontend" so'zi bor, eng ko'p ishlatilgan papkani o'zi topdi.
Muhim nuqta: zoxide faqat oldin kirgan papkangizni biladi. O'rnatgan zahoti z frontend desangiz, u hech narsa topmaydi. Bir-ikki kun odatdagidek cd bilan yuring — keyin z ishlay boshlaydi.
5.2 .bashrc ga ulash
zoxide o'rnatilgach, uni shell'ga "tanishtirish" kerak. Buning uchun ~/.bashrc fayli oxiriga bitta qator yoziladi (shell sozlamalari darsida bu faylni ko'rgan edik):
echo 'eval "$(zoxide init bash)"' >> ~/.bashrc
source ~/.bashrcBu qatorni bo'laklab ko'ramiz:
zoxide init bash—zoxidebash uchun kerakli sozlama kodini ekranga chiqaradi.$( ... )— qavs ichidagi buyruq chiqargan matnni oladi.eval— o'sha matnni xuddi siz yozgandek buyruq sifatida bajaradi. Natijada shell'dazvazibuyruqlari paydo bo'ladi.>>— qatorni fayl oxiriga qo'shadi (oqimlar darsidan eslang:>faylni o'chirib yozadi,>>esa qo'shadi).source ~/.bashrc— terminalni yopmasdan sozlamani qayta o'qiydi.
macOS'dagi zsh uchun bash o'rniga zsh va ~/.zshrc yoziladi. Deyarli barcha vositalar shu qolipda ulanadi, shuning uchun uni bir marta tushunib olsangiz, keyingilari oson ketadi.
flowchart LR
A["Paket menejeri<br/>bilan o'rnatish"] --> B["~/.bashrc ga<br/>init qatori"]
B --> C["source ~/.bashrc<br/>yoki yangi terminal"]
C --> D["Yangi buyruq<br/>ishlaydi"]Tekshirib ko'ring:
zoxideo'rnatildi va.bashrcga ulandi. Lekinz loyihayozsangizzoxide: no match foundchiqyapti. Sababi nima bo'lishi mumkin?
Javob
zoxide hali bu papkani bilmaydi — siz unga o'rnatishdan keyin cd bilan hech kirmagansiz. Bir marta cd bilan to'liq yo'lni yozib kiring. Keyingi safar z loyiha ishlaydi. "No match found" — "mos kelgan narsa topilmadi" degani.
6. fzf — taxminiy qidiruv
6.1 "Fuzzy" nima degani
fzf (fuzzy finder — "taxminiy qidiruvchi") nomni aniq yozishni talab qilmaydi. Harflar to'g'ri tartibda kelsa, orasida boshqa harflar bo'lsa ham topadi.
Masalan, idxht deb yozsangiz, index.html topiladi: i, d, x, h, t harflari shu nomda aynan shu tartibda bor. Telefoningizdagi kontaktlar qidiruviga o'xshaydi — "Mlk" yozsangiz ham "Malika" chiqadi.
Oddiy ishlatilishi:
fzfEkranda joriy papka va uning ichidagi barcha fayllar ro'yxati chiqadi. Yozishni boshlaysiz — ro'yxat har harfda qisqaradi. ↑/↓ bilan tanlaysiz, Enter bosasiz. fzf tanlangan fayl yo'lini ekranga chiqaradi va tugaydi. Chiqish — Esc.
6.2 Pipe bilan ishlatish
fzf ning kuchi — pipe bilan birga. U istalgan ro'yxatni oladi va undan birini tanlatadi:
history | fzf # oldingi buyruqlardan birini topish
cat "$(fzf)" # topilgan faylni ochishIkkinchi qatorda $(fzf) — fzf tanlagan fayl yo'li. U cat ga argument bo'lib beriladi. Qo'shtirnoq nomda bo'sh joy bo'lsa ham to'g'ri ishlashi uchun kerak.
6.3 Klaviatura yorliqlarini yoqish
fzf bash'ga uchta qulay yorliq qo'sha oladi. ~/.bashrc ga shu qatorni yozing:
eval "$(fzf --bash)"| Yorliq | Nima qiladi |
|---|---|
Ctrl + R |
Buyruqlar tarixidan taxminiy qidiruv |
Ctrl + T |
Tanlangan fayl yo'lini buyruqqa qo'yadi |
Alt + C |
Tanlangan papkaga cd qiladi |
Terminalda harakatlanish darsida Ctrl + R ni ko'rgan edik. fzf bilan u ancha kuchliroq: butun ro'yxat ko'rinadi va taxminiy yozuv ishlaydi.
Diqqat:
--bashflagifzfning 0.48 va undan yangi versiyalarida bor. Eski versiyadaunknown option: --bashchiqadi.fzf --versionbilan tekshiring. Masalan, Ubuntu 24.04 ningaptidagifzf— 0.44. U yerdaevalqatori o'rniga shu qatorni yozing:source /usr/share/doc/fzf/examples/key-bindings.bash.
Tekshirib ko'ring:
fzfoynasidarsmlgdeb yozdingiz. Ro'yxatdarasmlar/logo.pngvareadme.mdbor. Qaysi biri qoladi?
Javob
rasmlar/logo.png. Unda r, s, m, l, g harflari aynan shu tartibda uchraydi (orasida boshqa harflar bo'lsa ham). readme.md da esa s harfi umuman yo'q.
7. jq — JSON bilan ishlash
JSON — dasturlar ma'lumot almashadigan matn formati. Uni JSON darsida to'liq o'rganamiz. Hozircha bilish kerak bo'lgani: server javoblari va sozlama fayllari ko'pincha JSON'da bo'ladi va ko'pincha bitta uzun qatorga siqilgan holda keladi.
Masalan, ob-havo.json faylida shunday qator bor:
{"shahar":"Toshkent","harorat":31,"shamol":4,"namlik":20}To'rtta qiymat bo'lsa ham o'qish noqulay. Yuzta qiymat bir qatorga tiqilganini tasavvur qiling. jq uni chiroyli tartiblab beradi:
jq . ob-havo.jsonNatija:
{
"shahar": "Toshkent",
"harorat": 31,
"shamol": 4,
"namlik": 20
}Bu yerda . (nuqta) — "butun hujjat" degani. Nuqtadan keyin nom yozsangiz, faqat o'sha qism chiqadi:
jq '.shahar' ob-havo.json # "Toshkent"
jq -r '.shahar' ob-havo.json # Toshkent-r (raw — "xom") flagi qo'shtirnoqlarni olib tashlaydi. Natijani boshqa buyruqqa uzatishda shunisi qulay. Filtrni bittalik qo'shtirnoqqa olish odat: shunda shell uning ichidagi belgilarni o'zgartirmaydi.
jq ning imkoniyatlari juda ko'p. Ichma-ich qiymatlar va ro'yxatlar bilan ishlashni JSON darsida ko'ramiz.
Tekshirib ko'ring:
jq '.namlik' ob-havo.jsonnima chiqaradi?-rqo'shsangiz, natija o'zgaradimi?
Javob
20. -r qo'shsangiz ham 20 qoladi. -r faqat qo'shtirnoqni olib tashlaydi, son esa qo'shtirnoqsiz chiqadi. Farq faqat satrlarda ko'rinadi: "Toshkent" va Toshkent.
8. htop va btop — jarayonlar monitori
Jarayonlar darsida top buyrug'ini ko'rgan edik. U ishlaydi, lekin ekrani oq-qora va o'qish qiyin.
htop va btop xuddi shu ma'lumotni qulayroq ko'rsatadi:
- Har bir protsessor yadrosi va xotira bandligi rangli chiziq (grafik) ko'rinishida.
- Jarayonlarni o'qlar bilan tanlash, sichqoncha bilan bosish mumkin.
- Ro'yxatni xotira yoki protsessor bo'yicha saralash oson.
htop da F9 — tanlangan jarayonni to'xtatish (kill), F10 yoki q — chiqish. btop da k — to'xtatish, q — chiqish. Ikkalasi ham Linux serverda ayniqsa foydali: "Server nega sekin?" savoliga birinchi qarash shu yerda bo'ladi.
Windows'da odatda Vazifalar menejeri (Task Manager, Ctrl + Shift + Esc) yetarli. btop ni Windows'da ham ishlatmoqchi bo'lsangiz, uning alohida btop4win versiyasi bor: winget install --id aristocratos.btop4win -e.
9. Foydali prompt: Starship va Oh My Zsh
9.1 Starship
Terminal darsida prompt nima ekanini ko'rgan edik: Ali@NOUTBUK MINGW64 ~ $. U faqat kimligingiz va qayerdaligingizni aytadi.
Starship — promptni "aqlli" qiladigan dastur. U kerak bo'lgan joyda qo'shimcha ma'lumot chiqaradi:
- Joriy papka — qisqa va tushunarli ko'rinishda.
- Git branch nomi (
main) — agar papka Git loyihasi bo'lsa. Branch — loyihaning alohida ish "tarmog'i", Git bilan birga o'rganamiz. - Node.js yoki Python versiyasi — agar papkada shunday loyiha bo'lsa.
- Oxirgi buyruq 2 soniyadan ko'p ishlagan bo'lsa — qancha vaqt olgani.
- Oxirgi buyruq xato bilan tugasa — belgi qizil rangga kiradi. Bu exit code darsidagi
$?ning ko'rinadigan shakli.
Ulash — xuddi zoxide dagidek, ~/.bashrc oxiriga bitta qator:
eval "$(starship init bash)"Starship bash, zsh va PowerShell'da bir xil ishlaydi. Shuning uchun uni boshlovchiga maslahat beramiz.
9.2 Oh My Zsh
Oh My Zsh — zsh shell'i uchun tayyor sozlamalar to'plami: ko'plab mavzular (theme) va qo'shimchalar (plugin). macOS'da standart shell — zsh, shuning uchun Mac foydalanuvchilari orasida mashhur. Bash va PowerShell'da ishlamaydi.
Tanlov oddiy: Starship yoki Oh My Zsh mavzusi. Ikkalasini bir vaqtda prompt uchun ishlatish shart emas — bir-birini bosib ketadi.
Tekshirib ko'ring: Siz Windows'da Git Bash, uyda esa macOS'da zsh ishlatasiz. Ikkala joyda bir xil prompt kerak. Starship yoki Oh My Zsh — qaysi biri mos?
Javob
Starship. U bash, zsh va PowerShell'da bir xil ishlaydi. Oh My Zsh esa faqat zsh uchun — Git Bash'da ishlamaydi.
9.3 Dotfiles: sozlamalarni ko'chirib yurish
Bu darsda ~/.bashrc ga bir nechta qator qo'shdik: zoxide, fzf, Starship, alias'lar. Endi tasavvur qiling: kompyuteringiz buzildi yoki yangisini oldingiz. Hammasini xotiradan qayta yozasizmi?
Fayl tizimi darsida nomi nuqta bilan boshlanadigan sozlama fayllari dotfiles deyilishini ko'rgan edik. Terminal sozlamalari ham shular qatorida: .bashrc, .zshrc, .gitconfig. Dasturchilar ularni bitta papkaga yig'ib, zaxira qilib qo'yadi. Eng oddiy usul — nusxa:
mkdir -p ~/dotfiles
cp ~/.bashrc ~/dotfiles/Yangi kompyuterda esa teskarisi: cp ~/dotfiles/.bashrc ~/. Ko'pchilik bu papkani GitHub'da saqlaydi — shunda istalgan kompyuterdan yuklab olsa bo'ladi. Git va GitHub'ni kursda alohida o'rganamiz.
Diqqat: Dotfiles'ni ochiq joyga yuklashdan oldin ichini tekshiring.
.bashrcga kimdir parol yoki token yozib qo'ygan bo'lishi mumkin:export API_KEY=.... Bunday qatorlar hech qachon ochiq joyga chiqmasin.
10. Ko'p uchraydigan xatolar
10.1 command not found — o'rnatgandan keyin ham
bash: eza: command not foundTarjimasi: "eza degan buyruq topilmadi". Uch sabab bo'lishi mumkin:
- Terminal o'rnatishdan oldin ochilgan. U eski PATH bilan ishlayapti. Terminalni yopib, qayta oching.
- Ubuntu'da nom boshqacha:
bato'rnigabatcat. - O'rnatish aslida xato bilan tugagan. O'rnatish buyrug'ining oxirgi qatorlarini qayta o'qing.
10.2 .bashrc ni o'zgartirib, source qilmaslik
.bashrc ga eval "$(zoxide init bash)" yozdingiz, lekin z ishlamayapti. Ochiq terminal faylni faqat ishga tushganda o'qiydi. source ~/.bashrc bajaring yoki yangi terminal oching.
10.3 Belgilar o'rnida kvadratchalar
eza --icons yoki Starship ishlatganda ba'zi belgilar □ yoki ? bo'lib chiqadi. Sabab — shrift. Bu ikonkalar maxsus Nerd Font shriftlarida bor. nerdfonts.com saytidan bittasini (masalan, "JetBrainsMono Nerd Font") o'rnating. Keyin terminal sozlamalarida shriftni o'shanga almashtiring.
10.4 Serverda zamonaviy vositani kutish
Kompyuteringizda bat va eza ga o'rganib qoldingiz. Boshqa odamning serveriga ulandingiz — u yerda ular yo'q. Bunda sarosimaga tushmang: klassik cat, ls, cd hamma joyda bor. Aynan shuning uchun oldingi darslarda avval ularni o'rgandik.
11. Mashqlar
1-mashq (oson): bat bilan tanishuv
bat ni o'rnating. Shell skript darsida yozgan istalgan .sh faylingizni cat bilan, keyin bat bilan oching. Farqni ayting. So'ng bat -A bilan ochib, qator oxirida nima ko'rinishini tekshiring.
Yechim
cat salom.sh
bat salom.sh
bat -A salom.shbat da kalit so'zlar rangli, chapda qator raqamlari, tepada fayl nomi bor. bat -A da har qator oxirida ␊ belgisi ko'rinadi — bu LF. Agar ␍␊ ko'rsangiz, fayl CRLF bilan saqlangan. Bunday skript Linux'da ^M xatosini beradi — CRLF darsidagi tuzatish usulini qo'llang.
2-mashq (o'rta): zoxide ni ishga tushirish
zoxideni o'rnating va~/.bashrcga ulang.mkdir -pbilan chuqur papka yarating:~/mashq/toshkent/chilonzor/bozor. (-p— oraliq papkalarni ham yaratadi, fayllar darsidan eslang.)- Unga bir marta
cdbilan kiring, keyincd ~bilan uyga qayting. - Endi faqat
zbilan o'sha papkaga qayting.
Yechim
echo 'eval "$(zoxide init bash)"' >> ~/.bashrc
source ~/.bashrc
mkdir -p ~/mashq/toshkent/chilonzor/bozor
cd ~/mashq/toshkent/chilonzor/bozor
cd ~
z bozor
pwdpwd natijasida .../mashq/toshkent/chilonzor/bozor yo'li chiqadi. z bozor ishladi, chunki 4-qatorda siz o'sha papkaga bir marta kirdingiz va zoxide uni eslab qoldi. Agar no match found chiqsa, source ~/.bashrc bajarilganini tekshiring.
3-mashq (qiyin): jq va pipe
Yuqoridagi ob-havo.json faylini yarating (JSON qatorini nusxalab, faylga saqlang). Keyin:
jqbilan faqat haroratni chiqaring.- Shaharni qo'shtirnoqsiz chiqaring.
jq .natijasini pipe orqaliwc -lga berib, chiroyli ko'rinishda nechta qator borligini sanang.
Yechim
jq '.harorat' ob-havo.json # 31
jq -r '.shahar' ob-havo.json # Toshkent
jq . ob-havo.json | wc -l # 6Uchinchi buyruqda jq chiroyli matnni chiqaradi, | uni wc -l ga uzatadi, wc -l esa qatorlarni sanaydi. Faylning o'zida bitta qator bor edi, jq uni 6 qatorga yoydi: ochuvchi {, to'rtta qiymat va yopuvchi }. Natija boshqacha bo'lsa, JSON'ni nusxalashda biror qism tushib qolgan.
12. Real ishda
- Kundalik ish. Ko'p dasturchilarning
.bashrcyoki.zshrcfaylidazoxide,fzfva Starship ulangan. Yangi kompyuter olganda ular birinchi bo'lib o'z dotfiles papkasini GitHub'dan yuklab oladi — 10 daqiqada tanish muhit tayyor. - Server bilan ishlash.
jqAPI javoblarini tekshirishda har kuni kerak bo'ladi.btopyokihtop— "server nega sekin?" degan savolga birinchi qarash. - Loyiha tuzilmasini ko'rsatish. Hujjatlarda va savol-javob saytlarida
eza --treenatijasini ko'p ko'rasiz. - Intervyu. Vositalar nomi so'ralmaydi. Lekin terminalda erkin ishlashingiz jonli kod yozish (live coding) intervyusida darhol seziladi.
Xulosa
- Zamonaviy vositalar klassik buyruqlarni o'chirmaydi — qulayroq muqobil sifatida yoniga qo'shiladi.
bat— ranglicat(-Ako'rinmas belgilarni ko'rsatadi),eza— ranglilsva--treedaraxti.zoxidepapkalarni eslab qoladi: bir martacd, keyinz nom.fzftaxminiy qidiradi va pipe bilan ishlaydi;jqJSON'ni tartiblaydi va qiymat ajratadi.zoxide,fzfva Starship.bashrcdagieval "$(... init bash)"qatori bilan ulanadi, keyinsource.- Sozlama fayllarini (dotfiles) bitta papkada zaxiralang — lekin ichida parol bo'lmasin.
- Serverda bu vositalar bo'lmasligi mumkin — klassik buyruqlarni unutmang.
Shu dars bilan terminal moduli tugadi. Endi terminalda erkin ishlay olasiz.
Keyingi dars: Ko'r-ko'rona yozish va dasturchi belgilari — klaviaturaga qaramasdan yozishni va {}, [], ` kabi dasturchi belgilarini to'g'ri barmoq bilan terishni o'rganamiz.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!