Shell
This presentation is the property of its rightful owner.
Sponsored Links
1 / 56

SHELL PowerPoint PPT Presentation


  • 127 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

SHELL

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Shell

SHELL

Mihhail Karutin

Artur Assor


Sissejuhatus

Sissejuhatus


Shell

UNIX

Operatsioonsüsteem UNIX loodi Ken Thompsoni ja Denis Ritchi poolt Bell Laborotories’is (AT&T).


Sissejuhatus unix i kolm komponenti

Sissejuhatus:UNIX’i kolm komponenti

  • Keel C

  • Failisüsteem

  • Käsukeel


Sissejuhatus k su interpr e taatorkeel shell

Sissejuhatus:Käsu interpretaatorkeel Shell

On tegelikult väga kõrgetasemeline programmeerimiskeel.


Sissejuhatus teised k sukeeled

Sissejuhatus:Teised käsukeeled

  • B Shell (Bourne Shell)

  • C Shell

  • K Shell

  • Bashell = bash (Bourne-Again Shell)

  • ...


Sissejuhatus skriptid ja interpretaatorid

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

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

Bourne-Again SHell

  • Välja töötatud FSF`i poolt.

  • Kombineeritud B Shell’i süntaks ja C Shell’i võimsus


Shell i s damikelement on k sk bash is on rohkem kui sada sise ja v lisk s ku

Shell’i südamikelement on käsk.Bash’is on rohkem kui sada sise- ja väliskäsku.

Sissejuhatus:KÄSUD JA SÜMBOLID


Keele omap rad

Keele omapärad


K sude struktuur

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

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


As nkroonne k su t itmine

& - asünkroonne käsu täitmine

# find / -name conf -print &

[1] 2818

#pwd

/root/temp

#/etc/log.d/conf

/etc/httpd/conf

/usr/include/sys/conf

  • wait [PID] – tagaprotsessi lõpu ootamine


K skude grupeerimine

Käskude grupeerimine “{}”

k1 && k2; k3

  • {}

    k1 && {k2; k3}

    {k1; k2} &


K skude grupeerimine1

Käskude grupeerimine “()”

cd ..; ls; ls

  • ()

    (cd ..; ls); ls


Protsesside kustutamine tapmine

Protsesside kustutamine (tapmine)

  • Kustutamine

    ps -aux

    kill -9 [PID]

  • Protsessi omanik = kasutaja, kes seda protsessi tapab, või superkasutaja


Mbersuunamine

Ümbersuunamine

  • “stdin” – sisestamine: voog klahviatuurist

  • “stdout” – väljastamine: voog ekraanile

  • “stderr” – vigadevoog


Mbersuunamine j rg

Ümbersuunamine (järg)

  • “>”(“<”) ja “>>” (“<<”) – voo ümbersuunamine

    ls >f1

    pwd >>f1

  • Filter – käsktöötab “stdin” -iga ja “stdout” -iga

    ps –aux | grep root >> f1


Fail seade

Fail = seade

  • /dev – seadme kataloog

  • “lp” – printimine ls > /dev/lp

  • “console” – konsool

  • “ttyN” – terminal N (N= 1, 2, ..)

  • “null” – tühi fail (seade)

    f1 < /dev/null

    sort f1 | tee /dev/lp | tail -20


Fail seade j rg

Fail = seade (järg)

  • 0 - stdin

  • 1 - stdout

  • 2 - stderr


Mbersuunamine j rg1

Ü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

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 s u failid

Käsufailid

  • sh execfile

  • chmod +x execfile

    .execfile


Shell i muutujad

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


E kran is eerimine

Ekraniseerimine

  • “ “

  • ‘ ‘

  • \


E kran is eerimine j rg

Ekraniseerimine (järg)

# x=22 y=33 z=$x

# A="$x" B='$x' C=\$x

# D="$x+$y+$z" E='$x+$y+$z'

# F=$x\ +\ $y\ +\ $z

# echo A=$A B=$B C=$C

A=22 B=$x C=$x

# echo D=$D E=$E F=$F

D=22+33+22 E=$x+$y+$z F=22+33+22


Muutuja t e t pid

Muutujate tüüpid

  • Üldjuhul “string” tüüp

  • “expr”

    #x=7 y=2

    #a=`expr $x + $y` ; echo a=$a

    a=9

    #a=`expr $a + 1` ; echo a=$a

    a=10

    #c=`expr $x '*' $y` ; echo c=$c

    a=14


Expr veel

“expr” (veel)

#A=`expr'cocktail':'cock'`;echo $A

4

#B=`expr'cocktail':'tail'`;echo $B

0

#C=`expr'cocktail':'cook'`;echo $C

0

#D=`expr'cock':'cocktail'`;echo $D

0


Muutuja vahetamine tinglikult

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 s u faili parameetrid

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 s u faili parameetrid n ide

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 s u faili parameetrid n ide1

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 s u faili parameetrid shift

Käsufaili parameetrid (shift)

  • Käsufail “many”:

    echo "$0: Palju parameetreid"

    echo " Parameetrite üldine arv = $#

    Algseisund: $1 $5 $9 "

    shift; echo "1 nihe: esimene=$1 viies=$5 üheksas=$9"

    shift 2; echo "1 + 2 = 3 nihed: esimene =$1 viies =$5 üheksas =$9"

    perem=`expr $1 + $2 + $3`

    echo $perem


K s u faili parameetrid shift1

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 s u faili parameetrid set

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

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

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 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

Programmeerimisstruktuurid

  • Kommentaar

    • # See on kommentaar.

    • ## Ja see on ka kommentaar.

    • ### Ja see ka.


Shell

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

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

Tingimusoperaator “if”

  • Üldine struktuur

    if tingimus

    then nimekiri

    [elif tingimus

    then nimekiri]

    [else nimekiri]

    fi


Valikuoperaator case

Valikuoperaator “case”

  • Üldine struktuur

    case sõne in

    shabloon) käskude nimekiri;;

    -abloon) käskude nimekiri;;

    esac


Valikuoperaator case j rg

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

Tsüklioperaator “for”

  • Üldine struktuur

    for nimi [in väärtuste nimekiri]

    do

    käskude nimekiri

    done


Ts klioperaator while

Tsüklioperaator “while”

  • Üldine struktuur

    while tingimus

    do

    käskude nimekiri

    done


Ts klioperaator while n ide

Tsüklioperaator “while” - näide

###

# "while“ struktuur

n=0

while [ $n -lt 50 ]

do

n=`expr $n + 1`

cat file-22 > /dev/lp

done


Ts klioperaator until

Tsüklioperaator “until”

  • Üldine struktuur

    until tingimus

    do

    käskude nimekiri

    done


Ts klioperaator until n ide

Tsüklioperaator “until” - näide

until false

do

read x

if [ $x = 5 ]

then echo enough ; break

else echo “some more”

fi

done


T hioperaator

Tühioperaator

  • Struktuur

    :

  • Ei tee midagi

  • Tagastab väärtuse “0”

  • Näide:

    • while :

    • Käsufaili alguses, garanteerib, et fail ei täida käsku “csh” shell-is


Funktsioonid

Funktsioonid

  • Üldine struktuur

    nimi()

    {

    käskude nimekiri

    }

  • Pöördumine funktsiooni poole toimub funktsiooni nime järgi:

    nimi arg1 arg2


Funktsioonid n ide

Funktsioonid - näide

fn()

{

echo xx=$xx

echo $#

echo $0: $$ $1 $2

xx=yy ; echo xx=$xx

return 5

}

xx=xx ; echo xx=$xx

fn a b

echo $?

echo xx=$xx


Funktsioonid n ide v ljund

Funktsioonid – näide (väljund)

xx=xx

xx=xx

2

fn: 749 a b

xx=yy

5

xx=yy


Kasutatud kirjandus

Kasutatud kirjandus

  • Браун П. «Введение в операционную систему UNIX», Мир, 1987

  • http://www.nevod.ru/linux/doc/shell/

  • http://www.gitc.aznet.org/library/bk/Linux/os066/os066.html


T name t helepanu eest

Täname tähelepanu eest!


  • Login