|a| |=| |u| |g| |o| qayerda: u,g,o, a – foydalanuvchi, guruh, boshqa foydalanuvchilar, barcha kirish huquqi guruhlari uchun huquqlarni o'rnatish. + ,–, = - qo'shish, o'chirish, mos ravishda ruxsat o'rnatish.
r,w,x,x,u,g, o – o'qish, yozish, ijro etish, ijro etish huquqi agar bunday huquq mavjud bo'lsa, har qanday kirish guruhlari egasi bilan bir xil, boshqa foydalanuvchilar bilan bir xil. filename-huquqlarni o'zgartiradigan fayl nomi. [student@ns student]$ ls -l lesson5.txt -rw------- 1 student student 39 Nov 19 15:17 lesson5.txt [student@ns student]$ chmod g+rw lesson5.txt [student@ns student]$ ls -l lesson5.txt -rw-rw---- 1 student student 39 Nov 19 15:18 lesson5.txt [student@ns student]$ chmod o=u lesson5.txt
[student@ns student]$ ls -l lesson5.txt -rw-rw-rw- 1 student student 39 Nov 19 15:18 lesson5.txt
[student@ns student]$ chmod o-w lesson5.txt [student@ns student]$ ls -l lesson5.txt -rw-rw-r-- 1 student student 39 Nov 19 15:19 lesson5.txt [student@ns student]$_ Mutlaq rejimdan foydalanish uchun faylga 3 ikkilik guruh shaklida kirish huquqini taqdim etish kerak. Misol uchun: rwx r - x r-- kabi ko'rinadi: 111 101 100 Endi har bir ikkilik guruh 8-Rich raqamiga o'tkaziladi: 111 – 7, 101 – 5, 100 – 4. Bunday huquqlarni faylga o'rnatish uchun buyruqni bajarish kerak: [student@ns student]$ ls -l lesson5.txt -rw-rw-r-- 1 student student 39 Nov 19 15:19 lesson5.txt [student@ns student]$chmod 755 lesson5.txt
[student@ns student]$ ls -l lesson5.txt -rwxr-xr-- 1 student student 39 Nov 19 15:19 lesson5.txt
[student@ns student]$_ Talabalar uchun topshiriq: lesson5 faylining huquqlarini o'zgartirishga harakat qiling.txt va quyidagilarni belgilang: r W x r - - - r- (744), r - - - w- - - x(421), - x - w - r - (124). Shuningdek, ularga ramziy shaklda ham xuddi shunday qilishni taklif qilish. Buyruq o'zgartirish (o'zgartirish egasi-egasi o'zgartirish) - fayl egasi o'zgartirish imkonini beradi. Ushbu buyruqdan foydalanish uchun siz joriy fayl egasi yoki ildiz huquqlariga ega bo'lishingiz kerak. Synopsis jamoasi oddiy: chown foydalanuvchi nomi: groupname filename, qayerda username - foydalanuvchi nomi-yangi fayl egasi; groupname - guruh nomi-yangi fayl egasi; filename-egasi o'rnini olgan fayl nomi. Buyruqning sintaksisidagi guruh nomi ko'rsatilmaydi, faqat fayl egasi o'zgartiriladi. Chgrp buyrug'i fayl egasi-guruhini o'zgartirish uchun ishlatiladi. Uning sintaksisi quyidagicha: chgrp groupname filename, Qayerda: groupname-fayl tegishli bo'lgan guruh nomi filename-o'zgartirilgan fayl nomi.Shuni yodda tutingki, chown va chmod buyruqlar faqat foydalanuvchi-fayl egasi va ildiz bo'lishi mumkin va chgrp buyrug'i foydalanuvchi - fayl egasi, guruh fayl egasi va ildiz bo'lishi mumkin.4.Fayllar va kataloglarga o'rnatilishi mumkin bo'lgan bir nechta maxsus huquqlar mavjud. "Jarayonlar"mavzusini o'rganishda ulardan ba'zilari haqida gapiramiz. Lekin hozir ko'rib chiqaylik. Bu AAK sticky bit (biriktirma bit) deb nomlangan.Yunixning birinchi versiyalarida ushbu bit dasturni ishga tushirishda tizimni xotirada saqlash uchun ishlatish uchun ishlatilgan. So'ngra, uni ishga tushirish uchun dasturga keyingi murojaat qilish juda kam vaqt sarfladi, chunki qurilmadan kodni o'qish endi kerak emas edi. Fayllar uchun va bugungi kunda Linuxda bu bitning bir xil qiymati bor. Lekin kataloglar uchun bu xususiyat yangi ma'noga ega bo'ldi. Agar yopishqoq bit katalogga o'rnatilgan bo'lsa, faqat fayl egasi bo'lgan foydalanuvchi bunday katalogdan fayllarni o'chirib tashlashi mumkin va faqat faylga yozish huquqiga ega bo'lsa. Guruh egasi va boshqa foydalanuvchilar, hatto faylda ro'yxatdan o'tish huquqi bo'lsa ham, uni sticky bit katalogiga o'rnatilganda o'chira olmaydi.Ilova bitlari chmod buyrug'i bilan ramziy shaklda o'rnatiladi:chmod +t filename.
Dars 5.Mavzu: fayllar bilan ishlash.Sinf turi: ma'ruza, amaliy mashg'ulotlar.Maqsad: ma'lumotni fayllardan konsol ekraniga olib chiqish uchun o'qituvchiga qattiq ko'nikmalar berish.O'quv masalalari:Matn ma'lumotlarini ekranga chiqarish. Cat, tac jamoalari,more, less, head, tail, od.2. Man yordam qo'llanmasini ko'rish dasturi.3.Qayta yo'naltirish chiqish. Stdin, stdout, stderr tushunchasi.Kanallar. Operatorlar / va<,>,>>.4. Axborotni filtrlash. Muntazam ifodalar. Jamoa grep.5. Arxivlash. Tar va gzip dasturlari.Dars jarayoni.1.Linux-da fayllar bilan ishlash asosiy ko'nikmalardan biridir. Ushbu darsda siz va men ma'lumotlarni fayllardan ekranga chiqarish usullarini bilib olamiz. Men darhol rezervasyon qilaman-endi faqat oddiy (muntazam) fayllarni nazarda tutaman.Ularning ichidagi ma'lumotlar 2 turida – matn ASCII yoki ikkilik bo'lishi mumkin. Ushbu turdagi ma'lumotlarning har biri uchun uni ekranga chiqarishga qodir dasturlar mavjud.Matnli fayllar uchun Cat, tac, more, less, head va tail buyruqlar eng ko'p ishlatiladi.Keling, ularni batafsil ko'rib chiqaylik:cat filename - buyruq ekranda fayl matn ma'lumotlarni ko'rsatish uchun ishlatiladi. Misol uchun: [student@localhost student]$ cat lesson6_st.txt.Bu ekranda ko'rsatishga muvaffaq bo'lgan birinchi matnli fayl.12 qator matnli ma'lumotlarni o'z ichiga oladi.Bunday fayl Cat buyrug'i bilan ko'rsatilishi mumkin.Teskari tartibda, bunday fayl tac buyrug'i bilan ko'rsatilishi mumkin.Unda qatorlarni nl buyrug'i bilan hisoblashingiz mumkin.This a first text file, where You see into your screen.His lenght is 12 lines. This file printing with command cat.Inverse output make command tac.Calculate lines in file with help command nl.[student@localhost student]$_ Cat buyrug'i bir nechta parametrlarga ega. Eng ko'p ishlatiladigan narsalarni tasvirlab beramiz:-b – -number-nonblank) - barcha bo'sh satrlarni raqamlash;-n – - number) - barcha satrlarni raqamlash;-s – --squeeze-blank) - bir nechta ketma-ket bo'sh satrlarni ko'rsatish bir bo'sh chiziq shaklida; -T – - Show-tabs) - tabulyatsiya belgilarini ko'rsatish, ularni"^|";-E (- Show – ends) - chiziqning oxiridagi belgilarni "$"deb ko'rsatish.Keling, ushbu parametrlarning ayrimlarini ishlatishga harakat qilaylik:[student@localhost student]$ cat -b lesson6_st.txt 1 agar ekranda namoyish muvaffaq birinchi matn fayli.2.12 ta matnli ma'lumotni o'z ichiga oladi.3 bunday fayl Cat buyrug'i bilan ko'rsatilishi mumkin.4 teskari tartibda bunday fayl tac buyrug'i bilan ko'rsatilishi mumkin.5 unda qatorlarni nl buyrug'i bilan hisoblashingiz mumkin.. This a first text file, where You see into your screen.7 His lenght is 12 lines.8 This file printing with command cat.9 Inverse output make command tac.10 Calculate lines in file with help command nl.[ student@localhost student]$ cat -n lesson6_st.txt 1 agar ekranda namoyish muvaffaq birinchi matn fayli.2.12 ta matnli ma'lumotni o'z ichiga oladi.3 bunday fayl Cat buyrug'i bilan ko'rsatilishi mumkin.4.teskari tartibda bunday fayl tac buyrug'i bilan ko'rsatilishi mumkin.5.unda qatorlarni nl buyrug'i bilan hisoblashingiz mumkin.6.7.8 This a first text file, where You see into your screen.9 His lenght is 12 lines.10 This file printing with command cat.11 Inverse output make command tac.12 Calculate lines in file with help command nl.[ student@localhost student]$ cat -E lesson6_st.txt.Bu ekranda ko'rsatishga muvaffaq bo'lgan birinchi matnli fayl.$ 12 qator matnli ma'lumotlarni o'z ichiga oladi.$.Bunday fayl Cat buyrug'i bilan ko'rsatilishi mumkin.$Teskari tartibda, bunday fayl tac buyrug'i bilan ko'rsatilishi mumkin.$Unda qatorlarni nl buyrug'i bilan hisoblashingiz mumkin.$$$This a first text file, where You see into your screen.$ His lenght is 12 lines.$This file printing with command cat.$Inverse output make command tac.$Calculate lines in file with help command nl.$[student@localhost student]$_Bundan tashqari, o'qituvchi o'qituvchilarga cat buyrug'idan foydalanishga va uning parametrlarini o'zgartirishga harakat qilish huquqini beradi.tac filename-bu buyruq fayldan ma'lumotni teskari tartibda ko'rsatish uchun ishlatiladi.[student@localhost student]$ tac lesson6_st.txt.Calculate lines in file with help command nl..Inverse output make command tac.This file printing with command cat.His lenght is 12 lines.This a first text file, where You see into your screen.Unda qatorlarni nl buyrug'i bilan hisoblashingiz mumkin.Teskari tartibda, bunday fayl tac buyrug'i bilan ko'rsatilishi mumkin.Bunday fayl Cat buyrug'i bilan ko'rsatilishi mumkin.12 qator matnli ma'lumotlarni o'z ichiga oladi.Bu ekranda ko'rsatishga muvaffaq bo'lgan birinchi matnli fayl.[student@localhost student]$_Odatiy bo'lib, ushbu buyruq uchun yozuvlarni ajratuvchi ildiz satrining (/n) belgisi hisoblanadi. Lekin bu holat parametr-s (- separator=)yordamida o'zgartirilishi mumkin:
[student@localhost student]$ tac --separator=" " lesson6_st.txt nl.command help with file in lines tac.Calculate command make output cat.Inverse command with printing file lines.This 12 is lenght screen.His your into see You where file, text first a nl.Bu buyruq Tac satrlari uni bo'lishi mumkin.Buyruqni hisoblash uchun faylni teskari mushuk bilan ko'rsatishingiz mumkin.Buyruqda siz ma'lumot faylini ko'rsatishingiz mumkin.Bunday 12 matn satrlari ekranda mavjud.In on sizga qaysi faylni ko'rsatishga muvaffaq bo'ldi, matn birinchi [ student @ localhost student]$Biroq, fayl hajmi ekranda mos keladigan qatorlar sonidan ancha yuqori bo'lgan vaziyat bo'lishi mumkin. Bunday holda, Cat dasturidan foydalanganda siz faylni qulay o'qiy olmaysiz, chunki u juda tez ko'rsatiladi. Bu vaziyatni engish uchun ko'proq va kamroq jamoalar bizga yordam beradi.batafsil fayl nomi-ushbu buyruq uzoq fayllarni qismlarga ajratish imkonini beradi. Misol uchun:[student@localhost student]$ more lesson6_bt.txt.KDE interaktiv ish muhiti .Boshqacha aytganda, bu dasturlarning to'plami,texnologiya va hujjatlar,shaxsiy foydalanuvchilar hayotini osonlashtirish,kompyuter. KDE ish stantsiyalarini maqsad qiladi..UNIX nazorati ostida. Uning o'ziga xos xususiyatlari orasida.xususiyatlar-tarmoqdagi" shaffof " ish va zamonaviy ish falsafasi.Ushbu ish muhitini yaratuvchilar jamiyatdir butun dunyo bo'ylab tarqalgan dasturchilar. Ular odamlar-bepul dasturiy ta'minot ishlab chiquvchilari ta'minot - ularning asosiy vazifasi
yuqori sifatli dasturiy mahsulotni chiqarish,bu foydalanuvchi qulaylik bilan ta'minlaydi,uning barcha hisoblash kuchidan foydalaning.kompyuter.KDE, mavjud bo'lgan MacOS yoki Windows asosidagi tizimlarga o'xshash UNIX ostida ish stantsiyalari uchun ish muhitini qulay foydalanishga bo'lgan ehtiyojga javob sifatida paydo bo'ldi. Ushbu maqsadga erishish uchun asosiy vositalar-dasturlararo aloqalarni takomillashtirish, komponentlarni qayta ishlatish, texnologiya"drag and drop", bitta ko'rinish va yana ko'p narsalar. Shunday qilib, KDE ko'proq narsani taklif qiladi.UNIX derazalarining an'anaviy menejerlari. Barqarorlik, ölçeklenebilirlik va ochiqlik bular --More--(56%) ko'proq buyruq ikki kalitlari o'tish uchun foydalanadi – bo'sh joy (keyingi Ekranni ko'rsatish) va Enter (keyingi qatorni ko'rsatish). Ammo yana bir kamchilik bor-matnni faqat oldinga siljitish mumkin. Ya'ni, agar siz allaqachon ikkinchi Ekranni ko'rsangiz, unda siz birinchi bo'lib qaytib kela olmaysiz. Ushbu muammoni less jamoasi osongina hal qiladi..less filename-har qanday uzunlikdagi fayllarni har qanday yo'nalishda siljitish orqali ko'rish imkonini beradi. Misol uchun:[student@localhost student]$ less lesson6_bt.txt.KDE interaktiv ish muhiti.Boshqacha aytganda, bu dasturlarning to'plami, texnologiya va hujjatlar shaxsiy foydalanuvchilar hayotini osonlashtirish kompyuter. KDE ish stantsiyalarini maqsad qiladi.UNIX nazorati ostida. Uning o'ziga xos xususiyatlari orasida xususiyatlar-tarmoqdagi" shaffof " ish va zamonaviy ish falsafasi.Ushbu ish muhitini yaratuvchilar jamiyatdir,butun dunyo bo'ylab tarqalgan dasturchilar. Ular odamlar-bepul dasturiy ta'minot ishlab chiquvchilari ta'minot - ularning asosiy vazifasi yuqori sifatli dasturiy mahsulotni chiqarish, bu foydalanuvchi qulaylik bilan ta'minlaydi,uning barcha hisoblash kuchidan foydalaning,kompyuter.KDE, mavjud bo'lgan MacOS yoki Windows asosidagi tizimlarga o'xshash UNIX ostida ish stantsiyalari uchun ish muhitini qulay foydalanishga bo'lgan ehtiyojga javob sifatida paydo bo'ldi. Ushbu maqsadga erishish uchun asosiy vositalar-dasturlararo aloqalarni takomillashtirish, komponentlarni qayta ishlatish, texnologiya,"drag and drop", bitta ko'rinish va yana ko'p narsalar. Shunday qilib,KDE ko'proq narsani taklif qiladi.UNIX derazalarining an'anaviy menejerlari.Barqarorlik, ölçeklenebilirlik va ochiqlik bular Unixni shubhasiz tanlovga aylantirgan fazilatlar lesson6_bt.txt lines 1-30/47 59%.Less jamoasi quyidagi asosiy kombinatsiyalarni tushunadi:Enter (pastga o'q) - pastga bir qatorga o'ting;Bo'sh joy (sahifa pastga) - matn pastga sahifaga o'ting;Sahifa yuqoriga-matn yuqoriga sahifaga o'ting;yuqoriga o'q-matn ustida satr yuqoriga o'ting;/ - qidiruv;Bosh sahifa-matn boshiga o'tish;End-matn oxiriga o'ting;q-less dasturi chiqish. Lekin biz butun faylni namoyish qilish kerak emas, balki faqat biz izlayotgan nima aniq ishonch hosil qilish kerak bo'lsa, u holda bizga buyruq boshlig'i va tail yordam beradi. head filename1 [filename2 ...]- sukut bo'yicha faylning birinchi satrining 10 ta satrini ko'rsatadi. Bosh buyrug'i parametrlarni o'rnatishi mumkin, bu erda eng ko'p ishlatiladigan:-n lines-fayl boshidan emas, balki 10 va Lines satrlarni olib tashlang;-C bayt-fayl boshidan bytes bayt olib chiqish;-q-fayl sarlavhalarini chop qilmang (bir nechta chiqish bilanbir vaqtning o'zida fayllar).[student@localhost student]$ head lesson6_bt.txt,KDE interaktiv ish muhiti .Boshqacha aytganda, bu dasturlarning to'plami,texnologiya va hujjatlarshaxsiy foydalanuvchilar hayotini osonlashtirish kompyuter. KDE ish stantsiyalarini maqsad qiladi.UNIX nazorati ostida. Uning o'ziga xos xususiyatlari orasidaxususiyatlar-tarmoqdagi" shaffof " ish va qulaydir.
Dars 6.Mavzu: Jarayonlar.Sinf turi: ma'ruza, amaliy mashg'ulotlar.O'quv masalalari:1. Linuxdagi jarayonlar. Jarayon identifikatorlari. Jinlar.2. PS jamoasi.3. Jarayonlarga kirish huq uqi. Haqiqiy va samarali,identifikatorlar. Bit SUID va SGID.4. Jarayonlarni boshqarish. Uzatish.5. Qanchadan-qancha jamoalar, nohup, kill, killall.1. Avvalgi mavzularni ko'rib chiqayotib, biz tez-tez "jarayon"ta'rifini buzdik. Lekin jarayon nima?Jarayon-kompyuter xotirasiga Yuklangan dasturiy kod va ma'lumotlar majmui tushunchasi. Jarayon ishlaydigan dastur (dastur) yoki buyruq emas, chunki dastur bir vaqtning o'zida bir nechta jarayonlarni yaratishi mumkin. Jarayon kodi hozirgi vaqtda bajarilishi shart emas, chunki jarayon uyqu holatida bo'lishi mumkin. Bunday holda, bunday jarayonning kodini bajarish to'xtatiladi. Jarayon faqat 3 davlatlari mavjud:Ish jarayoni-hozirgi vaqtda ushbu jarayonning kodi amalga oshiriladi.Kutish jarayoni - hozirgi vaqtda jarayon kodi bajarilmaydi,har qanday hodisani kutish (tugmani bosish klaviatura, tarmoqdan ma'lumot olish va h. k.)Jarayon zombi – jarayonning o'zi endi mavjud emas, uning kodi va ma'lumotlari,Ramdan tushirilgan, ammo yozib olish,jarayonlar jadvali bir yoki bir nechta
sabablari.Tizimdagi har bir jarayon 1 dan 65535 (PID – Process Identifier) va ota – ona jarayoni identifikatorlari (PPID-ota-ona jarayoni identifikatori) oralig'ida raqamli identifikatorlar (shaxsiy raqamlar) bilan belgilanadi. PID-turli xil ko'rish va jarayonni boshqarish vositalaridan foydalangan holda operatsion tizimdagi jarayonga murojaat qilishimiz mumkin bo'lgan jarayonning nomi. PPID, uning xususiyatlarini va imkoniyatlarini sezilarli darajada aniqlaydigan jarayonlar o'rtasidagi munosabatlarni belgilaydi. Dasturning ishlashi uchun zarur bo'lmagan boshqa parametrlar "jarayonning atrofi"deb ataladi. Ushbu parametrlardan biri-boshqaruv terminali - barcha jarayonlarga ega emas. Muayyan terminalga bog'liq bo'lmagan jarayonlar "jinlar" (daemons) deb ataladi. Foydalanuvchi tomonidan boshlangan bunday jarayonlar sessiya oxirida o'z ishlarini yakunlamaydi, balki ishlashni davom ettiradi, chunki ular joriy sessiya bilan bog'liq emas va avtomatik ravishda bajarilmaydi. Odatda, jinlar yordamida server xizmatlari amalga oshiriladi, masalan, bosib chiqarish serveri jarayon orqali amalga oshiriladi-jin cupsd va jurnalistika serveri – syslogd.2.Linuxda jarayonlarning ro'yxatini ko'rish uchun ps buyrug'i mavjud.ps [PID] options-jarayonlar ro'yxatini ko'rish. Parametrlarsiz ps, jinlar bundan mustasno, joriy sessiya davomida boshlangan barcha jarayonlarni ko'rsatadi. Tanlovlar quyidagi qiymatlardan yoki ularning kombinatsiyalaridan birini qabul qilishi mumkin:-A yoki-e-barcha jarayonlarni ko'rsatish -f-alifbo tartibida - W-jarayonlarni tavsiflashning to'liq satrlarini ko'rsatish. Agar ular ustun bo'lsa ekranning uzunligi, keyin ta'rifni keyingi qatorga o'tkazing. Misol 1:[gserg@WEBMEDIA gserg]$ ps;PID TTY TIME CMD;3126 pts/2 00:00:00 bash;3158 pts/2 00:00:00 ps;[gserg@WEBMEDIA gserg]$_Misol 2:[gserg@WEBMEDIA gserg]$ ps 3126;PID TTY STAT TIME COMMAND;3126 pts/2 S 0:00 /bin/bash [gserg@WEBMEDIA gserg]$_;Misol 3:;[gserg@WEBMEDIA gserg]$ ps -ef;UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:01 ? 00:00:03 init [5];root 2 1 0 10:01 ? 00:00:00 [keventd]; root 3 1 0 10:01 ? 00:00:00 [kapmd];root 4 1 0 10:01 ? 00:00:00 [ksoftirqd_CPU0];root 5 1 0 10:01 ? 00:00:24 [kswapd];root 6 1 0 10:01 ? 00:00:00 [bdflush];... gserg 3126 3124 0 17:56 pts/2 00:00:00 /bin/bash;gserg 3160 3126 0 17:59 pts/2 00:00:00 ps -ef;[gserg@WEBMEDIA gserg]$_;Misol 4:[gserg@WEBMEDIA gserg]$ ps -efw;UID PID PPID C STIME TTY TIME CMD;root 1 0 0 10:01 ? 00:00:03 init [5];root 2 1 0 10:01 ? 00:00:00 [keventd];root 3 1 0 10:01 ? 00:00:00 [kapmd];root 4 1 0 10:01 ? 00:00:00 [ksoftirqd_CPU0];root 5 1 0 10:01 ? 00:00:24 [kswapd];root 6 1 0 10:01 ? 00:00:00 [bdflush];root 7 1 0 10:01 ? 00:00:00 [kupdated];root 8 1 0 10:01 ? 00:00:00 [mdrecoveryd];root 12 1 0 10:01 ? 00:00:00 [kjournald];root 115 1 0 10:01 ? 00:00:00 devfsd /dev;root 211 1 0 10:01 ? 00:00:00 [khubd];root 334 1 0 10:01 ? 00:00:00 [kjournald];root 594 1 0 10:01 ? 00:00:00 [eth0];root 730 1 0 10:01 ? 00:00:00 /sbin/dhcpcd -h WEBMEDIA -Y -N eth0;root 772 1 0 10:02 ? 00:00:00 /sbin/dhcpcd -h WEBMEDIA -Y -N eth0;rpc 820 1 0 10:02 ? 00:00:00 portmap;root 836 1 0 10:02 ? 00:00:00 syslogd -m 0;root 844 1 0 10:02 ? 00:00:00 klogd -2;root 879 1 0 10:02 ? 00:00:00 gpm -t ps/2 -m /dev/psaux;xfs 1074 1 0 10:02 ? 00:00:07 xfs -port -1 -daemon -droppriv -user xfs
root 1130 1 0 10:02 ? 00:00:00 /usr/sbin/apmd -p 10 -w 5 -W -P /etc/sysconfig/apm-scripts/apmd_proxy;......;gserg 3122 2072 0 17:56 ? 00:00:00 xmms;gserg 3123 2072 1 17:56 ? 00:00:03 xmms;gserg 3124 1914 0 17:56 ? 00:00:02 kdeinit: konsole -icon konsole.png -miniicon konsole.png;gserg 3126 3124 0 17:56 pts/2 00:00:00 /bin/bash;gserg 3172 3126 0 18:01 pts/2 00:00:00 ps -efw;[gserg@WEBMEDIA gserg]$_
3. Linux operatsion tizimidagi jarayonlar foydalanuvchi nomidan jarayonni boshlagan bir xil huquqlarga ega.Aslida,operatsion tizim u erda ishlaydigan foydalanuvchini uning nomidan ishlaydigan jarayonlarning to'plami sifatida qabul qiladi. Vedda b va foydalanuvchi seansi foydalanuvchi nomidan buyruq qobig'ida (yoki qobiq X) ochiladi. Shuning uchun, biz" Foydalanuvchining faylga kirish huquqi "desak,"foydalanuvchi nomidan faylga ishlaydigan jarayonlarga kirish huquqi" degan ma'noni anglatadi.
Jarayonni boshlagan foydalanuvchi nomini aniqlash uchun operatsion tizim haqiqiy foydalanuvchi identifikatorlari va jarayonga tayinlangan guruhlardan foydalanadi. Biroq, bu identifikatorlar kirish huquqlarini belgilashda hal qiluvchi ahamiyatga ega emas. Buning uchun har bir jarayon turli xil identifikatorlarga ega – samarali.Odatda, haqiqiy va samarali jarayonlar identifikatorlari bir xil, ammo istisnolar mavjud. Misol uchun, passwd dasturini ishlatish uchun foydalanuvchi identifikatorini ishlatishingiz kerak, chunki faqat superuser parol fayllariga yozish huquqiga ega. Bunday holda, samarali jarayon identifikatorlari haqiqatdan farq qiladi. Oqilona savol tug'iladi – bu qanday amalga oshirildi?Har bir faylda SUID va SGID bitlari mavjud. Ushbu bitlar dasturni ishga tushirishda unga egasining va guruh egasining samarali identifikatorlarini belgilash va jarayonni boshqa Foydalanuvchining kirish huquqi bilan amalga oshirish imkonini beradi. Passwd fayli ildiz foydalanuvchisiga tegishli bo'lgani uchun va u SUID bitiga ega bo'lganligi sababli, passwd jarayoni root foydalanuvchi huquqlariga ega bo'ladi.Chmod dasturi tomonidan sgid va SUID bitlari o'rnatildi:chmod u + s filename-bit SUID o'rnatish chmod u + s fayl nomi-sgid bitni o'rnatish.Ushbu bitlarni mutlaq rejimda o'rnatish uchun ular uchta bit shaklida taqdim etilishi kerak: SUID, SGID, Sticky bit.Kerakli huquqlarni qo'ygandan so'ng, maxsus bitlarni o'rnatish uchun raqamning boshiga raqam qo'shing:Misol 5:[gserg@WEBMEDIA gserg]$chmod 7777 filename;[gserg@WEBMEDIA gserg]$ls filename;-rwsrwsrwt 1 gserg gserg 23811 Aug 29 11:00 filename;[gserg@WEBMEDIA gserg]$;4.Biz jarayon tushunchasini, jarayonlarni va kirish huquqlarini ko'rsatish usullarini ko'rib chiqdik. Ammo operatsion tizimda qulay ish uchun bu juda oz. Jarayonlarni samarali boshqarish kerak. Ammo boshqaruvni amalga oshirish uchun biz birinchi navbatda jarayonlar jadvalining tuzilishini ko'rib chiqamiz:Tizimdagi barcha jarayonlarning ota-onasi Init jarayonidir. Uning pid har doim 1, PPID-0. Barcha jarayonlar jadvali ildiz init jarayoni bo'lgan daraxt shaklida tasavvur qilinishi mumkin. Bu jarayon yadroning bir qismi bo'lmasa-da, lekin ssitemada juda muhim rol o'ynaydi, biz siz bilan 16 darsida gaplashamiz.Nomlari kvadrat qavslarda joylashgan jarayonlar, masalan," [keventd] " - bu yadro jarayonlari. Ushbu jarayonlar tizimning ishlashini nazorat qiladi, aksincha xotira menejeri, protsessor vaqtini rejalashtiruvchi, tashqi qurilmalar menejerlari va boshqalar.Qolgan jarayonlar maxsus, buyruq satridan yoki tizimni ishga tushirish vaqtida ishlaydi.Har bir jarayonning hayoti quyidagi bosqichlar bilan ifodalanadi:Jarayonni yaratish - bu bosqichda yangi jarayonni yaratadigan jarayonning to'liq nusxasi yaratiladi. Misol uchun, siz ls buyrug'ini bajarish uchun tarjimondan ishga tushdingiz. Buyruq tarjimoni uning to'liq nusxasini yaratadi.Jarayon kodini yuklab olish va ishga tushirishga tayyorgarlik – birinchi bosqichda yaratilgan nusxa vazifa kodi bilan almashtiriladi, u bajarilishi kerak va uning atrofi yaratiladi – kerakli o'zgaruvchilar o'rnatiladi va hokazo.Jarayonni amalga oshirish.Zombi holati - bu bosqichda jarayonning bajarilishi tugadi, uning kodi xotiradan chiqariladi, atrof-muhit yo'q qilinadi, ammo jarayon jadvalidagi yozuv hali ham qolmoqda.Jarayonning o'lishi-barcha yakuniy bosqichlardan so'ng, jurnal jarayoni jadvalidan o'chiriladi-jarayon o'z ishini yakunladi.
Dars7.Mavzu:Jamoa qobig'i.1.Jamoa qobig'i tushunchasi. Jamoa qobiqlarini ko'rib chiqish.2. Bash buyruq qobig'i. Ishning xususiyatlari (jamoalar tarixi,operator"!",tugmachasini bosish uchun amallar).3.Konsolda ko'p vazifalarni bajarish. Vazifalar. Vazifalarni boshqarish.4. Atrof-muhit o'zgaruvchilari.5.Midnight commander.Dars jarayoni.1.Linux va Unix dunyosida kompyuterda ishlash buyruqlar qobig'i (shell) tushunchasi bilan uzviy bog'liq bo'lib, foydalanuvchi buyruqlarni kiritish va bajarish orqali tizim bilan muloqot qilish imkonini beradi. Biroq, buyruq qobig'i oddiy dastur hisoblanadi. Buni foydalanuvchi uchun passwd faylida boshqa dasturni standart qobiq sifatida belgilash orqali isbotlashingiz mumkin. Ammo tizim uni qobiq sifatida bilish uchun /etc/shells-ga mutlaq fayl nomini kiritishingiz kerak.Linuxda bir nechta buyruq qobig'i mavjud, ularning tarkibi tarqatishga qarab farq qilishi mumkin, lekin siz har doim kashf qilishingiz mumkin:Burn Shell (sh) – Unix tizimlari uchun eng qadimgi va eng keng tarqalgan buyruq qobig'i. Hech qanday Unix tizimi mavjud emas.Ushbu saytga tashrif buyurib, siz qonuniy yoshga to'lganligingizni tasdiqlaysiz va ushbu veb – saytga tashrif buyurganingiz mahalliy qonunchilikning buzilishi emas Juda yoqimli afzalliklarga ega, shuning uchun u yaqinda juda mashhur bo'ldi. Bu deyarli barcha Linux tarqatish uchun "standart" qobiq.Bundan tashqari, mashhur qobiqlar:csh-buyruq tizimi C dasturlash tiliga yaqin bo'lgan qobiq tclsh-buyruq tizimi Tcl dasturlash tiliga yaqin bo'lgan qobiq.Linuxda "standart" bash ishlatilganligi sababli biz bu haqda gaplashamiz.2. Bash komandasi dastlab "Burn Shell" ning erkin tarqalgan analogidir. Keyinchalik, uning imkoniyatlari o'sib ulg'ayganida, u mustaqil mahsulot deb hisoblana boshladi. Bash ning asosiy xususiyatlari quyidagilardan iborat: № imkoniyat Izoh.1 satrni tahrirlash kiritilgan buyruqni qayta yozish o'rniga tahrir qilish qobiliyati.2 kanallarni tashkil qilish i / u qayta yo'naltirish qobiliyati, amalga oshirilgan vazifalar orasidagi kanallarni tashkil etish.3 ishlashning qulayligi jamoa taxalluslari, jamoa tarixi, avtomatik to'ldirish.4 vazifalarni boshqarish fon vazifalarini yaratish va ularni boshqarish qobiliyati.5 moslashuvchan Sozlash har bir foydalanuvchi uchun alohida kirish uchun skript fayllaridan foydalanish, atrof-muhit o'zgaruvchilari.Kirish-chiqish va kanallar yo'nalishi bo'yicha 7 darsida ilgari siz bilan uchrashdik. Shuning uchun biz ushbu elementni qoldiramiz. Lekin bash-da ishlashning o'ziga xos xususiyatlari haqida, biz ularga berilgan imtiyozlar haqida ko'proq gaplashamiz.Bash avtomatik ravishda foydalanuvchi tomonidan ~ / faylga yozilgan barcha buyruqlarni yozadi.bash_history . Ushbu faylni boshqarish uchun history buyrug'i xizmat qiladi. tarix-ichki bash jamoasi. Ya'ni, ushbu buyruqqa mos keladigan bajariladigan fayl mavjud emas. Buyruqning qobig'i barcha harakatlarni amalga oshiradi. Parametrsiz kiritilgan ushbu faylda saqlangan va Cat ~ / buyrug'i bilan bir xil bo'lgan barcha buyruqlar ro'yxatini ko'rsatadi.bash_history..Buyruqlar tarixi tez-tez ishlatiladigan buyruqlar to'plamini soddalashtirish uchun mavjud. Buyruqlar tarixi va tugmalari bilan ro'yxatga olinishi mumkin..Yana bir usul – buyruq satrida yozing ! va buyruqni boshlang va tugmasini bosing. Birinchi harflari terilganlarga mos keladigan tarixning oxirgi jamoasi amalga oshiriladi. Misol uchun:Misol 1:.[gserg@WebMedia gserg]$ !/usr./usr/bin/perl ./ptest.pl OK [gserg@WebMedia gserg]$ !xfonts bash: !xfonts: event not found [gserg@WebMedia gserg]$ Ammo hikoyada hali kerakli jamoa bo'lmasa, kirishni qanday tezlashtirish kerak? Bunday holda, tugmasi bizga yordam beradi. Buyruqning bir nechta birinchi harflarini (yoki fayl yo'llarini) yozib, tugmasini bosing va Bash buyruqingizni (yoki yo'l elementini) avtomatik ravishda to'ldiradi. Bir nechta fayl yoki bitta fayl mos kelmasa, tizim ovozli signal beradi. Agar tugmasi qayta bosilsa, unda bir nechta fayllar mos bo'lganda-tizim ro'yxatni ko'rsatadi va agar bo'lmasa-ovozli signal eshitiladi.3. Birinchi darsdan boshlab, Linux juda ko'p ishlaydigan muhit ekanligini yodda tutish kerak edi. Biroq, hozirgi kunga qadar siz hali ham ko'p vazifalardan foydalana olmaysiz. Bir qarashda, konsol tizimning ko'p vazifalarni bajarishga imkon bermaydi va faqat grafik muhitda bir vaqtning o'zida ikki yoki undan ortiq dasturni ishga tushirish mumkin. Lekin bu shunday emas! Konsol ham juda ko'p vazifalarni bajaradi.Birinchidan, dastur bo'yicha har birida ochilgan bir nechta konsolni ochishingiz mumkin. Konsollar o'rtasida almashinish tugmachalari yordamida amalga oshiriladi, bu erda x konsol raqami.Va hatto bitta konsolda topshiriqni boshqarish buyruqlari bilan siz ko'p vazifali tizimning barcha afzalliklaridan to'liq foydalanishingiz mumkin. - bu jarayonga yuboriladigan kalit birikmasi sigstop signalini ushlab turilmaydi.Buyruq satrini boshqarish uchun jarayonni to'xtatish imkonini beradi. buyruq & - belgi & keyin buyruq fonda uni ishlatish imkonini beradi.jobs - buyruq tarjimonining joriy vazifalari ro'yxatini ko'rsatadi.bg < #j> – vazifani # j fon rejimiga o'tkazadi. Bundan oldin, vazifa tugmachalari kombinatsiyasi bilan to'xtatilishi kerak. Agar hozirda tarjimon faqat bitta vazifaga ega bo'lsa, unda raqamni ko'rsatish mumkin emas.fg < # j – - vazifani #j-ni oldingi ish rejimiga o'tkazadi. Vazifa tugmachalari kombinatsiyasi bilan to'xtatilishi yoki fonda bo'lishi kerak. Agar hozirda tarjimon faqat bitta vazifaga ega bo'lsa, unda raqamni ko'rsatish mumkin emas.Misol 2:[gserg@WebMedia gserg]$ man bash ^Z [1]+ Stopped man bash [gserg@WebMedia gserg]$ vim ^Z vim [2]+ Stopped vim [gserg@WebMedia gserg]$ bg 1;[1]+ man bash &;[gserg@WebMedia gserg]$ jobs;[1]+ Stopped man bash;[2]+ Stopped vim;[gserg@WebMedia gserg]$ fg 2;;[2]+ vim;[gserg@WebMedia gserg]$ fg;[1]+ man bash;[gserg@WebMedia gserg]$.4.Atrof-muhit o'zgaruvchisi-standart matn muharriri, executable fayllarni qidirish yo'llari va boshqalar, shuningdek, foydalanuvchi nomi, Linux versiyasi va boshqa buyruqlar tarjimoni va boshqa dasturlar tomonidan ishlatiladigan foydalanuvchi identifikatori, tizim va buyruq qobig'i kabi tizim ma'lumotlarini ko'rsatuvchi tizim ma'lumotlari.Foydalanuvchi tomonidan tez-tez ishlatiladigan o'zgaruvchilar:PATH-o'zgarmaydigan yo'llarini o'z ichiga oladi, qaysi tizimi executable fayllarni qidirish kerak, buyruq chiziq ularga to'liq yoki nisbiy yo'l yozilmagan bo'lsa.PWD-o'zgaruvchan joriy katalog to'liq nomi.Uy-o'zgaruvchan foydalanuvchi uy katalogining to'liq yo'lini o'z ichiga oladi.HOSTNAME-o'zgarmaydigan kompyuter nomini o'z ichiga oladi.LOGNAME-sessiya hozir ochilgan foydalanuvchi nomini o'z ichiga oladi.SHELL - joriy sessiyada boshlangan buyruq qobig'i nomini o'z ichiga oladi.Foydalanuvchi-sessiya hozir ochilgan foydalanuvchi nomini o'z ichiga oladi.Tizimda o'rnatilgan o'zgaruvchilar ro'yxati parametrsiz kiritilgan eksport buyrug'i yordamida ko'rish mumkin.Bash komandasi tarjimon ham o'z o'zgaruvchilari bor. Mahalliy o'zgaruvchilarni ajratish uchun ular bir xil eksport buyrug'i bilan eksport qilinishi kerak. Misol uchun:Misol 3:[gserg@WebMedia gserg]$ export declare -x HOME="/home/gserg" declare -x HOSTNAME="WebMedia" declare -x LANG="ru_RU.KOI8-R" declare -x LOGNAME="gserg" declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin" declare -x PWD="/home/gserg" declare -x SHELL="/bin/bash" declare -x TERM="Eterm" declare -x USER="gserg" [gserg@WebMedia gserg]$ EDITOR=/bin/vim [gserg@WebMedia gserg]$ export EDITOR [gserg@WebMedia gserg]$ export
declare -x EDITOR="/bin/vim" declare -x HOME="/home/gserg" declare -x HOSTNAME="WebMedia"declare -x LANG="ru_RU.KOI8-R" declare -x LOGNAME="gserg" declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" declare -x PWD="/home/gserg" declare -x SHELL="/bin/bash" declare -x TERM="Eterm" declare -x USER="gserg" [gserg@WebMedia gserg]$Unset buyrug'i tizim o'zgaruvchisini olib tashlaydi. Misol uchun: Misol 4:[gserg@WebMedia gserg]$ unset EXPORT [gserg@WebMedia gserg]$ export declare -x HOME="/home/gserg" declare -x HOSTNAME="WebMedia" declare -x LANG="ru_RU.KOI8-R" declare -x LOGNAME="gserg" declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" declare -x PWD="/home/gserg" declare -x SHELL="/bin/bash" declare -x TERM="Eterm" declare -x USER="gserg" [gserg@WebMedia gserg]$5. Bugungi mashg'ulotda siz bilan yana bir, bir oz nostandart, Midnight commander jamoasi qobig'i bilan tanishamiz. Bu odatiy ma'noda buyruq qobig'i emas. Bu Norton qo'mondoni yoki farning analoglari bo'lgan matnli Fallin menedjeri. Midnight qo'mondoni mc jamoasi tomonidan ishga tushirildi. Uning imkoniyatlari haqida gapiramiz.Midnight qo'mondoni ekrani ikki qismga bo'linadi. Deyarli barcha ekran maydoni kataloglar va fayllar ro'yxati bilan ikkita paneli egallaydi. Odatiy bo'lib, ekranning pastki qismidagi ikkinchi chiziq odatiy qobiq buyruqlarini bajarishingiz mumkin bo'lgan buyruq satrini ko'rsatadi va pastki satrda funktsiya tugmalari uchun maslahatlar (F1-F10) ko'rsatiladi. Belgilarning yuqori chizig'i ko'p funktsiyalarni bajarish mumkin bo'lgan menyuni o'z ichiga oladi. Menyudan foydalanish uchun sichqonchani kerakli elementga bosishingiz yoki F9 tugmasini bosishingiz va kursorni boshqarish tugmalaridan foydalanib kerakli elementni tanlashingiz mumkin.
Dars 8.Mavzu: jamoa qobig'i.2-dars.Sinf turi:ma'ruza, amaliy mashg'ulotlar.Ta'lim masalalari: 1. Bash uchun dasturlash.Dars jarayoni.Buyruqlar qobig'i skriptlari Linuxda katta rol o'ynaydi. Bundan tashqari, har bir foydalanuvchi shell skriptlari va tizimni ishga tushirish skriptlari va ko'plab ilovalar bilan bajarilgan ishni maksimal darajada avtomatlashtirishga intiladi, faqat shell skriptlaridan boshqa hech narsa yo'q. O'tgan darsda bo'lgani kabi, biz shell-da Bourne Shell-ga asoslangan dasturlarni ko'rib chiqamiz.1. Bash uchun har qanday skript tartibga solinadigan kombinatsiya faylining birinchi satrini ko'rsatish bilan boshlanadi:#!/bin/bashUshbu ketma – ketlik ushbu stsenariyni qayta ishlash uchun ishlatiladigan dasturni ko'rsatadi-bizning holatlarimizda bash buyruq qobig'i.Bash tili juda kuchli. Muhim qism o'zgarmaydigan reklamalar. Katta harflar bilan o'zgaruvchilarni chaqirishni qabul qiling, masalan:#!/bin/bash TERM=vt100 CONTER=0 O'zgaruvchining qiymatini olish uchun quyidagi sintaksis ishlatiladi: ALFA=$BETA+$GAMMA $ Belgisi "BETA" satridan foydalanish o'rniga BETA o'zgaruvchining qiymatini olish kerakligini anglatadi. O'zgaruvchiga har qanday buyruqning xulosasi berilishi mumkin. Bu holda, o'zgaruvchilar bir qator bo'ladi, mushuk yozuvlar separator kosmik belgilar bo'lib xizmat qiladi, yorliq va tarjima chiziqlar. Buning uchun bajariladigan buyruq teskari kesishmalarga kiritilishi va o'zgaruvchiga tayinlanishi kerak: FILES=`/bin/ls -a /home/student` Argumentlar qiymatlari yoki oddiygina iboralar ekrani echo operatori yordamida amalga oshiriladi:echo $ALFA summ BETA and GAMMA echo Done. Xulosa chiqarilganda, ko'rsatilgan ma'lumotlar bitta(') va ikkita(")tirnoq bilan tuzilishi mumkin. Yagona to'liq ular ichida yozilgan matnni ko'rsatadi, va ikki belgilangan o'zgaruvchilar ularning qiymatlari bilan o'zgartiriladi:[gserg@WebMedia serial]$ echo '$USER' $USER [gserg@WebMedia serial]$ echo “$USER” student [gserg@WebMedia serial]$ Izoh sifatida #belgisi ishlatiladi. Bu satr boshida va o'rtasida ham foydalanish mumkin: #Vaqtinchalik katalog TMP= '/ tmp ' # tirnoq foydalanish Skriptning bir qismi sifatida mavjud bo'lgan har qanday operatsion tizim buyrug'i ishlatilishi mumkin: # Ekranni tozalash clear Bash bir nechta taqqoslash operatsiyalarini qo'llab-quvvatlaydi. Agar shart to'g'ri bo'lsa, taqqoslash operatori 0 (haqiqiy) ni qaytaradi. Qaytish qiymatini tekshirish uchun maxsus qiymati yordamida bo'lishi mumkin $?. Men ularni ro'yxatga olaman: #oxirgi buyruqni qaytarish kodini tekshiring [ -d abcd echo $? # faylga kirish huquqini tekshirish:[- D abcd] # abcd fayli katalogmi?[- f abcd ] #abcd fayli oddiy faylmi?[- L abcd ] #ABCD fayli ramziy havola bormi?;[- r abcd ] # abcd faylga o'qishga kirish mumkinmi ?[- W abcd ] # abcd faylga yozish uchun ruxsat bormi?[- s abcd] # ABCD fayli nol bo'lmagan hajmga ega (bo'sh emas)?[- u abcd ] #ABCD fayli o'rnatilgan SUID bitiga ega?[- x abcd] #abcd fayli bajarilganmi?# satrlarni tekshirish [- z $ STRING ] # bo'sh STRING?
[- n $ STRING ] # string STRING bo'sh emasmi?[ $STRING = $STRING1 ] #string STRING va STRING1 tengmi?[ $STRING != $ STRING1 ] # string STRING va STRING1 teng emasmi?# raqamlarni tekshirish# taqdim etilgan raqamlarni tekshirganda, ular kerak#ikkita tirnoq bilan yakunlang [$DIGIT-eq $ DIGIT1 ] # DIGIT va DIGIT1 raqamlari tengmi?[$DIGIT-ne $ DIGIT1 ] # digit va DIGIT1 raqamlari teng emasmi?[$DIGIT-gt $ DIGIT1 ] # raqamli raqam DIGIT1DAN kattaroq?[$DIGIT-lt $ DIGIT1 ] # raqamli raqam DIGIT1 dan kamroq?[$DIGIT-de $ DIGIT1 ] # raqamli raqam DIGIT1 dan kattaroq yoki tengmi?[$DIGIT-Le $ DIGIT1 ] # raqamli raqam DIGIT1 dan kamroq yoki tengmi?
Bash skriptiga buyruq qatori parametrlari berilishi mumkin. Ularning qiymatlari $0, $1, $2 o'zgaruvchilari yordamida olinishi mumkin .. $n-1, $n. $ 0 – skript fayl nomi, $1 – birinchi parametr, $2-ikkinchi,... $n oxirgi.Biroq, tarmoq operatorlari bo'lmagan taqqoslash operatorlari foydasiz. Bash skript tilidagi eng oddiy filial operatori if-then-else-fi operatori hisoblanadi. Operator uchun to'liq tuzilish quyidagicha:agar < operator qiyosiy 1>; keyin <1 harakatlar>elif < operator taqqoslash2>;keyin<2 harakatlar>else<3 harakat>fi If operatori qurilishni soddalashtirishga imkon beradi. Elif va else bo'limlari majburiy emas. To'g'ri ishlash uchun faqat if-fi dizaynini ishlatish kifoya.Misol uchun, skriptni beraman:#!/bin/bash if [ -f /etc/passwd ]; then echo "/etc / passwd – oddiy fayl"else echo "/ etc / passwd-oddiy fayl emas" fi exit Ushbu stsenariyda oddiy fayl /etc/passwd tekshiriladi va tegishli xabar ekranda ko'rsatiladi.Tabiiyki, biz tsikllar kabi tuzilmalarsiz qila olmaymiz.Eng oddiy tsikl-busting Cycle for.uchun in $ < ro'yxat>do< harakatlar>done Tsikl o'zgaruvchini bo'sh joy bilan ajratilgan parametrlar ro'yxati, satr yoki tabulyatsiya tarjimasi belgisi bilan uzatiladi. Bundan tashqari, tsikl ro'yxatdagi har bir element uchun harakatlarni amalga oshiradi, masalan:
#!/bin/bash echo "$uyda katalog qidirish"echo #uy katalogiga o'ting pushd $HOME # fayllar ro'yxatini oling LIST = `ls -a $HOME` #har biri uchun tsiklni tashkil qiling;# o'zgaruvchilar ro'yxati qadriyatlar;for ITEM in $LIST;do;# agar kirish katalog bo'lsa, uni ekranga chiqaring;if [ -d $ITEM ]; then;echo “$ITEM”;fi done #avvalgi katalogga qaytib boring popd
# chiqish exit;Biroq, busting aylanishi biz uchun barcha holatlarda mos emas. Ko'p hollarda, biz bir sharti bilan aylanishiga kerak. Bu davrdir while.while < ahvoli>do< harakatlar>done Davr while modomiki haqiqiy sifatida amalga oshiriladi . Men hisoblagich bilan tsiklni tashkil etish misolini ko'rsatishga harakat qilaman. Hisoblash uchun men bash o'zgaruvchilari bilan matematik operatsiyalarni bajarishga imkon beruvchi expr buyrug'idan foydalanaman:
#!/bin/bash# birinchi parametr mavjudligini aniqlang# buyruq qatoriif [ -z $1 ]; thenecho "foydalanish: $0 kantitativ_proverok" exit fi # Ekranni tozalash clear #o'zgaruvchan tsikl hisoblagichini aniqlang COUNTER=0 #$1 yinelemelerindeki bir davrni tashkil qiling while [ $COUNTER -lt $1 ]do echo " tizimni yuklash ($1 soniya uchun)"echo echo "ikkinchi $ COUNTER" echo " - tizimni yuklab olish -"# o'rtacha yuklab olishni aniqlash buyrug'I /usr/bin/uptime echo " - disklarda joy -"# winchesterda bo'sh joyni aniqlash df -h echo “----------------” echo #pauza qilish 1 soniya /bin/sleep 1 # Ekranni tozalash clear #o'zgarmaydigan aylanish tezligi COUNTER=`expr $COUNTER + 1` done # chiqish exit Dastur nomini olib tashlashni tashkil etish bu holatda juda muvaffaqiyatli bajarilmaydi, chunki u faqat ishlaydigan dasturning nomi emas, balki buyruq satrida yozilgan yo'l ham ko'rsatiladi. Buni tuzatish uchun fayl nomini yo'ldan ajratib turadigan bazename direktivasi bizga yordam beradi. Yuqoridagi stsenariyning bir qismi uni ishlatish bilan qanday ko'rinishini beradi:#!/bin/bash# birinchi parametr mavjudligini aniqlang # buyruq qatori if [ -z $1 ]; then
echo foydalanish:"basename $0" kantitativ_proverok exit fi ....
9-dars.Mavzu: vazifalarni rejalashtirish.Disk drayverlari bilan ishlash.1.Vazifalarni rejalashtirish tushunchasi.2. At jamoasi.3. Jin cron. Crontab jamoasi.4.Disk drayverlari bilan ishlash, mount buyrug'iDars jarayoni.1.Ko'pincha Linuxda administrator har qanday dasturni (yoki shell skriptini) amalga oshirmasdan sodir bo'lishi mumkin bo'lgan muammoga duch keladi, ammo bu imkoniyatni amalga oshiradigan vosita kerak.Zamonaviy Linux tizimlarida bu maqsad uchun vazifalarni rejalashtirish mexanizmlaridan foydalanish odatiy holdir. At va cron-bu mexanizmlar jinlarni ish rejalashtirish orqali amalga oshiriladi.Ushbu dasturlar yordamida siz dasturni oldindan ma'lum bo'lgan vaqtda o'rnatishingiz mumkin. At buyrug'i ishni bajarish bir martalik protsedura bo'lgan hollarda qo'llaniladi. Agar vazifa har qanday davriylik bilan amalga oshirilishi kerak bo'lsa, jin cron va crontab buyrug'ini ishlatish yaxshidir.Rejalashtirish usuli-har bir daqiqada server (yoki shaxsiy kompyuter) bilan sodir bo'lgan jarayonlarni tushunish. Rejalashtirish uchun 5 daqiqada diskret bilan quyida keltirilgan shaklga o'xshash shakl qo'llaniladi:01 raqam 0 m 5 m 10 m 15 m 20 m 25 m 30 m 35 m 40 m 45 m 50 m 55 m 0 soat zaxira;1 soat;2 soatlik Linux yangilanishi Linux yangilanishlarini o'rnatish;3 soat;4 h haftalik shaklga qarang;5 soat;6 soat;7 soat;Kutilmagan holatlar uchun 8 soat zaxira;9 soat;10 soat;11 soat
12 soat;13 soat Mozilla;14 soat;15 soat;16 soat;17 soat;18 soat tekshirish >;19 h tripware fayl yaxlitligi yordamida >;20 soat tizimi;21 soat;Bu vaqtda 22 soat yuqori yuklash tizimi;23 soat;Oyning har bir kuni uchun jadval tuziladi. U bilan birgalikda haftaning kunlarida bir shakl tuziladi, bu sizga ajratilgan 2 soatni (yoki kerak bo'lganda) rejalashtirishga imkon beradi. Dushanba uchun bunday shaklning namunasi:dushanba 0 m 5 m 10 m 15 m 20 m 25 m 30 m 35 m 40 m 45 m 50 m 55 m;4 soat SARG hisoboti;5 soat;Ushbu shakllar serverning ish vaqtidan optimal foydalanishga va vazifalarni to'g'ri rejalashtirishga imkon beradi.Hozirgi vaqtda barcha vazifalar yozilgandan so'ng, yangi kiritilgan ish uchun to'g'ri joyni topishingiz kerak bo'ladi. Tajribali tizim ma'murlari, har doim kutilmagan bir martalik topshiriqni kiritish uchun, shuningdek, tizimning eng yuqori yuklanish vaqtini topshiriqlardan ozod qilish uchun vazifalar jadvalida kuniga taxminan bir soat vaqt ajratish kerak deb hisoblashadi. Bir vaqtning o'zida bir nechta vazifani rejalashtirish tavsiya etilmaydi.2.At (at, atq, atrm) buyruqlar oilasi ishni ma'lum bir vaqtda taymer orqali bajarish uchun vositadir. Ushbu jamoaning to'g'ri ishlashi uchun tizimda atd iblisini ishga tushirish kerak. Demon atd bir vaqtning o'zida bajarilishi kerak bo'lgan vazifalar navbatini qo'llab-quvvatlaydi.Vazifani belgilash uchun (yoki bir vaqtning o'zida bir nechta vazifalar) siz at buyrug'ini bajarishingiz kerak:Misol 1.[student@Klass801 student]$ at 19:00;at> /home/student/bin/first.sh;;job 1 at 2004-12-01 13:01;[student@Klass801 student]$;Iblis at tomonidan ko'rsatilgan buyruqni bajarish natijasi linux pochta qutisiga (/var/spool/mail/student) yoziladi. Biroq, at rejalashtirish tizimi navbatga qo'yilgan vazifalarni boshqarish va boshqarish imkonini beradi. Atq buyrug'i yordamida vazifalar navbatini ko'rishingiz mumkin:Misol 2.[student@Klass801 student]$ atq;1 2004-12-01 13:01 a student;[student@Klass801 student]$;At jamoasi bir-birining ortidan ketma-ket amalga oshiriladigan bir nechta vazifalarni bajarishga imkon beradi. Buni interaktiv rejimda (buyruq satrida at buyrug'ini yozib) va at parametresi-f buyrug'i bilan amalga oshirishingiz mumkin:[student@Klass801 student]$ at -f commands 14:50;job 8 at 2004-12-05 14:50;[student@Klass801 student]$_;Atrm buyrug'i navbatdan ishni olib tashlaydi:;[root@ns root]# atq;7 2004-12-05 14:48 a root;8 2004-12-05 14:50 a root;[root@ns root]# atrm 7;[root@ns root]# atq
8 2004-12-05 14:50 a root;[root@ns root]#;At komandasi yordamida vazifalarni rejalashtirishda, tizimning o'rtacha yuklanishi maksimal ruxsat etilgan qiymatdan oshmasligi uchun topshiriqni bajarish vaqtiga alohida e'tibor qaratish lozim.3.At guruhlaridan farqli o'laroq, jin cron va crontab rejalashtirish boshqaruv jamoasi vazifalarni aniq rejalashtirish imkonini beradi. At kabi, vazifalar crond Demon dasturini ishga tushiradi. Crontab jamoasi faqat vazifalarni boshqarish uchun xizmat qiladi. Buyruqni ishlatishdan oldin ish stolini tasvirlaydigan faylni yaratishingiz kerak. Fayl formati quyidagicha:daqiqa soat kun_mavzu oy kun_nedeli jamoasi daqiqa-0 dan 59 gacha bo'lgan raqamlar yoki *soat-0 dan 23gacha bo'lgan raqamlar yoki *kunlar-1 dan 31 gacha bo'lgan raqamlar, yoki *oy-1 dan 12gacha bo'lgan raqamlar yoki *kunlar-0 dan 6 gacha bo'lgan raqamlar, va 0-yakshanba, yoki*; masalan:0 10 * * * /uy/talabalar/bin / skript #10 da ishga tushirish:00 kunlik 15 * * * 1 /uy/talabalar/bin / script2 #har soatda 15 daqiqada Crontab jamoasi davrlardan foydalanishga imkon beradi:10-15/5 * * * * /uy / talabalar/bin / script3 #har kuni, har soatda, 10 dan 15 daqiqagacha#5 daqiqali davriylik bilan Vazifa faylini yaratganingizdan so'ng, crontab buyrug'ini chaqirishingiz va uni vazifalar bilan fayl nomi parametri sifatida ko'rsatishingiz kerak:[student@Klass801 student]$ crontab jobs
Parametr-l yordamida siz o'rnatgan vazifalar ro'yxatini ko'rishingiz mumkin:[student@Klass801 student]$ crontab -l# DO NOT EDIT THIS FILE - edit the master and reinstall.# (/tmp/crontab.1333 installed on Sat Dec 4 15:56:57 2004);# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $);10****/home/student/bin/script;[student@Klass801 student]$;Vazifalar ro'yxatini tozalash parametr-r yordamida amalga oshirilishi mumkin:[student@Klass801 student]$ crontab -l# DO NOT EDIT THIS FILE - edit the master and reinstall#(/tmp/crontab.1333 installed on Sat Dec 4 15:56:57 2004)# (Cron version--$Id: crontab.c,v 2.13 1994/01/17 03:20:37vixie Exp $)10****/home/student/bin/script[student@Klass801 student]$ crontab-r [student@Klass801 student]$ crontab -l no crontab for student [student@Klass801 student]$ Crontab buyrug'i, shuningdek, parametr-e yordamida vazifalar ro'yxatini tahrir qilish imkonini beradi. muharriri sifatida $VISUAL, $EDITOR yoki /bin/vi o'zgaruvchan muhitda ko'rsatilgan (tartibda) muharrir sifatida ishlatiladi. Faylni saqlaganingizdan so'ng, crontab ish stolini avtomatik ravishda qayta ishga tushiradi.-U User parametri boshqa foydalanuvchilarning vazifalarini boshqarishga imkon beradi. Ushbu parametrni ishlatganda superuser ostida emas, parolni kiritishingiz kerak bo'ladi.4.Ko'pincha vazifalarni rejalashtirish zaxira nusxalarini yaratish bilan bog'liq. Odatda, zaxira nusxalari tashqi ommaviy axborot vositalarida (magnit chiziqlar, disklar va boshqalar) yaratiladi. Bugun biz turli xil tashqi qurilmalarni qanday o'rnatishni o'rganishga harakat qilamiz. O'rnatish-tashqi drayverlarning fayl tizimlarini ildiz FS kataloglaridan biriga ulash (o'rnatish nuqtasi).UNIX-da qurilmalarni o'rnatish uchun mount buyrug'i ishlatiladi. Parametrlarsiz ishga tushirilganda, mount hozirgi vaqtda o'rnatilgan barcha FSni va o'rnatishda ishlatiladigan paramentrlarni ko'rsatadi.root@ADM:/home/oem# mount/dev/sda1 on / type ext3 (rw,errors=remount-ro)proc on /proc type proc (rw,noexec,nosuid,nodev)/sys on /sys type sysfs (rw,noexec,nosuid,nodev)varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)procbususb on /proc/bus/usb type usbfs (rw) udev on /dev type tmpfs (rw,mode=0755)devshm on /dev/shm type tmpfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)lrm on /lib/modules/2.6.20-15-generic/volatile type tmpfs (rw)binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)Ushbu buyruq juda ko'p parametrlarni oladi, lekin biz siz bilan birga quyidagilarni muhokama qilamiz:-t FS-tashqi qurilmada ishlatiladigan fayl tizimini ko'rsatadi.-R-"faqat o'qish"rejimida FSni o'rnatish-W-"o'qish/yozish"rejimida FSni o'rnatish-o-kodlash,belgilar to'plami, qaysi foydalanuvchi o'rnatilishi va boshqalar kabi qo'shimcha o'rnatish variantlarini ko'rsating. Parametrlar fayl tizimining turiga bog'liq va ular " man " da ko'rsatilishi kerak. Umumiy sintaksisi man kabi ko'rinadi:man -t FS -w/-r device mountpoint -o external_fs_options
3>2>1>
Do'stlaringiz bilan baham: |