logo

Shell interpretatorida ishlashi

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

44.298828125 KB
Shell interpretatorida ishlashi
 Reja:
1. Sodda shell skriptlarini yozish.
2. Parametrlar va o'zgaruvchilar.
3. Jarayonlar.
4. Buyruqlarni qayta ishga tushirish va tahrirlash. 1. Sodda shell skriptlarini yozish
n
Shell qobig'i buyruq interpretatori va yuqori sath dasturlash tili hisoblanadi.
Buyruq   interpretatori   sifatida   shell   komandalar   qatoriga   kiritilgan   komandalarni
qayta   ishlaydi.   Yuqori   sath   dasturlash   tili   sifatida   shell   scripts   nomli   faylda
saqlanuvchi   buyruqlarni   qayta   ishlaydi.  Boshqa   tillar   kabi   shell   o'zgaruvchilar   va
oqimni   boshqarish   buyruqlariga   ega(masalan,   for   sikllari   va   if   shart   operatori).
Shellni   buyruqlar   qatori   interpretatori   sifatida   foydalanilganda   ishlaydigan
muhitingizni   sozlashingiz   mumkin.   Siz   o'z   displeyingizda   joriy   katalog   nomini,
funksiya   yaratishni   yoki   cp   psevdonimini   qo'yishingiz,   aspektlarni   o'zgartirish
uchun   kalitso'zlardan   foydalanish   va   boshqalarni   amalga   oshirish   mumkin.   Siz
bundan   tashqari   hisobotlar   to'plamini   ishga   tushuruvchi   uzun   script   uchun   qiyin
buyruqni   saqlovchi   ish   bajarilgandan   so'ng   sizga   chop   etishni   va   yuborishni
eslatishdan   iborat   shell   ssenariysini   yozishingiz   mumkin.   Boshqa   ssenariylar
dasturlar   hisoblanib,   ular   faqatgina   dasturni   ishga   tushurmaydi.   Ko'pchilik   shell
ssenariylari   Bourne   Again   Shell   ostida   ishga   tushurilish   uchun   yozilgan.   Bir
foydalanuvchili rejimda tizim yuklanishini yoki tizimga texnik xizmat ko'rsatishni,
ma'murlashni   yoki   ta'mirlash   ishlarini   amalga   oshirish   shell   bilan   tanishishni   eng
yaxshi usuli hisobalandi.
Sarlavha
Bourne   Again   Shell   Bell   Labarotories   dagi   AT&T   xodimi   Stiv   Born
tominidan yozilgan Bourne Shell ga asoslangan.  Ko'plab yillar davomida haqiqiy
Bourne   Shell   kengaytirilib   kelindi,   ammo   haligacha   bazaviy   shell   bilan   ko'plab
UNIX   tizimlari   ta'minlangan.   O'zining   uzoq   va   muvaffaqiyatli   tarixi   davomida
original shell UNIX tizimini boshqarish uchun yordam beruvchi skriptlar yozishda
foydalanilingan.   Linux   tizimida   ba'zi   bir   skriptlar   Bourne   Again   Shell   ssenariysi
ko'rinishida   paydo   bo'lmoqda.   Bourne   Again   Shell   original   Shell   da   bo'lmagan
ko'plab   kengaytmalar   va   funksiyalarni   o'zida   jamlasa   ham   original   shell   bilan
moslik   mavjud,   shuning   uchun   ham   ssenariylarni   bash   qobig'i   ostida   ishga
tushurish   mumkin.   UNIX   tizimlarida   haqiqiy   Bourne   Shell   sh   deb   nomlangan. Linux   tizimlarida   sh   bashni   ta'minlash   uchun   Bourne   Shell   ishlab   turishini   talab
etuvchi   havola   bo'lib   xizmat   qiladi.   sh   chaqirilganda   Bourne   Shellni
emulyatsiyalash uchun barcha imkoniyatni ishga soladi. V Unix tizimi Devid korn
tomonidan   yozilgan   Korn   Shell(ksh)ni   namoyish   etdi.   Bu   qobiq   ko'plab   original
Bourne   Shell   funksiyalar   bilan   kengaytirilib,   qo'shimcha   imkoniyatlar   qo'shildi.
Bourne   Again   Shell   ba'zi   buyruqlar   psevdonimi   va   buyruqlar   qatorini   tahrirlash
imkoniyati   xususiyatlari   Korn   Shell   o'xshash   tomonlariga   asoslangan.   POSIX
oilasiga mansub standartlar PASC komiteti tomonidan ishlab chiqiladi.
POSIX 1003.2 qobiqning standart  funksionalligini  izohlaydi. Bourne Again
Shell   POSIX   standartining   talablarga   mos   funksiyalar   bilan   ta'minlaydi.   Buni
bajarish   uchun   to'liq   kuch   bilan   harakat   qilinadi.   Bashni   chaqirayotganingizda   --
posix shaklida amalga oshirilish POSIX standartiga to'liq moslikni ta'minlaydi.
Shell bazaviy xususiyatlar(Shell Basics)  Bu xususiyatlar yuklanish 
fayllarini yozish va undan foydalanish va standart xatolikni yo'naltirish, shell soda 
ssenariylarini yozish va bajarish, buyruqlarni guruhlash,   vazifalarni   
boshqaruvini   realizatsiyalash  va   stek kataloglarni manipulatsiyalshni qamrab 
oladi.
Yuklanuvchi fayllar
Shellni   ishga   tushurganda   avtomatik   tarzda   yuklanuvchi   fayllarni
inisializatsiyalaydi.   Shell   ishga   tushuvchi   fayllar   u   interaktivmi(bash   buyrug'ini
olish singari) yoki interaktiv emasmi(shell skriptni bajarishda yakka foydalanilgan)
shunga   bog'liq.   Siz   fayldagi   buyruqni   bajarish   uchun   o'qish   ruxsatiga   ega
bo'lshingiz kerak. Fedora/RHEL mos buyruqlarni ba'zi shunday fayllarga joylaydi.
Shellga kirish
Bu bo'limda ko'riladigan fayllar ro'yhatga olingan va --loginoption parametri
bilan   ishga   tushurilgan   shellda   bajariladi.   Kirish   o'ziga   xos   interaktivdir.   Shell
birinchi   bo'lib   /etc/profile   dagi   buyruqlarni   bajarardi.   Super   foydalanuvchi   bu faylni bash foydalanuvchi uchun tizim uchun umumiy bo'lgan xarakteristikalarida
standart qilib o'rnatishi mumkin.
So'ngra shell faylni ~/.bash_profile, ~/.bash_login va ~/.profile ketma-ketlik
bo'yicha birinchi fayldagi buyruqni bajarish uchun izlaydi. Siz aniqlashtirish uchun
buyruqlarni   keltirilgan   fayllardan   biriga   joylashingiz   mumkin.   Boshida   standart
/etc/profile bo'ladi.
Tizimdan chiqishda bash ~/.bash_logoutfile fayldagi buyruqni bajaradi. Tez-
tez buyruqlar seansdan so'ng tozalanadi, ayniqsa vaqtinchalik fayllarni o'chiruvchi
va faylga yo'naltiruvchi buyruqlar.
Ishga tushurish fayllarni yaratish
Ko'plab   yuklanuvchi   fayllar   va   toifalar   shellda   mavjud,   sizga   kerakli   narsa
uy  katalogdagi  .bash_profile  va  .bashrc  fayllari   hisoblanadi.  Bu   kabi   buyruqlarga
misol:   .bash_profile   da   ishga   tushurish   buyrug'i,   .bashrc   da   tizimga   kirish
uchun(.bashrc mavjud bo'lganda). Bu o'rnatma orqali .bashrc dagi buyruqlar kirgan
va kirmagan shell orqali bajariladi.
if[ -f ~/.bashrc]; then source ~/.bashrc; fi
[   -f   ~/.bashrc]   sizning   .bashrc   nomli   fayl   uy   katalogingizda   mavjudligini
tekshiradi.
.(nuqta) yoki source: joriy shellda ishga tushurish fayllari
.bashrc   ishga   tushish   faylini   tahrirlashdan   so'ng   o’zgartirish   kuchga   kirish
uchun   qayta   kirib   chiqish   shart   emas.   Ishga   tushurish   faylini   .(nuqta)   yoki
o'rnatilgan manba orqali ishga tushurish mumkin. Boshqa buyruqlar kabi .(nuqta)
buyruqlar qatorida bo'sh joy(SPACE) bilan kelishi kerak. .(nuqta) yoki source dan
foydalanish shell ssenariyni ishga tushurishga o'xshab ketadi. .(nuqta) yoki source
dan ssenariylarda o'zgaruvchilarni kiritish kabi o'zgarishlar bilan ishga tushurishda
foydalanish shellga o'z ta'sirini ko'rsatadi. Siz .(nuqta) yoki source buyrug'idan har
qanday skriptni ishga tushurishda fayl sifatida sodir bo'lmaydi.
Quyidagi   misolda,   .bashrc   bir   necha   o'zgaruvchilarni   o'rnatadi   va   PS1
o'rnatadi,   host   nomini   so'raydi.   .(nuqta)   yangi   qiymatlarni   kuchga   kirishini
ta'minlaydi. $ cat ~/.bashrc
export TERM=vt100 # set the terminal type
export PS1="$(hostname -f): "      #set the prompt string
export CDPATH=: $HOME # add HOME to CDPATH string
stty kill ' A
u' # set kill line to control-u
$ . ~/.bashrc
bravo.example.com:
Standart xatolikni yo'naltirish
Bu   bo'lim   standart   chiqarish   konsepsiyasini   qamrab   olib,   buyruqni   standart
chiqishini   yo'naltirishni   tushuntirgan.   Standart   chiqishga   qo'shimcha   ravishda
buyruqlar   standart   xatolik   chiqishiga   yuborilishi   mumkin.   Buyruqlar   ma'lumot
bilan   aralsh   holda   saqlash   uchun   xatolik   xabarlarini   standart   xabar   shaklida
yuborishi mumkin.
Standart   chiqishlarda   bajarilgan   kabi   shell   standart   xatolik   buyruqlarni
ekranga   yuboradi.   Agarda   yo'naltirilmasa   siz   chiqish   buyrug'i   signali   bilan
yuborilayotgan   signal   orasidagi   farqni   bilolmaysiz   va   bu   standart   xatolik   kabi
jo'natiladi.
Deskriptor   fayl   -   bu   dastur   o'z   natijasini   yuboruvchi   va   kiritish   formasidan
kirish   ma'lumotlarini   oluvchi   joydir.   Dastur   bajarilish   davomidadastur   ishga
tushurish   jarayoni   3   faylni   ochadi:   0(standart   kirish),   1(standart   chiqish)   va
2(standart   xatolik).   Yo'naltirish   chiqish   simvoli   qisqa   1>   ko'rinishga   ega   bo'lib,
shellga   standart   chiqishga   yo'naltirishni   buyuradi.   Xuddi   shu   kabi,   <   simvol   0<
qisqartmasi   bo'lib,   standart   kirishga   yo'naltiradi.   2>   simvoli   standart   xatolikni
yo'naltiradi.
Quyidagi   misollar   standart   chiqish   va   standart   xatolikni   turli   xil   va   bir   xil
fayllarga yo'naltirishni ko'rsatadi. Cat utilitasini mavjud bo'lmagan fayl nomi bilan
ishga tushirganimizda cat standart xatolik fayliga xatolik haqida xabar yuboradi va mavjud faylni esa nusxalaydi va standart chiqishga yuboradi. Agar yo'naltirilmasa
ekranga ikkala xabar ham chiqadi.
$ cat y
This is y
$ cat x
cat: x: no such file or directory
$ cat x y
Cat: x: No such file or directory
This is y.
Keyingi   misolda   standart   chiqish   va   standart   xatolik   turli   fayllarga
yo'naltirish   ko'rsatilgan.   2>   yozuvi   shellga   standart   xatolini   qayerga   jo'natishni
ko'rsatadi(fayl   descriptor   2).   1>   esa   shellga   standart   chiqishni   xabar   qiladi(fayl
descriptor 1). Siz > orniga 1> ni ishlatishingiz mumkin.
$cat x y 1> hold 2> hold2
$cat hold1
This is y.
$cat hold2
Cat: x: No such file or directory
This is y.
Keyingi misolda fayl deskriptori 1 duplikati bo'lishi uchun fayl deskriptori 2
e'lon   qilinib,   chiqish   fayl   deskriptori   1   uchun   quvur   orqali   tr   buyrug'i   orqali
yuborilmoqda.
$cat x y 2>&1 | tr "[a-z]" "[A-Z]"
CAT: X: NO SUCH FILE OR DIRECTORY
THIS IS Y. Sodda shell skriptlar yozish
Shell   ssenariylari   shell   bajarishi   mumkin   bo'lgan   buyruqlardan   iborat
bo'lgan   fayl   hisoblanadi.   Shell   ssenariysidagi   buyruqlar   tinmasdan   shellga   javob
tariqasida   kiritishingiz   bo'lgan   har   qanday   buyruq   tushuniladi.   Masalan,   shell
ssenariylaridagi   buyruqlarni   Linux   utilitasi,   kompilyatsiyalangan   dastur   yoki
shellning boshqa ssenariysi  ishga tushurishi mumkin. Buyruqlar qatorida berilgan
buyruq   shell   ssenariysidagi   faylga   havoladan   foydalanishi   mumkin   va   chiqishga
yo'naltirishi yoki quvur orqali faylni yuborishi mumkin.
Qo'shimcha   qilib   aytganda,   buyruqlardan   buyruqlar   qatorida   foydalanish
mumkin,   buyruylar   oqimini   boshqarish   esa   ko'pincha   shell   skriptlarda
foydalaniladi.   Bu   guruhga   tegishli   buyruqlar   strukturalashgan   dasturlash   tilidan
foydalangan holda ko'rsatmalarni bajarilish tartibini o'zgartirilgani kabi ssenariyda
buyruqlar bajarilish tartibini o'zgartirishi mumkin.
Shell   birin-ketin   shell   ssenariysidagi   buyruqlar   bajaradi   va
interpretatsiyalaydi.   Shunday   qilib   shell   ssenariysi   oddiy   va   tez   qaytariluvchi   va
murakkab vazifalar seriyasini boshlashni imkonini beradi.
Chmod: faylni bajariluvchi qilish
Shell   ssenariysiga   buyruq   sifatida   o'z   nomingizni   berib   bajarish   uchun   siz
ssenariydagi   fayl   ustida   o'qish   va   bajarish   uchun   ruxsatga   ega   bo'lishingiz   kerak.
O'qishga ruxsat skriptdagi faylni o'qishga imkon beradi. Bajarishga ruxsat esa shell
va tizim egasi, guruh yoki barchaga fayl bajarishga ruxsat borligini xabar qiladi; bu
fayl tarkibi bajarilishi mumkinligini anglatadi.
Shell ssenariysini oddiy matn muharriri orqali yaratilganda bajarilish uchun
ruxsatga   ega   bo'lmaydi.   Quyidagi   misolda   skriptdan   iborat   whoson   nomli   fayl
keltirilgan: $  cat whoson
date
echo "Users Currently Logged In" 
who
$  whoson
bash: ./whoson: Permission denied
siz whoson ga buyruq sifatida o'z nomingizni berib bajara olmaysiz, chunki,
sizda faylni bajarish uchun ruxsatga ega emassiz. Shell whoson ni bajariluvchi fayl
deb tanimaydi   va  bajarilishda  xatolik  haqida  xabar   qiladi. Faylga  bash  argumenti
sifatida nom berganingizda bash argumentni shell ssenariysida bo'lish va bajarish 
uchun   qabul   qiladi.   Bu   holda   bash   bajarilishi   mumkin   va   whoson
bajarilishga ruxsat olishi kerak bo'lmagan argument hisoblanadi.
$  ls -l whoson
-rw-rw-r-- 1 alex group 40 May 24 11:30 whoson $ 
chmod u+x whoson  $  ls -l whoson
-rwxrw-r-- 1 alex group 40 May 24 11:30 whoson $ 
whoson
Sat May 24 11:40:49 PDT 2008 
Users Currently Logged In
jenny pts/7 May 23 
18:17 hls pts/1 May 24 
09:59
scott pts/12 May 24 06:29  ( bravo.example.com )
alex pts/4 May 24 09:08
chmod   utilitasi   fayl   bilan   bog'liq   holda   ruxsat   huquqini   o'zgartiradi.
Yuqorida ls -l qo'shimchasi  bilan whoson ga chmod fayl egasiga bajarilish uchun
ruxsatni oldin va keyin berishi ko'rsatilgan. Birinchi ls defisni (-)4 simvol sifatida ko'rsatib, egaga faylni bajarilish uchun
ruxsat   yo'qligini   ko'rsatmoqda.   Keyin   chmod   egaga   bajarilish   uchun   ruxsat
bermoqda:   fayl   egasiga   (u)   bajarilish   uchun   ruxsat(x)   qo'shish   (+)   uchun   u+x
chmod chaqirilmoqda. Ikkinchi argument fayl nomi hisoblanadi. Ikkinchi ls x ni 4
o'rinda   ko'rsatmoqda,   bu   bilan   fayl   egasi   bajarilishga   ruxsatga   egaligini
ko'rsatmoqda.
Agarda   boshqa   foydalanuvchilar   fayl   bajamoqchi   bo'lsa   faylga   ruxsatni
guruh   yoki   barchaga   o'zgartirish   zarur.   Har   qanday   foydalanuvchi   fayl   nomini
buyruq   sifatida   foydalanish   uchun   bajarish   uchun   ruxsatga   ega   bo'lishi   kerak.
Agarda   fayl   shell   skript   ko'rinishida   bo'lsa   uni   ishga   tushurishga   urinuvchi
foydalanuvchi   faylni   o'qish   uchun   ruxsatga   ega   bo'lishi   zarur.   Ikkilik   bajarilish
uchun o'qishga ruxsat kerak emas.  #! Shell berilishi
Siz   opertasion   tizimga   shell   faylni   bajarish   to'grisida   xabar   qiluvchi   mxsus
simvollar   ketma-ketligini   faylning   birinchi   qatoriga   qo'yishingiz   mumkin.
Operatsion   tizim   bajarishdan   oldin   dasturning   birinchi   simvollarini   tekshiradi,   bu
simvollar   tizimni   muvaffaqiyatsiz   bajarilishdan   saqlaydi.   Agarda   ssneriyning
birinchi   2   simvoli   #!ga   to'g'ri   kelsa   tizim   ssenariy   bajarilish   kerak   bo'lgan   fayl
utilitalariga yo'lni ko'rsatuvchi simvollarni interpretatsiyalaydi. Bu nafaqat shellga
balki har qanday boshqa dasturga yo'l bolishi mumkin. Keying misol bash skriptni
ishga tushurishi kerakligini ko'rsatadi:
$  cat bashscript
#!/bin/bash
echo "This is a Bourne Again Shell script."
#!   Simvollari   ayniqsa   shelldan   ssenariyni   ishga   tushurushda   qo'l   keladi,   u
bilan birga skript ham ishga tushuriladi. Keyingi misol tcsh yordamida bajarilishi
kerak bo'lgan script ko'rsatilgan: $  cat tcshscript
#!/bin/tcsh
echo "This is a tcsh 
script." set person = jenny 
echo "person is $person"
#!   qatori   orqali   operatsion   tizim   qaysi   shell   ishga   tushurishingizdan   qat'iy
nazar ssenariyni tcsh orqali bajarilishni kafolatlaydi.
Shell ssenariysida bajarilayotga ssenariyda shell nomini ko'rsatish uchun ps -
f   dan   foydalanishingiz   mumkin.   Keyingi   3   qatorda   ps   bash   qobiq   ishga   tushish
jarayonini,   tcsh   script   ishga   tushish   jarayonini   va   PS   buyrug'   bajarilishi
ko'rsatilgan.
$  cat tcsh_script2
#!/bin/tcsh
ps -f
$  tcsh_script2
UID PID PPID C STIME TTY TIME CMD
alex 3031 3030 0 Nov16 pts/4 00:00:00 -bash
alex 9358 3031 0 21:13 pts/4 00:00:00 /bin/tcsh ./tcsh_script2
alex 9375 9358 0 21:13 pts/4 00:00:00 ps -f
agarda   #!   simvollaridan   foydalanmasangiz   shell   hisoboti   siz   ishga
tushurishni so'ragan buyruqni topa olmaydi. Keyinchalik #! dan bo'sh joy(space)lar
ishlatish   talab   etilmaydi.   Agarda   #!   qator   tashlab   o'tilsa   masalan,   bashdagi   tcsh
script   shell   xatolik   haqidagi   xabarni   generatsiyalashi   mumkin   yoki   kerakli   tarzda
ishlamasligi mumkin.
2. Parametrlar va o'zgaruvchilar Shell   ichida   foydalanuvchi   foydalanishi   mumkin   bo'lgan   qiymatlar   shell
parametrlari   bilan   bog'liq.   Shell   parametrlarining   bir   necha   ko'rinishlari   mavjud.
Harflardan,   raqamlardan   va   pastki   chiziq   simvolidan   iborat   nomli   parametlar
odatda shell o'zgaruvchi yoki oddiy o'zgaruvchi deyiladi. O'zgaruvchi nomi raqam
bilan emas, balki, harfdan yoki pastki chiziq simvolidan boshlanishi kerak.
Masalan, A76, MY_CAT va  __ nomlaridan foydalanish mumkin va 69-ko'cha
(raqam   bilan   boshlanish)   va   MY-NAME   (defisdan   iborat)   dan   foydalanib
bo'lmaydi.
Siz nomlovchi va qiymat o'zlashtiruvchi  shell  o'zgaruvchilar foydalanuvchi
tomonidan   yaratilgan   o'zgaruvchilar   hisoblanadi.   Foydalanuvchi   tomonidan
yaratilgan o'zgaruvchilarni istalgan vaqt o'zgartirish mumkin yoki ularni faqatgina
o'qish   uchun   qilib   qo'yishingiz   mumkin,   shunday   uni   qiymatarni   o'zgartirishingiz
mumkin   emas.   Siz   foydalanuvchi   tomonidan   yaratilgan   o'zgaruvchilarni   global
qilib qo'yishingiz mumkin. Global o'zgaruvchilar barcha qobiq va dasturlar uchun
ochiqdir.   Bir   shart   bilan,   global   o'zgaruvchilarda   faqat   katta   harflardan   boshqa
o'zgaruvchilarda esa kichik harfalrdan foydalanish maqsadga muvofiq.
Bourne   Again   Shell   o'zgaruvchi   qiymati   o'zlashtirish   sintaksisi   quyida
keltirilgan:
VARIABLEvalue
Tenglik belgisi(=) ikki tomonida ham probel bo'lmasligi lozim. Tenglikka 
quyida misol keltirilgan: $  myvar=abc
Bourne   Again   Shell   sizga   buyruqlar   qatorida   o'zgaruvchilarga   tenglikni
amalga   oshirishga   imkon   beradi.   Bu   belgilanishlar   buyruqar   qobig'I   uchun   local
hisoblanadi,   ya'ni   buyurish   uchun   faqatgina.   Myscript   shell   skripti   TEMPDIR
qiymatini   ko'rsatadi.   Keyingi   buyruqmy   script   ni   ishga   tushurib   TEMPDIR   ni
/home/sam/temp   qilib   o'rnatadi.   Echo   interaktiv   shell   myscript   ishga   tushgandan
so'ng   TEMPDIR   uchun   hech   qanday   qiymatga   ega   emasligini   ko'rsatadi.   Agarda
TEMPDIR   my   script   ishlayotgan   interaktiv   shelldao'rnatilgan   bo'lsa   bu   uning
qiymatiga hech qanday ta'sir ko'rsatmaydi. $  cat my_script
echo $TEMPDIR
$  TEMPDIR=/home/sam/temp my_script
/home/sam/temp
$  echo $TEMPDIR
4.3. Jarayonlar
Jarayon strukturasi
Fayl strukturasiga o'xshab jarayon strukturasi ham onalari, bolalari va hatto
root   ierarxikdir.   Ona   jarayon   o'z   navbatida   boshqa   jarayonlarga   bo'linuvchi   bola
jarayonga   bo'linadi.(Bo'linish   (fork)   so'zi,   yo'llarning   bo'linishi   kabi   bir   jarayonni
ikkitaga   aylanishini   bildiradi.   Avval   ikkita   fork   biri   ona,   biri   bola   bo'lishidan
tashqari   bir   xil   bo'ladi.)   Yangi   jarayonlar   yaratuvchi   operatsion   tizim   kundalik
ishi(rutinasi) yoki tizim chaqiruvi (system call) fork deb nomlanadi.
Tizim   boshlanganda,   Linux   ijroni   boshlaganda   u   1   raqamli   PID   bilan
initsalizatsiyani,   spontan   (ixtiyoriy)   jarayon   deb   nomlanuvchi   yagona   jarayonni
boshlaydi.   Bu   jarayon   jarayon   strukturasida   root   direktoriyasi   fayl   strukturasida
egallagandek   pozitsiyani   egallaydi:   Bu   tizim   va   foydalanuvchilar   ishlaydigan
hamma   jarayonlarning   ajdodidir.   Tizim   multifoydalanuvchi   rejimida   ishlaganida
init getty   yoki   mingetty   jarayonlarini ishga tushiradi   (loginni   ko'rsatadi: terminal
va   virtual   konsoldagi   yordam).   Kimdir   yordamga   javob   berib   RETURNni
bosganda getty foydalanuvchi  nomi va parol kombinatsiyasini  tekshiruvchi, login
deb   nomlanuvchi   utilita   ustidan   nazoratni   o'z   qo'liga   oladi.   Foydalanuvchi
kirgandan   keyin   login   jarayoni   foydalanuvchining   shell   jarayoniga   aylanadi.
Jarayon identifikatsiyasi
Linux har bir jarayonning boshida unikal PID (process identification-jarayon
identifikatsiyasi)   raqam   o'rnatadi.   Qancha   uzoq   muddat   jarayon   mavjud   bo'lsa,   u
shuncha payt bir xil PID raqamga ega bo'ladi. Bitta seans davomida bir xil jarayon
har   doim   login   shellini   bajaradi.   Yangi   jarayonni   bo'layotganingizda,   masalan,
tahririlovchidan   foydalanilganda   yangi   (bola)   jarayonning   PID   raqami   uning   ona
jarayoninikidan   turlicha   bo'ladi.Siz   login   shellga   qaytib   kirganingizda,   boshida kirganingizdagi   huddi   o'sha   jarayon,   huddi   o'sha   PID   raqam   bilan   bajarilayotgan
bo'ladi.   Quyidagi   misol   ishlayotgan   ps   jarayon   shell   (ona)   jarayonidan   bo'linib
chiqganini ko'rsatadi(242-bet). Siz uni -f parametri orqali chaqirganingizda ps har
bir   jarayon   haqidagi   ma'lumotning   to'liq   ro'yxatini   ko'rsatadi.   PS   displeyi   qatori
bilan   CMD   ustunidagi   bash   ishlayotgan   shell   jarayoniga   qaraydi.   PID   deb
nomlangan ustun PID raqamni aniqlaydi.   PPID   deb nomlangan ustun ona jarayon
PID raqamini aniqlaydi. PID va PPID ustunlaridan ishlayotgan shell jarayoni (PID
21341)   sleep   rejimidagi   jarayonning   (PID   22789)   onasi   ekanligini   ko'rishimiz
mumkin.   Sleepning   ona   PID   raqami   shellning   PID   raqami   (21341)   bilan   bir   xil
bo'ladi.
$  sleep 10 &
[1] 22789
$  ps -f
UID PID PPID C STIME TTY TIME CMD
alex 21341 21340 0 10:42pts/16 00:00:00 bash
alex 22789 21341 0 1 7:30pts/16 00:00:00 sleep 10
alex 22790 21341 0 17:30pts/16 00:00:00ps -f  ps man buyrug'i ps to'g'risidagi
ma'lumotlarni   sahifaga   chiqaradi   va   -f   qo'shimchasi   bilan   ustunlar   ko'rinishida
chiqaradi.   Ikkinchi   sleep   va   ps-f   komandalar   juftligi   shell   haligacha   o'sha-o'sha
jarayonni   ishga   tushirayotganini,   ammo   u   sleepni   ishga   tushirish   uchun   boshqa
jarayonga bo'linishini ko'rsatadi.
$  sleep 10 &
[1] 22791
$  ps -f
UID PID PPID C STIME TTY TIME CMD alex
21341 21340 0 10:42pts/16 00:00:00 bash
alex 22791 21341 0 17:31 pts/16 00:00:00 sleep 10
alex 22792 21341 0 17:31 pts/16 00:00:00ps -f  Shuningdek, siz jarayonlarning 
ona-bola aloqalarini  pstree (yoki -e parametri ( option ) bilan yoki usiz ps --
forest)dan foydalangan holda ko'rishingiz mumkin. Keyingi misol PID raqamini  ko'rsatish uchun chaqiruvchi pstree dagi -p parametrini ko' rsatadi: $  pstree -p 
init(1)-+-acpid(1395) -atd(1758) -crond(1702)
-kdeinit(2223)-+-firefox(8914)—run-mozilla.sh(8920)—firefox-bin(8925) -
gaim(2306) -gqview(14062) -kdeinit(2228) -kdeinit(2294)
-kdeinit(2314)-+-bash(2329) ---ssh 
(2561) \-bash(2339)
'-bash(15821)---bash(16778)
-kdeinit(16448) -
kdeinit(20888) -oclock(2317)
r
-pam-panel-icon(2305)—pam_timestamp_c(2307)
-login(1823)---bash(20986)-+-pstree(21028) 
'-sleep(21026)
Odingi   chiqish   qisqartiriladi.   –kdeinit   bilan   boshlanuvchi   qator   grafik
foydalanuvchi   ishga   tushirayotgan   barcha   jarayonlarni,   shuq   atordaf   irefox,   gaim
va   oclocklarni   ko'rsatadi.   –login   bilan   boshlanuvchi   qator   matnli   foydalanuvchi
pstree   ni   ishchi   fonda   ishga   tushirayotgan   vaqtda,   sleepni   orqa   fonda   ishga
tushirishini ko'rsatadi.
Komandaning bajarilishi
Siz shellga  buyruq berganingizda  u  odatda komandani   bajarish  uchun bola
jarayonga   bo'linadi.   Bola   jarayon   komandani   bajarayotganda   ona   jarayon   sleep
rejimida   bo'ladi.   Jarayon   sleep   rejimida   bo'lganida,   u   hech   qancha   kompyuter
vaqtini   sarflamaydi,   lekin   harakatsiz   bo'lib,   ishga   tushirilishni   kutib   turadi.   Bola
jarayon   buyruqni   bajarib   bo'lgandan   so'ng,     u   ona   jarayonga   komandani
muvaffaqiyatli yoki muvaffaqiyatsiz bajarilganligi to'g'risida o'zining chiqish holati
orqali   xabar   beradi   va   keyin   yo'qoladi.   Ona   jarayon   uyg'onadi(ishga   tushadi)   va
boshqa buyruqlarni berib turadi.
Siz   jarayonni   orqa   fonda   komandaning   oxiriga   ampersand   (&)   belgisini
qo'yish orqali ishga tushirganingizda, shell bola jarayonni sleep rejimiga tushirmay va bola jarayon tugallanishini kutmay uni jarayonlarga bo'ladi. Shell komandasini
bajarayotgan   ona   jarayon   bola   jarayon   ish   raqami   va   PID   raqami   haqida   hisobot
berib,   boshqa   buyruqlarni   berib   turadi.   Bola   jarayon   ona   jarayondan   mustaqil
ravishda orqa fonda ishlaydi.
Shunday   bo'lsa   ham   shell   siz   bergan   komandalarni   ko'pini   ishga   tushirish
uchun jarayonni   bo'linadi, ba'zi  komandalar   esa  shellning  ichiga  o'rnatiladi.  Shell
o'rnatilgan   komandalar   (builtin)ni   ishga   tushirish   uchun   jarayonni   bo'lishi   shart
emas.
Login shelli yoki shellostisi kabi berilgan jarayon ichida siz o'zgaruvchilarni
ko'rsatishingiz, initsalizatsiya qilishingiz, o'qishingiz va almashtirishingiz mumkin.
Lekin   (no   yMOjrcaHHio)   boshlang'ich   holatda   o'zgaruvchi   jarayon   uchun   lokal
hisoblanadi.   Jarayon   bola   jarayonga   bo'linganda,   ona   jarayon   bolaga
o'zgaruvchining   qiymatini   bermaydi.   Siz   bola   jarayonlar   uchun   o'zgaruvchi
qiymatiga ruxsatni (global) export builtin lar orqali berasiz.
Tarix (history) mexanizmi
Tarix   mexanizmi,   C   Shelldan   moslashtirilgan   xususiyatlar,   yaqinda
chaqirilgan   komandalar   qatori   ro'yxati(shuningdek   events   deb   nomlanadi)ni
saqlaydi   va   ro'yxatdagi   ixtiyoriy   event(hodisa)ni   qayta   bajarilishini   qo'llab-
quvvatlaydi.   Bu   mexanizm   sizga   oldin   foydalanilgan   komandalar   variantlarini
ishlatish   va   ulardagi   argumentlarni   qayta   ishlatish   imkonini   beradi.   Siz   ilgari
foydalangan   seansda   yoki   bundan   oldingisida   foydalanilgan   qiyin   komandalar   va
argumentlaringizdan   nusxa   olishingiz   va   bir-biridan   farqlanuvchi   komandalar
seriyasini yordamchi usullar bilan kiritishingiz mumkin. Shuningdek, tarix ro'yxati
siz   qilgan   ishlarni   yozib   qo'yish   uchun   xizmat   qiladi.   Bu   siz   xato   qilib
qo'yganingizda   va   nima   qilganingizga   yoki   qachon   komandalar   seriyasini   o'z
ichiga   olgan   jarayonni   qayd   etib   bormoqchi   bo'lganingizga   ishonchingiz   komil
bo'lmaganida yordam berishi mumkin.
Builtin   tarixi   tarix   ro'yxatini   ko'rsatadi.   Agar   ko'rsatmasa,   ba'zi   o'zgaruvchilarni
o'rnatishingiz kerak bo'ladi. Tarixni (history) boshqaruvchi o'zgaruvchilar
HISTSIZE  o'zgaruvchisi qiymati bitta seans davomida tarixda saqlangan 
hodisa (event)lar sonini ko'rsatadi. 100 va 1000 oralig'idagi qiymat normal holdir.
Shelldan   chiqib   ketganingizda   yaqinda   bajarilgan   komandalarning   ko'pi
HISTFILE   o'zgaruvchisi tomonidan berilgan faylda saqlanadi(boshlang'ich holati
~/.bash_history).   Keyingi   safar   shellni   boshlaganda   shu   fayl   tarix   ro'yxatini
initsalizatsiya   qiladi.   HISTFILESIZE   o'zgaruvchisining   qiymati   HISTFILE da
saqlangan   tarix   qatorlari   sonini   aniqlaydi   (HISTSIZE   bilan   bir   xil   emas).
HISTSIZE seans   paytida   yozib   qo'yilgan,   HISTFILESIZE esa   seanslar   orasida
yozib qo'yilgan hodisa (event)lar sonini va  HISTFILE  tomonidan belgilangan fayl
tarix ro'yxatini saqlaydi.
Bourne Again Shell har bir komanda qatori uchun ketma-ket hodisa raqami 
(event number)ni  belgilaydi. Siz bu hodisa raqamini bash qator qismi sifatida 
PS1da \ !ni kiritish orqali ekranga chiqarishingiz mumkin. Bu qismdagi misollar 
komanda harakatini ko'rsatib berishga yordam berayotgan raqamlangan qatorlarni 
ko'rsatadi.
Tarix ro'yxatidagi oxirgi 100ta hodisani ochish uchun quyidagi komandani qo'lda 
kiriting yoki  ~/.bash_profile  ga joylashtiring:  $HISTSIZE=100
Quyidagi komanda bashga seanslar orasidagi oxirgi 100ta hodisani saqlashni
buyuradi: 1-jadval Tarix o'zgaruvchilari $   HISTFILESIZE=100     HISTFILESIZE ni   o'rnatganingizdan   so'ng   siz
chiqib ketib yana kirishingiz mumkin va oldingi seansdagi oxirgi 100ta hodisa ham
sizning tarix ro'yxatingizda paydo bo'ladi.
Tarix ro'yxatida hodisalarni ko'rish uchun  history  komandasini bering.
Hodisalar   ro'yxatida   eng   eski   hodisa   ro'yxat   eng   yuqorisidan   boshlab
tartiblangan.   Quyidagi   tarix   ro'yxati   bash   qatorini   tarix   hodisasi   raqami   bilan
ko'rsatadigan   qilib   o’zgartirishi   mumkin   komandani   o'z   ichiga   oladi.   Tarix
ro’yxatidagi   oxirgi   hodisa   ro’yxatni   ochib   bergan   history   komandasidir.   32   $
history | tail
23 PS1 = "\! bash$ "
24 ls -l
25 cat temp
26 rm temp
27 vim memo
28 lpr memo
29 vim memo
30 lpr memo
31 rm memo
32 history \ tail
Qancha ko'p buyruqlarni ishga tushirsangiz, shuncha tarix ro'yxati kengayib
boradi.
4.   Buyruqlarni qayta ishga tushurish va tahrirlash
14
Siz tarix ro'yhatidagi har qanday hodisani qayta bajarishingiz mumkin. Bu
funksiya vaqtni, kuchni tejashi mumkin. Agarda uzun buyruqlarni tez, oson va aniq
qayta   kiritish   imkoni   bo'lmaganda   edi,   buyruqlar   qatorini   boshidan   oxirigacha
ko'rib   chiqishga   to'g'ri   kelgan   bo'lardi.   Siz   buyruqlarni   eslashingiz,
modifikatsiyalshingiz   va   qayta   ishga   tushurishni   3   usuli   bor:   FC   dan   foydalanish
mumkin;   buyruqni   undov   nuqtasi;   yoki   hodisalarni   bajarishda   va   tahrirlashda   vi
yoki emacs muharriridek ishlovchi Readline kutubxonasi. Fc: ko'rsatishlar, tahrirlash va buyruqlarni qayta ishlatish
Fc(to'g'rilash   buyrug'i)   o’rnatilgan   buyrug'i   tarix   ro’yhatini   ko’rsatish   va
tahrirlash   va   buyruqlarni   qayta   ishga   tushurish   uchun   ishlatiladi.   Bu   buyruq
buyrualar qatori redaktorlarinining ko'p funksiyalarini o'zida jamlagan.
Tarix ro'yhatini ko'rish
Fc   buyrug'ini   -l   qo'shimchasi   bilan   ishga   tushurish   oldin   yozilgan
buyruqlarni ko'rish imkonini beradi. Hech qanday qo'shimchasiz bu buyruq oxirgi
16 buyruqni chiqaradi:
$  fc -l
1024 cd
1025 view calendar
1026 vim letter.adams01
1027 aspell -c letter.adams01
1028 vim letter.adams01
1029 lpr letter.adams01
1030 cd ../memos
1031 ls
1032 rm *0405
1033 fc -l
1034 cd
1035 whereis aspell
1036 man aspell
1037 cd/usr/share/doc/*aspell*
1038 pwd
1039 ls
1040 ls man-html
fc -l qo'shimchasi bilan nol, bir yoki ikki qiymatlarini olishi mumkin. Argumentlar
tarix ro'yhatidagi qismni ko'rsatadi: fc -l  [first [last]]
fc buyruqlartarix ro'yxhati oxirgi hodisadan boshlab birinchisigacha tuziladi.
Argument   hosida  raqami, buyruqlar  qatori  brinchi  bir  necha  simvoli   yoki  manfiy
son   bo'lishi   mumkin.   Keying   buyruq   1030   dan   1035   gacha   bo'lgan   hosidalarni
ko'rsatadi:
$  fc -l 1030 1035
1030 cd ../memos
1031 ls
1032 rm *0405
1033 fc -l
1034 cd
1035 whereis aspell
Keyingi   buyruq   whereis   bilan   boshlanuvchi   eng   oxirgi   hodisani   hisoblab
chiqaradi:
$  fc -l view whereis
1025 view calendar
1026 vim letter.adams01
1027 aspell -c letter.adams01
1028 vim letter.adams01
1029 lpr letter.adams01
1030 cd ../memos
1031 ls
1032 rm *0405
1033 fc -l
1034 cd
1035 whereis aspell
Ro'yhatdan bitta buyruqni tanlash uchun birinchi va ikkinchi argumentga bitta
identifikatordan foydalaniladi. Keyingi ro'yhatlar 1027 hodisa buyruqlati: $  fc -l 1027 1027
1027 aspell -c letter.adams01
$  whereis date
date: /bin/date ... $  echo 
$PATH 
.:/usr/local/bin:/usr/bin:/bin 
$  cat > date
echo "This is my own version of date." $ 
date
Sat May 24 11:45:49 PDT 2008
2.       Quyidagi komandani hosil qildingiz deb hisoblaylik: $ 
person=jenny
Quyidagi komandalarning natijasini ko'rsating:
a. echo $person
b. echo '$person'
c. echo "$person"
3. Quyidagi shell skripti sizning home direktoriyangizdagi   journal-file  nomli
fayliga   kirishlar   qo'shadi.   Bu   script   telefondagi   so'zlashuvlar   va   uchrashuvlarni
kuzatishga yordam beradi.
$  cat journal
# journal: add journal entries to the file
# $HOME/journal-file 
file=$HOME/journal-file
date >> $file
echo -n "Enter name of person or group: " 
read name
echo "$name" >> $file 
echo >> $file
cat >> $file echo "" >> $file echo >> $file
a. Skriptni ishga tushira olishingiz uchun nima qilish kerak?
b. Terminalga   kiruvchi   ma'lumotlar   kiritilganda   nega   birinchi
marta   read   builtin   skriptidan,   ikkinchi   marta   esa   cat   utilitasidan
foydalaniladi?
4. Bajarilayotgan shell nomini chiqarib beruvchi shell skriptini yozing.
5. Quyidagi shell skript harakatini tushuntiring:
$  cat quotedemo
twoliner="This is line 1. 
This is line 2." echo 
"$twoliner" echo 
$twoliner
a. Har   bir   echo   komandasi   nechta   argumentni   chop   qiladi?
Tushuntiring.
b. IFS shell   o'zgaruvchisini   shunday   qilib   qayta   aniqlangki,
ikkinchi echoning natijasi birinchisiniki bilan bir-xil bo'lsin.
c. Linux Operatsion tiznimning qobiq dasturlari 
d. Ma`lumki, foydalanuvchi bilan kompyuter o'rtasidagi muloqatni operatsion
tizim   ta`minlaydi.   Shu   bois   operatsion   tizimning   interfeysi   qanchalik   qulay   bo'lsa,
foydalanuvchining kompyuter bilan ishlashi shunchalik oson va samarali bo'ladi.  Hozirda
eng ommaviy sanalgan MS-DOS operatsion sistemasi bir vaqtlar inson bilan kompyuter
o'rtasida   vositachi   rolini   o'tab,   kompyuter   resurslaridan   foydalanishni   osonlashtirgandi.
Lekin  o'zi  rivojlanish  natijasida  haddan  ziyod  ko'p  buyruqlar   bilan  to'lib  toshib  ketdiki,
bu   foydalanuvchi   ishini   sustlashtirishga   olib   keldi.   Shunday   qilib,   foydalanuvchi   bilan
kompyuter   o'rtasida   yangi   vositachi   yaratish   ehtiyoji   tug'ildi   va   natijada   operatsion
sistemaning qobiq dasturlari yuzaga keldi.  Qobiq dastur operatsion sistema boshqaruvida
ishga   tushiriladigan   va   shu   operatsion   sistema   bilan   ishlashga   ko'maklashadigan
dasturdir.   Eng   omaviy   qobiq   dasturlardan   biri   Norton   Commander   deb   nomlanadi.   Bu
qobiq   dasturi   amerikalik   mashhur   dasturchi   Piter   Norton   tomonidan   yaratildi   va
kompyuterdan  foydalanuvchilar   uchun   katta   qulayliklarni  keltirib  chiqardi.   WINDOWS foydalanuvchilar   uchun   yangi   imkoniyatlar   yaratgani   sababli   uni   grafik   qobiq   emas,
grafik muhit deyish qabul qilingan.
e. Norton   Commander   kompyuter   ekranida   disk,   katalog   va   fayllar
strukturasiniko'rgazmali   tarzda   ko'rsatib   turadi.   Ma`lumki,   operatsion   sistemaning
buyruqlarini   kompyuterga   kiritish   ko'p   mehnat,   vaqt   va   qunt   talab   qiladi.   Norton
Commander   foydalanuvchini   bu   mehnatdan   va   operatsion   sistemaning   o'nlab
buyruqlarini   doimo   yodda   saqlashdan   xalos   etadi.   Mazkur   dasturning   eng   afzal
tomonlaridan biri bo'lib,   operatsion sistema buyruqlaridan oson va samarali foydalanish
imkonini   beradi.   Norton   Commander   dan   foydalanuvchi   qobiq   dasturni   tark   etmasdan
turib, biror dasturni tuzishi yoki matnni tayyorlashi, ularni tahrirlashi va ishga tushirishi
mumkin.  Norton   Commander   foydalanuvchi   kiritgan  buyruqlarni  esda   saqlab  boradi   va
ishlash   jarayonida   yana   shu   buyruqlardan   foydalanishga   to'g'ri   kelsa,   ularni   takroran
klaviatura orqali termasdan amalga oshirish imkonini beradi. 
f. Foydalanuvchi   tomonidan   tanlangan   operatsion   sistema   buyrug'i   yoki
amaliy   dastur   bajarib   bo'lingandan   so'ng   yana   Norton   Commander   ga   qaytiladi.
Kompyuterlar   texnik   tomondan   mukammallashib,   ularning   grafik   imkoniyatlarining
rivojlanib   borishi   dasturchilarda   grafik   interfeysli   qobiq   dasturlar   yaratish   fikrini
uyg'otdi.   Bu   ishga   birinchi   bo'lib   Microsoft   kompaniyasi   kirishdi.   Mazkur   kompaniya
tomonidan   1985-yilda   yaratilgan   WINDOWS   1.0   grafik   qobiq-dasturi   aytarlik
afzalliklarga   ega   emas   edi.   Unda   fayllar   ekranda   chiroyliroq   tasvirlangan.   Shunday
bo'lsada,   u   grafik   qobiq-dasturlarning   keyingi   naqllarining   yaratilishiga   turtki   bo'ldi.
1987-yilda yaratilgan WINDOWS 2.0 grafik qobiqda WINDOWS 1.0 dagi kamchiliklar
bartaraf etilgan bo'lsada, foydalanuvchilar tomonidan qo'llab- quvvatlanmadi.  1990-yilda
ishlab   chiqarilgan   WINDOWS   3.0   dasturi   birinchi   ommaviy   grafik   qobiq-dasturga
aylandi. Keyinchalik, 1992-yilda WINDOWS 3.1   yaratilib, unda WINDOWS 3.0 da yo'l
qo'yilgan   xatolar   bartaraf   etildi.   1993   yilda   bir   nechta   kompyuterlarni   bir-biri   bilan
bog'lab ishlatish imkoniyatini (lokal tarmoq,   bu haqda keyingi paragraflarda batafsil fikr
yuritiladi) beruvchi WINDOWS 3.11   dasturlar tizimi yaratildi.   Quyida WINDOWS ning
boshqa qobiq-dasturlardan farqlab turadigan ba`zi   xususiyatlari keltirilgan.  
g. Ko'pvazifalilik . Bir vaqtda bir nechta dasturlarni ishga tushirish imkoniyati
mavjud.  h. Yagona dasturiy interfeys.  WINDOWS uchun yaratilgan dasturlar bir-biri
bilan shunday aloqadaki, bir dasturda hosil qilingan ma`lumotlarni boshqa dasturga olib
o'tish va qayta ishlash mumkin. 
i. Foydalanuvchining   yagona   interfeysi.   WINDOWS   uchun   yaratilgan
barcha   dasturlarda foydalanuvchi bilan muloqat usuli deyarli bir xil. Shu sababli bunday
dasturlarning bittasi bilan ishlashni o'zlashtirib olgan foydalanuvchi boshqasini ham   oson
o'zlashtirib oladi.  
j. Grafik interfeys.   Dastur va ma`lumotlar fayllari ekranda o'ziga xos rasmli
nishonlar   ko'rinishida tasvirlanadi. Fayllar bilan ishlash "sichqoncha" yordamida amalga
oshiriladi.
k. Yagona  apparatli-dasturiy  interfeys.   WINDOWS  turli-tuman  qurilmalar
va   dasturlarning mutanosib ishlashini o'z zimmasiga oladi.  
l. Total Commander foydalanuvchi int е rf е ysi  
m. Total Commander (TC)  oynasini boshqarish Win ning oddiy prinsiplariga
asoslangan.   Oynani   sarlavha   oynasiga   o’tkazish   yoki   “sichqoncha”ni   oyna
ramkasidagi   k е rakli   joyga   qo’yib,   o’lchamni   o’zgartirish   mumkin.   TC   ni   ochiq
holatda   masalalar   pan е lida   ilovalar   tugmasi   aks   etib   turadi.   Oyna   <Alt>+<F4>
klavishlari   oynaning   “X”   tugmasi   yoki   oynaning   kont е kst   m е nyusidagi   buyruq   va
shu   bilan   birga   “ Выход ”   (Quit)   Fayl   m е nyusidagi   (File)   buyruqlari   yordamida
yopiladi.   Oynani   butun   ekran   bo’ylab   yoyish   yoki   masalalar   pan е lidagi   tugmaga
yig’ish,   k е yin   esa   shu   tugma   kont е kst   m е nyusi   yoki   shu   tugmaga   bosish   bilan
oynaning   birlamchi   ko’rinishini   tiklash   mumkin.
TC   ni   masalalar   pan е lidagi   tugmaga   yana   <Shift>+<Esc>   klavishlari   yordamida
yig’iladi.   Bundan   tashqari,   “ Основные   операции ”   op е ratsion   sozlashlar
saxifasida   “ Сворачивает   в   системный   трей ”   (move   icon   to   system   tray
minimized)   opsiyasi   bor.   U   yoqilsa   TC   ni   yig’ishda   uning   tugmasi   masalalar
pan е lidan   o’chadi,   b е lgi   esa   tizimli   tr е yda   (masalalar   pan е lida   soat   yonida)   paydo
bo’ladi.   Bu   b е lgiga   bosilsa,   TC   oynasi   orqaga   qaytadi.
TC   oynasining   standart   bo’yicha   ( по   умолчанию )   umumiy   ko’rinishi.
Standart   bo’yicha   bir   vaqtning   o’zida   TCning   bitta   v е rsiyasi   yoki   turli   v е rsiyalarning
bir   n е chta   oynalari   bir   vaqtning   o’zida   ochiq   bo’ladi.   Agar   bunday   holat   uchun
zarurat   bo’lmasa,   “ Основные   операции ”   sozlashlar   pan е lidagi “ Запреты   одновременного   запуска   нескольких   копий   ТС ”   opsiyasi
b е lgilansa   kifoya.   Shundan   so’ng,   dastur   qayta   ishga   tushirilsa,   uning   yagona   oynasi
faollashadi.
n. Oynalarni   yopish,   yoyish,   yig’ish   va   tiklash   kabi   standart   prots е duralar
uchun
klavish   tanlash   va   o’zgartirish   mumkin.   Masalan,   TC   ni   Norton   Commander
standarti   kabi   <F10>   klavishi   yordamida   yopiladigan   bo’lishini   xohlasangiz,   sozlash
( настройка )   dialogidagi   “ Разное ”   (misc)   sahifasida   shunday   o’zgartirishlar   uchun
maxsus s е ksiya mavjud.
o. Yana bir muhim narsa, d е ylik ekranga foydalanuvchi uchun oynaning qulay
holati,
o’lchami   o’rnatilgan   bo’lsa   yoki   oynaning   ekran   bo’ylab   to’liq   yoyilgan   holati
o’rnatilgan   bo’lsa,   bunday   sozlashlar   avtomatik   tarzda,   ilovalarni   yopish   vaqtida
eslab   qolinadi.   Bunday   holat   TC   ning   oyna   va   dialoglarida   saqlanib   qolinadi.   Ammo
TCning   boshqa   oynasida   bu   holat   bo’lmaydi.   Tasodifiy   va   o’ylamasdan   qilingan
o’zgartirishlarning   albatta   tasdiqlanishi   so’raladi,   bu   tasdiqlanish   foydalanuvchi
tomonidan   bajarilishi   shart.   Buning   uchun,   “ Конфигурация ”   m е nyusida
“ Заполнить   позицию ”   (Save   Position),   yoki   “ Сохранить   настройки ”   (Save
Settings)   buyrug’ini   tanlash   k е rak.   Bu   buyruqlar   t е ng   kuchli   emas,   ammo   ikkisi   ham
oynaning o’lchami va holatini saqlab qoladi.
p. Oyna sarlavhasi
q. TC   oyna   sarlavhasi   oynani   boshqaruvchi   standart   kont е kst   m е nyu,   oynani
yig’ish,
yoyish   va   tiklash   tugmalaridir.   Sarlavha   rangi   va   tugmalarning   ko’rinishi   ekranni
tizimli   sozlashlarida   b е rilgan   va   boshqaruv   pan е llari   orqali   global   tarzda
o’zgartiriladi.
Dastur   b е lgisi   o’ng   tomonida   uning   nomi,   v е rsiya   nom е ri,   masalan,   Total
Commander   7.04,   fayli   kaliti   mavjud   yoki   yo’qligiga   qarab   “ Не
зарегистрирования ”   matni   yoki   lits е nziya   egasi   nomi   chiqadi.
Dastur   vositalari   bilan   bu   yozuvlarga   o’zgartirish   kiritish   mumkin   emas,   ammo   TC
sarlavhasida   turli   foydali   ma'lumot   yoki   qo’shimcha   tugmalarni   joylashtirish   uchun
uchun tashqi dasturlar mavjud.   r. Oynaning   yuqori  qismi:   sarlavxa,  asosiy  mеnyu,  uskunalar   va  disklar
panеli
Agar   bir   nеchta   TC   oynasi   ochilgan   bo’lsa,   dastur   nomi   va   bеlgisi   orasida,   kvadrat
qavslarda   nusxa   rasm   larda   ko’rsatiladi   (xohish   bo’yicha   buni   ko’rinmaydigan   qilish
mumkin).   Agar   dastur   boshqa   foydalanuvchi   nomidan   ishga   tushirilgan   bo’lsa,   bеlgi
yoki   tartib   raqamidan   so’ng   uning   nomi   bеriladi.
Bosh   mеnyu   Oyna   sarlavhasidan   so’ng,   bosh   mеnyu   qatori   joylashgan.   Uning
foydalanuvchi va kеngaytirilgan variantlari bir nеchta bo’lishi mumkin, ammo uning har
bir   tilda   standart   varianti   har   bir   pakеtda   bittadir.
  Mеnyu,   eslatib   o’tamiz,   buyruqlar   to’plamiga   murojaatni   ta'minlovchi   punktlar
ro’yxatidir.   TC   da   buyruqlarni   chaqirish   usullari   bir   talay,   ammo   eng   qulay,   tеz   usul
bo’lmasa   ham,   eng   an'anaviy   usuli   mеnyudir.
Uskunalar panеli Uskunalar panеlining asosiy funksiyasi – TCning buyruqlarini bajarish
bo’lib, shubilan birga tashqi ilovalarni turli paramеtrlar, bilan ishga tushirishdir.
s. Disk tugmalari
t. Bu   tugmalar   kеrak   tugmaga   “sichqoncha”   bеlgisi   bilan   bosib,   diskni   tеz
almashtirish   imkonini   bеradi.   joriy   disk   tugmasi   bosilgandеk   turadi.   Tugmalardan
maxsus
rеjimlardan   chiqish   uchun   ham   foydalaniladi.   Disk   tugmasida,   “sichqoncha”   o’ng
tugmasi   bosilsa,   kontеkst   mеnyu   chiqadi,   uning   yordamida   disklarni   formatlash   va
ulardan   nusxa   olish   mumkin.   Disk   tugmalari   panеli   standart   bo’yicha   o’chirilgan
bo’ladi.   undan   foydalanish   kеrak   bo’lsa,   “ конфигурация ”   (configuration)
mеnyusidan   “ настройка ”   (options)   buyrug’ini   tanlab,   oyna   ko’rinishini   tanlash
mumkin.
Disk   tugmalarida   3   xil   tipdagi   bеlgilar   mavjud:
   oddiy   disklar   uchun,   ular   qanday   turdagi   bеlgisi   bilan   (diskеta,   qattiq   disk,
CD/DVD   uchun,   tarmoq   diski,   RAM   –   disk   ...   )   ;
   “ сетевое   окружение ”   –   tarmoq   bеlgisi   oldida   /   bеlgisi   bilan;
   FTP   –   ulanish   FTP   ulanish   oldida   0   ...   9   raqamlari   bilan;
Disk   tugmalari   uchun   axborot   tashuvchi   haqida   ma'lumot   chiqadi.
“ Oyna ko’rinishi”ni sozlash sahifasi
u. Diskni tanlash oynasi. v. Diskni tanlash oynasi har bir pan е lning t е pa qismida bo’ladi va yopiq holda
joriy
disk   nomini   aks   ettiradi.   Unga   sichqonchaning   o’ng   tugmasi   ko’rsatkichi   yordamida
bosilsa,   kont е kst   m е nyuni   ko’rish   mumkin,   u   diskni   formatlash,   undan   nusxa   olish,
unga   murojaat   qilish   va   h.k.   amallarni   bajarish   mumkin.
Diskni   tanlash   oynasi,   disk   sohasi   hamda   ma'lumotlar,   navigatsiya   tugmalari.
Pastga   tushib   ochiladigan   disklar   ro’yxati   <Alt>+<F1>   klavishlar   o’ng   pan е l   uchun,
<Alt>+<F2>   klavishlar   chap   pan е l   uchun   yordamida   yoki   disklar   ro’yxatiga
sichqoncha   tugmasini   bosish   bilan   ochiladi.
Ro’yxat   ikki   qismdan   iborat   bo’lib,   chap   qismi   -   murojaat   qilish   mumkin   bo’lgan
disklarni   bildiradi,   masalan,   [-c],   oddiy   disklar   disk   harflari,   “ сетевое   окружение ”
va   fayl   tizimi   plaginlari   esa   ”/”,   FTP   ulanishlar   0,   ...   9   raqamlar   bilan   aks   ettiriladi.
Ro’yxatning   o’ng   qismi   –   bu   tomlar   farq   b е lgisi   ( метка ),   s е rv е rlar   yoki   tarmoq
kataloglari   nomi,   yoki   ularning   tashuvchilarining   qisqacha   tavsifidir.
Umumiy   va   bo’sh   disk   makoni   xaqidagi   ma'lumot   fayl   pan е li   ustida,   diskni   tanlash
oynasining   o’ng   tomonida   chiqariladi.
O’zak (ajdod) katalogga o’tish
w. Bu   holatda   2   ta   tugmadan   foydalaniladi:   birinchisi   “/”   b е lgisi,   ikkinchisi
ikki   nuqta
orqali.   Birinchi   tugmadan   foydalanilganda   joriy   disk   o’zak   katalogiga   o’tadi.
Ikkinchi   esa   ajdod   ( родительский )   katalogga   o’tishga   yordam   b е radi.   Bu
tugmalarning   joylashishi,   TC   oynasining   boshqa   int е rf е ys   el е m е ntlari   aks   ettirilgan
yoki   ettirilmaganiga   bog’liqdir.   Standart   bo’yicha   disk   makoni   qoshidagi
ma'lumotlar   bilan   va   qator   tugmalar   bilan   tugatiladi.   Agar   disklarni   tanlash   oynasi
o’chirilgan   holda,   disk   tugmalari   pan е li   aks   ettirilayotgan   bo’lsa,   ularga   bu   tugmalar
qo’shiladi(11-2).   Agar   unisini   ham   bunisini   ham   o’chirib   qo’yilsa,   o’tish   tugmasi
umuman bo’lmaydi.

Shell interpretatorida ishlashi Reja: 1. Sodda shell skriptlarini yozish. 2. Parametrlar va o'zgaruvchilar. 3. Jarayonlar. 4. Buyruqlarni qayta ishga tushirish va tahrirlash.

1. Sodda shell skriptlarini yozish n Shell qobig'i buyruq interpretatori va yuqori sath dasturlash tili hisoblanadi. Buyruq interpretatori sifatida shell komandalar qatoriga kiritilgan komandalarni qayta ishlaydi. Yuqori sath dasturlash tili sifatida shell scripts nomli faylda saqlanuvchi buyruqlarni qayta ishlaydi. Boshqa tillar kabi shell o'zgaruvchilar va oqimni boshqarish buyruqlariga ega(masalan, for sikllari va if shart operatori). Shellni buyruqlar qatori interpretatori sifatida foydalanilganda ishlaydigan muhitingizni sozlashingiz mumkin. Siz o'z displeyingizda joriy katalog nomini, funksiya yaratishni yoki cp psevdonimini qo'yishingiz, aspektlarni o'zgartirish uchun kalitso'zlardan foydalanish va boshqalarni amalga oshirish mumkin. Siz bundan tashqari hisobotlar to'plamini ishga tushuruvchi uzun script uchun qiyin buyruqni saqlovchi ish bajarilgandan so'ng sizga chop etishni va yuborishni eslatishdan iborat shell ssenariysini yozishingiz mumkin. Boshqa ssenariylar dasturlar hisoblanib, ular faqatgina dasturni ishga tushurmaydi. Ko'pchilik shell ssenariylari Bourne Again Shell ostida ishga tushurilish uchun yozilgan. Bir foydalanuvchili rejimda tizim yuklanishini yoki tizimga texnik xizmat ko'rsatishni, ma'murlashni yoki ta'mirlash ishlarini amalga oshirish shell bilan tanishishni eng yaxshi usuli hisobalandi. Sarlavha Bourne Again Shell Bell Labarotories dagi AT&T xodimi Stiv Born tominidan yozilgan Bourne Shell ga asoslangan. Ko'plab yillar davomida haqiqiy Bourne Shell kengaytirilib kelindi, ammo haligacha bazaviy shell bilan ko'plab UNIX tizimlari ta'minlangan. O'zining uzoq va muvaffaqiyatli tarixi davomida original shell UNIX tizimini boshqarish uchun yordam beruvchi skriptlar yozishda foydalanilingan. Linux tizimida ba'zi bir skriptlar Bourne Again Shell ssenariysi ko'rinishida paydo bo'lmoqda. Bourne Again Shell original Shell da bo'lmagan ko'plab kengaytmalar va funksiyalarni o'zida jamlasa ham original shell bilan moslik mavjud, shuning uchun ham ssenariylarni bash qobig'i ostida ishga tushurish mumkin. UNIX tizimlarida haqiqiy Bourne Shell sh deb nomlangan.

Linux tizimlarida sh bashni ta'minlash uchun Bourne Shell ishlab turishini talab etuvchi havola bo'lib xizmat qiladi. sh chaqirilganda Bourne Shellni emulyatsiyalash uchun barcha imkoniyatni ishga soladi. V Unix tizimi Devid korn tomonidan yozilgan Korn Shell(ksh)ni namoyish etdi. Bu qobiq ko'plab original Bourne Shell funksiyalar bilan kengaytirilib, qo'shimcha imkoniyatlar qo'shildi. Bourne Again Shell ba'zi buyruqlar psevdonimi va buyruqlar qatorini tahrirlash imkoniyati xususiyatlari Korn Shell o'xshash tomonlariga asoslangan. POSIX oilasiga mansub standartlar PASC komiteti tomonidan ishlab chiqiladi. POSIX 1003.2 qobiqning standart funksionalligini izohlaydi. Bourne Again Shell POSIX standartining talablarga mos funksiyalar bilan ta'minlaydi. Buni bajarish uchun to'liq kuch bilan harakat qilinadi. Bashni chaqirayotganingizda -- posix shaklida amalga oshirilish POSIX standartiga to'liq moslikni ta'minlaydi. Shell bazaviy xususiyatlar(Shell Basics) Bu xususiyatlar yuklanish fayllarini yozish va undan foydalanish va standart xatolikni yo'naltirish, shell soda ssenariylarini yozish va bajarish, buyruqlarni guruhlash, vazifalarni boshqaruvini realizatsiyalash va stek kataloglarni manipulatsiyalshni qamrab oladi. Yuklanuvchi fayllar Shellni ishga tushurganda avtomatik tarzda yuklanuvchi fayllarni inisializatsiyalaydi. Shell ishga tushuvchi fayllar u interaktivmi(bash buyrug'ini olish singari) yoki interaktiv emasmi(shell skriptni bajarishda yakka foydalanilgan) shunga bog'liq. Siz fayldagi buyruqni bajarish uchun o'qish ruxsatiga ega bo'lshingiz kerak. Fedora/RHEL mos buyruqlarni ba'zi shunday fayllarga joylaydi. Shellga kirish Bu bo'limda ko'riladigan fayllar ro'yhatga olingan va --loginoption parametri bilan ishga tushurilgan shellda bajariladi. Kirish o'ziga xos interaktivdir. Shell birinchi bo'lib /etc/profile dagi buyruqlarni bajarardi. Super foydalanuvchi bu

faylni bash foydalanuvchi uchun tizim uchun umumiy bo'lgan xarakteristikalarida standart qilib o'rnatishi mumkin. So'ngra shell faylni ~/.bash_profile, ~/.bash_login va ~/.profile ketma-ketlik bo'yicha birinchi fayldagi buyruqni bajarish uchun izlaydi. Siz aniqlashtirish uchun buyruqlarni keltirilgan fayllardan biriga joylashingiz mumkin. Boshida standart /etc/profile bo'ladi. Tizimdan chiqishda bash ~/.bash_logoutfile fayldagi buyruqni bajaradi. Tez- tez buyruqlar seansdan so'ng tozalanadi, ayniqsa vaqtinchalik fayllarni o'chiruvchi va faylga yo'naltiruvchi buyruqlar. Ishga tushurish fayllarni yaratish Ko'plab yuklanuvchi fayllar va toifalar shellda mavjud, sizga kerakli narsa uy katalogdagi .bash_profile va .bashrc fayllari hisoblanadi. Bu kabi buyruqlarga misol: .bash_profile da ishga tushurish buyrug'i, .bashrc da tizimga kirish uchun(.bashrc mavjud bo'lganda). Bu o'rnatma orqali .bashrc dagi buyruqlar kirgan va kirmagan shell orqali bajariladi. if[ -f ~/.bashrc]; then source ~/.bashrc; fi [ -f ~/.bashrc] sizning .bashrc nomli fayl uy katalogingizda mavjudligini tekshiradi. .(nuqta) yoki source: joriy shellda ishga tushurish fayllari .bashrc ishga tushish faylini tahrirlashdan so'ng o’zgartirish kuchga kirish uchun qayta kirib chiqish shart emas. Ishga tushurish faylini .(nuqta) yoki o'rnatilgan manba orqali ishga tushurish mumkin. Boshqa buyruqlar kabi .(nuqta) buyruqlar qatorida bo'sh joy(SPACE) bilan kelishi kerak. .(nuqta) yoki source dan foydalanish shell ssenariyni ishga tushurishga o'xshab ketadi. .(nuqta) yoki source dan ssenariylarda o'zgaruvchilarni kiritish kabi o'zgarishlar bilan ishga tushurishda foydalanish shellga o'z ta'sirini ko'rsatadi. Siz .(nuqta) yoki source buyrug'idan har qanday skriptni ishga tushurishda fayl sifatida sodir bo'lmaydi. Quyidagi misolda, .bashrc bir necha o'zgaruvchilarni o'rnatadi va PS1 o'rnatadi, host nomini so'raydi. .(nuqta) yangi qiymatlarni kuchga kirishini ta'minlaydi.

$ cat ~/.bashrc export TERM=vt100 # set the terminal type export PS1="$(hostname -f): " #set the prompt string export CDPATH=: $HOME # add HOME to CDPATH string stty kill ' A u' # set kill line to control-u $ . ~/.bashrc bravo.example.com: Standart xatolikni yo'naltirish Bu bo'lim standart chiqarish konsepsiyasini qamrab olib, buyruqni standart chiqishini yo'naltirishni tushuntirgan. Standart chiqishga qo'shimcha ravishda buyruqlar standart xatolik chiqishiga yuborilishi mumkin. Buyruqlar ma'lumot bilan aralsh holda saqlash uchun xatolik xabarlarini standart xabar shaklida yuborishi mumkin. Standart chiqishlarda bajarilgan kabi shell standart xatolik buyruqlarni ekranga yuboradi. Agarda yo'naltirilmasa siz chiqish buyrug'i signali bilan yuborilayotgan signal orasidagi farqni bilolmaysiz va bu standart xatolik kabi jo'natiladi. Deskriptor fayl - bu dastur o'z natijasini yuboruvchi va kiritish formasidan kirish ma'lumotlarini oluvchi joydir. Dastur bajarilish davomidadastur ishga tushurish jarayoni 3 faylni ochadi: 0(standart kirish), 1(standart chiqish) va 2(standart xatolik). Yo'naltirish chiqish simvoli qisqa 1> ko'rinishga ega bo'lib, shellga standart chiqishga yo'naltirishni buyuradi. Xuddi shu kabi, < simvol 0< qisqartmasi bo'lib, standart kirishga yo'naltiradi. 2> simvoli standart xatolikni yo'naltiradi. Quyidagi misollar standart chiqish va standart xatolikni turli xil va bir xil fayllarga yo'naltirishni ko'rsatadi. Cat utilitasini mavjud bo'lmagan fayl nomi bilan ishga tushirganimizda cat standart xatolik fayliga xatolik haqida xabar yuboradi va