Global nomi: Working with Files
O'zbek nomi: Fayllar bilan ishlash
Cat (concatenate - birlashtirish) - fayllarni ekranga chiqaradi
# Bitta faylni ko'rish
cat kitob.txt
# Bir nechta faylni birlashtirish
cat fayl1.txt fayl2.txt
# Satr raqamlari bilan
cat -n dastur.pyHayotiy misol: Daftaringizni ochib, hamma sahifalarni birdaniga o'qish - bu cat
# Misol:
cat salom.txt
# Natija:
# Salom Dunyo!
# Bu mening birinchi faylim.Less - katta fayllarni qulay ko'rish uchun
less katta_fayl.logTugmalar:
Spaceyokif- keyingi sahifab- oldingi sahifa/qidiruv- matn qidirishn- keyingi topilmaq- chiqishG- fayl oxirigag- fayl boshiga
Hayotiy misol: Kitobni o'qiyapsiz, sahifama-sahifa - bu less
# Dastlabki 10 satr (default)
head fayl.txt
# Birinchi 5 satr
head -n 5 fayl.txt
# Birinchi 100 bayt
head -c 100 fayl.txtHayotiy misol: Gazeta sarlavhasini o'qish - bu head
# Server log faylining boshini tekshirish
head -n 20 /var/log/syslog# Oxirgi 10 satr
tail fayl.txt
# Oxirgi 20 satr
tail -n 20 fayl.txt
# Real vaqtda kuzatish (log monitoringi uchun!)
tail -f /var/log/nginx/access.logHayotiy misol: Yangi xabarlarni kuzatish - bu tail -f
# Dastur ishlayotganida loglarni kuzatish
tail -f app.log
# Ctrl+C - to'xtatish# Oddiy nusxalash
cp manba.txt nusxa.txt
# Katalogga nusxalash
cp fayl.txt /home/sardor/Documents/
# Katalogni barcha mazmuni bilan nusxalash
cp -r papka1/ papka2/
# Nusxalashni tasdiqlash so'rash
cp -i manba.txt nusxa.txt
# Verboz rejim (nima qilyapti ko'rsatadi)
cp -v fayl1.txt fayl2.txtParametrlar:
-r(recursive) - kataloglarni ichma-ich nusxalash-i(interactive) - ustiga yozishdan oldin so'rash-v(verbose) - jarayonni ko'rsatish-u(update) - yangi bo'lsa nusxalash-p(preserve) - ruxsatlar va vaqtni saqlash
Hayotiy misol: Word faylini "Nusxa.docx" deb saqlash - bu cp
# Loyihangizni backup qilish
cp -r mening_saytim/ mening_saytim_backup/
# Bir nechta faylni bir joyga
cp fayl1.txt fayl2.txt fayl3.txt /backup/# Faylni qayta nomlash
mv eski_nom.txt yangi_nom.txt
# Boshqa katalogga ko'chirish
mv fayl.txt /home/sardor/Documents/
# Bir nechta faylni ko'chirish
mv fayl1.txt fayl2.txt fayl3.txt /backup/
# Katalogni qayta nomlash
mv eski_papka yangi_papkaHayotiy misol: Faylni boshqa papkaga olib o'tish yoki qayta nomlash
# Rasmlarni tartibga solish
mv IMG_001.jpg tatil_2024_001.jpg
mv tatil_2024_001.jpg ~/Pictures/2024/
# Tasdiqlash bilan
mv -i muhim_fayl.txt /backup/# Oddiy o'chirish
rm fayl.txt
# Tasdiqlash so'rash
rm -i muhim_fayl.txt
# Katalogni o'chirish
rm -r papka/
# Majburiy o'chirish (xavfli!)
rm -rf papka/
# Verboz rejim
rm -v fayl.txtrm -rf / - bu xavfli! Butun tizimni o'chiradi!
Parametrlar:
-i(interactive) - har bir fayl uchun so'rash-r(recursive) - kataloglar uchun-f(force) - majburiy, so'ramasdan-v(verbose) - jarayonni ko'rsatish
Hayotiy misol: Korzinkaga tashlash - bu rm
# Vaqtinchalik fayllarni tozalash
rm -f /tmp/*.tmp
# Eski backup larni o'chirish
rm -rf backups/2023/# O'chirishdan oldin trash papkaga ko'chirish
mkdir -p ~/.trash
mv fayl.txt ~/.trash/
# Keyinchalik tozalash
rm -rf ~/.trash/*# Hozirgi katalogda barcha .txt fayllar
find . -name "*.txt"
# Bosh-kichik harfga e'tibor bermay
find . -iname "*.TXT"
# Kataloglarni topish
find /home -type d -name "Downloads"
# Oxirgi 7 kunda o'zgargan fayllar
find . -mtime -7
# 100MB dan katta fayllar
find . -size +100MHayotiy misol: Uydan kalitni qidirish - bu find
# Barcha Python fayllarni topish
find ~/projects -name "*.py"
# Bo'sh fayllarni topish va o'chirish
find . -type f -empty -delete# Loyiha strukturasini yaratish
mkdir -p ~/bash_amaliyot/{kodlar,rasmlar,hujjatlar}
# Test fayllar yaratish
echo "Salom Dunyo" > ~/bash_amaliyot/test.txt
echo "Python dasturi" > ~/bash_amaliyot/kodlar/app.py
# Fayllarni ko'rish
cat ~/bash_amaliyot/test.txt
# Nusxalash
cp ~/bash_amaliyot/test.txt ~/bash_amaliyot/test_backup.txt
# Ko'chirish
mv ~/bash_amaliyot/kodlar/app.py ~/bash_amaliyot/kodlar/main.py
# Topish
find ~/bash_amaliyot -name "*.txt"
# O'chirish (ehtiyot bilan!)
rm ~/bash_amaliyot/test_backup.txt- Vazifa 1:
darslarpapkasidasalom.txtyarating, ichiga "Salom Bash!" yozing vacatbilan o'qing - Vazifa 2: Ushbu faylni
salom_backup.txtnomi bilan nusxalang - Vazifa 3:
salom.txtfaylinisalom_yangi.txtga qayta nomlang - Vazifa 4: Barcha .txt fayllarni yangi
matnlarpapkasiga ko'chiring - Vazifa 5: Uyingizda barcha .log fayllarni toping va ro'yxatini ko'ring