AXV

Shell muhiti va I/O yo'naltirish

Tizim o'zgaruvchilari, PATH, Redirection va quvurlar (| pipe) san'ati

10-sinfDevOps1-hafta ยท 3-dars

Bugungi dars maqsadlari

Shell o'zgaruvchilari

Local vs Global muhit o'zgaruvchilari va export buyrug'i.

$PATH mexanizmi

Shell buyruqlarni qanday topadi va yangi skriptlarni ulash.

I/O va Quvurlar

STDIN, STDOUT, STDERR oqimlari va buyruqlar zanjiri (|).

Shell qudrati raqamlarda

3 ta
standart oqim (0, 1, 2)
0
avtomatlashtirish imkoniyati
1 ta
quvur (|) oraliq fayllarsiz
Quvurlar ma'lumotni diskka yozmay, to'g'ridan-to'g'ri xotirada uzatadi!
01

Shell o'zgaruvchilari

Local variables va export qilingan Environment variables

O'zgaruvchilar doirasi (Scope)

Mahalliy (Local) o'zgaruvchi Faqat shu ochiq shell ichida yashaydi PORT=8080 Quyi skriptlar uni ko'rmaydi! Muhit (Environment) o'zgaruvchisi Barcha quyi jarayonlarga meros bo'ladi export PORT=8080 Python, Node.js, Docker barchasi o'qiydi!
02

$PATH qanday ishlaydi?

Linux buyruqni diskdan qanday topadi?

$PATH bo'ylab qidiruv zanjiri

lsBuyruq kiritildi /usr/local/binTopilmadi /usr/binTopilmadi /bin/lsTopildi va ishga tushdi!
03

I/O standart oqimlari

STDIN (0), STDOUT (1) va STDERR (2)

Uchta standart ma'lumot oqimi

STDIN (0)

bosing

Standart kirish oqimi. Odatda klaviaturadan kiritiladigan ma'lumotlar.

STDOUT (1)

bosing

Standart chiqish oqimi. Buyruqning muvaffaqiyatli natijasi (ekranga chiqadi).

STDERR (2)

bosing

Standart xatolik oqimi. Dastur bajara olmagan nosozlik xabarlari.

Qayta yo'naltirish: > va >>

Faylni to'liq qayta yozish (>)

Agar fayl mavjud bo'lsa, uning ichidagi hamma narsani tozalab, yangidan yozadi.

echo "Yangi matn" > log.txt

Fayl oxiriga qo'shish (>>)

Faylning mavjud mazmuniga teginmaydi, uning eng oxirgi qatoriga yangi ma'lumot qo'shadi.

echo "Yana bir qator" >> log.txt

I/O Redirection sxemasi

Buyruq / Jarayon Process 0: STDIN (<) 1: STDOUT (>, >>) 2: STDERR (2>)
04

Quvurlar (| Pipes)

Buyruqlarni xotirada birlashtiruvchi sehrli zanjir

Quvurlar (|) ishlash mexanizmi

1-buyruq: ps aux STDOUT (barcha jarayonlar) | 2-buyruq: grep nginx STDIN (filtrlab faqat nginx)

Pipeline qurish bosqichlari

1. Xom ma'lumotni chiqarish

cat /var/log/syslog barcha loglarni oqimga uzatadi.

2. Kalit so'z bilan filtrlash

| grep "ERROR" faqat xatolik qatorlarini ajratib oladi.

3. Natijani hisoblash

| wc -l ajratilgan xatoliklar sonini sanab beradi.

Amaliy buyruqlar namunalari


# Tizim xotirasini tekshirib faylga yozish
free -h > memory.log

# Xatoliklarni /dev/null ga yo'qotish
find / -name "*.conf" 2> /dev/null

# O'zgaruvchilarni .bashrc ga doimiy saqlash
echo 'export PATH="$PATH:$HOME/scripts"' >> ~/.bashrc
  
source ~/.bashrc qilsangiz, terminalni qayta ochmasdan o'zgarish kuchga kiradi.

Tezkor bilim sinovi

Buyruqning standart xatoliklarini (STDERR) ekranga chiqarmasdan yo'qotish uchun qaysi ifoda qo'llaniladi?

To'g'ri: STDERR oqimi 2-deskriptorga ega, shuning uchun '2> /dev/null' ishlatiladi!

Amaliy topshiriq 20 daqiqa

Osonecho $PATH ni ko'ring va MY_VAR="test" yarating.
O'rtals /etc | grep "cron" | wc -l zanjirini ishga tushiring.
Qiyin~/.bashrc ga bitta alias qo'shing va source orqali faollashtiring.

Bugungi dars xulosasi

O'rganilgan mavzular

Shell muhiti, export va $PATH mantiqi, STDIN/STDOUT/STDERR oqimlari, redirection va quvurlar (|).

Uyga vazifa

~/.bashrc faylida qulay aliaslar yaratish va buyruqlar zanjirini mustahkamlash.