SHELL. Mihhail Karutin Artur Assor. Sissejuhatus. UNIX. Operatsioonsüsteem UNIX loodi Ken Thompsoni ja Denis Ritchi poolt Bell Laborotories ’ i s (AT&T). Sissejuhatus: UNIX ’i kolm komponenti. Keel C Failisüsteem Käsukeel. Sissejuhatus: K äsu interpr e taatorkeel Shell.
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
Sissejuhatus:SKRIPTID JA INTERPRETAATORID Käsu interpreteerijatäidab käsud otseselt, ilma esialgse kompileerimiseta. Interpreteerija töötleb käsud ja skriptid, mis kasutaja sisestab käsurea kaudu. Skript – on tekstifail, mille sisuks on ettevalmistatud käskude järjestus.
Klassikalised käsuinterpreteerijad • B Shell (Bourne Shell) - Stephen R. Bourne • C Shell - William N. Joy • C Shell ja B Shell ei sobi omavahel kokku
Bourne-Again SHell • Välja töötatud FSF`i poolt. • Kombineeritud B Shell’i süntaks ja C Shell’i võimsus
Käsude struktuur • Käsu formaat <käsu nimi> <võtmed> <parameetrid> Näiteks: ls -lh /usr/bin • Esimesed sümbolid tühikuni (rea lõpuni) interpreteeritakse käsuna cat cat • Selline struktuur ei esine alati
Käskude gruppeerimine • Grupeerimise vahendid: • ; - jarjestatud käsu täitmine • & - asünkroonne käsu täitmine • && - käsu täitmine tingimusel, et eelmine käsk on täidetud • || - käsu täitmine tingimusel, et eelmine käsk ei ole täidetud
Ümbersuunamine (järg) • Vigadeta ümbersuunamine #cat f1 f2 Faili sisu cat: f2: No such file or directory • Vigadega ümbersuunamine cat f1 f2 2>f_err cat f1 f2 >>ff 2>ff cat f1 f2 2>>ff 1>&2
Failde nimed(generatsioon) • * - suvaliste sümbolite jada cat f* cat *f* • ? – üks suvaline sümbol cat program.? • […] – sulgudes iga sümbol cat [a-d]* cat [abcd]*
Käsufailid • sh execfile • chmod +x execfile .execfile
SHELL`i muutujad • $ - muutuja tähistamine #echo $var_2 OS UNIX #echo var_2 var_2 • Kui a=/root/ siis: ls /root/temp on sama mis ls ${a}temp
Muutuja vahetamine tinglikult sh-2.05b# echo ${x-new} new sh-2.05b# echo ${y=new} new sh-2.05b# echo $y new sh-2.05b# echo ${z?new} sh: z: new sh-2.05b# echo ${y+new_1} new_1 sh-2.05b# echo $y new
Käsufaili parameetrid • Parameetrid on positsioonilised • Nende poole pöördumine: $N kus N=0, …,9 • $0 – käsufaili nimi • Kui parameetreid on rohkem kui 9, kasutatakse “shift” käsku • Mugav on “set” käsk
Käsufaili parameetrid (näide) • Käsufail “examp-1”: echo See on arvutamine $0: sort $2 >> $1 cat $1 • Failide “cock” ja “tail” “examp-1” parameetrid: cock: See on sorteeritud fail: tail: 4 1 3 2
Käsufaili parameetrid (näide) sh-2.05b# sh example-1 cock tail See on arvutamine example-1: See on sorteeritud fail: 1 2 3 4
Käsufaili parameetrid (shift) # sh many 10 20 30 40 50 60 70 80 90 100 110 120 130 many: Palju parameetreid Parameetrite uldine arv = 13 Algseisund: 10 50 90 1 nihe: esimene=20 viies=60 uheksas=100 1 + 2 = 3 nihed: esimene =40 viies =80 uheksas =120 150
Käsufaili parameetrid (set) sh-2.05b# date Thu May 26 00:02:48 EEST 2005 sh-2.05b# set `date` sh-2.05b# echo $2 $3 $6 May 26 2005
Shell-interpretaatori asendused • Enne täitmist: • Tulemuste asendused – tagurpidiste jutumärkides olevate käskude täitmine • Muutujate ja parameetrite väärtuste asendused – sõnad, mis algavad “$”-st, asendatakse vastavate muutujate ja parameetrite väärtusega • Tühikute asendamine – ignoreeritakse ekraneeritud tühikud • Failinimede genereerimine – spetsümbolite (“*”, “?”, “[]”) olemasolu kontroll sõnades ja vastava generatsiooni täitmine
Programmeerimiskeskkond • Iga protsess täidetakse keskkonnas • shell kasutab ka mõningaid keskkonnamuutujaid • Set – annab info standartsete muutujate kohta, mis on loodud sisselogimise ajal, ja muutujate kohta, mis eksporteeritakse kasutaja protsesside poolt
shell muutujad • shell omistab automaatselt väärtused järgmistele muutujatele (parameetritele) • ? – väärtus, mis tagastatakse viimase käsu poolt • $ - protsessi number • ! – tagaprotsess • # - shelli edastatud positsiooneeritud protsesside arv • * - parameetrite nimekiri, ühe sõnega esitatud • @ - parameetrite nimekiri, sõnade kombinatsioon • - - võtmed, mis antakse shell-ile • Nende muutujate poole pöördumisel tuleb ette sisestada “$”
Programmeerimisstruktuurid • Kommentaar • # See on kommentaar. • ## Ja see on ka kommentaar. • ### Ja see ka.
test (“[ ]”) • Kontrollib mingi tingimuse täitmist • Selle käsu abil saab vormindada valiku operaatorid ja tsüklid shell-is • 2 varianti: • test tingimus • [ tingimus ] • Näiteks: sh-2.05b# [ -f cock ]; echo $? 0 sh-2.05b# [ -d cock ]; echo $? 1
Täisarvude võrdlemise tingimused • x -eq y • “x” on võrdne “y” • x -ne y • “x” ei võrdu “y” • x -gt y • “x” on suurem kui “y” • x -ge y • “x” on suurem või võrdne “y” • x -lt y • “x” on väiksem kui “y” • x -le y • “x” on väiksem või võrdne “y”
Tingimusoperaator “if” • Üldine struktuur if tingimus then nimekiri [elif tingimus then nimekiri] [else nimekiri] fi
Valikuoperaator “case” • Üldine struktuur case sõne in shabloon) käskude nimekiri;; -abloon) käskude nimekiri;; … esac
Valikuoperaator “case” (järg) ### #"case“ struktuur. echo -n " Milline on sinu eksamitulemus?: " read z case $z in 5) echo Tubli ! ;; 4) echo Ikka tubli ! ;; 3) echo Rahuldav ! ;; 2|1) echo Halvasti ! ;; *) echo ! ;; esac
Tsüklioperaator “for” • Üldine struktuur for nimi [in väärtuste nimekiri] do käskude nimekiri done