1 / 28

Operatsioonisüsteemid

Operatsioonisüsteemid. Allan Liblik. Käsuinterpretaator e. shell. programm, mis võtab vastu kasutaja käsud ja annab need OS’ile täitmiseks – interpreteerib käske; käsk, mis võimaldab kasutada teisi käske; iga käsk käivitab ühe või mitu programmi; käsud grupeeritult failis – shell script ;

wayne
Télécharger la présentation

Operatsioonisüsteemid

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operatsioonisüsteemid Allan Liblik

  2. Käsuinterpretaator e. shell • programm, mis võtab vastu kasutaja käsud ja annab need OS’ile täitmiseks – interpreteerib käske; • käsk, mis võimaldab kasutada teisi käske; • iga käsk käivitab ühe või mitu programmi; • käsud grupeeritult failis – shell script; • skripti käivitades täidetakse käsud kindlas järjekorras;

  3. shellid • Unixis: The Bourne shell – sh, esimesi üldse;The C shell – csh, sarnasused C-ga; BSDThe Korn shell – ksh, AT&T, konkureerima csh’ga;Bash, the Bourne Again Shell – bash;the T C Shell – tcsh;ash (pisike korrastatud bash), zsh (interaktiivsus), rc (Bell, võrgu-home jms)

  4. Shellid MS Windows’is • Cygwin – vaikimisi ash nimega sh; • Services for Unix – nudi ksh; • command.com • cmd

  5. shelli valimine • bash – pidev areng, paljudes kohtades vaikimisi; • ksh; • kui midagi on selge, kasuta seda; • muuda käsuga chsh: chsh -s /bin/ksh (loe ka man’i) • shelli nimi on muutujaga SHELL kirjeldatud. • man <shellinimi>, man bash

  6. Käsuvõtmed • vanad ainult -voti • uuemad (alates 1980ndad) ka --võti • Võtmete ühendamine: • uname -a -p = uname -ap • mõne käsu võtmetel ei ole “-” märke:dd if=/dev/rcd0c of=disk.iso bs=32k

  7. Redigeerimine, asendus • Käsu redigeerimine – sh ainult “backspace” ja Ctrl-C, alates C shellist rohkem – üks olulisi shellide erinevusi; • käskude asendamine:!! - kordab eelmist käsku;!$ - eelmise käsu viimane osa;üles ja alla nooled - liikumine ajaloos;!-n - n’is eelviimane käsk, !! = !-1^string1^string2^ - str1 asendatakse 2ga;

  8. Asendamine -bash-3.2$ du 9320 . -bash-3.2$ ^u^f^ df Filesystem 512-blocks Used Avail Capacity Mounted on /dev/wd0a 2061036 659316 1298672 34% / /dev/wd0h 107446600 35161472 66912800 34% /backup /dev/wd0g 6187580 5578652 299552 95% /tftpboot /dev/wd0f 4126444 136 3919988 0% /tmp /dev/wd0d 10319276 3304260 6499056 34% /usr /dev/wd0e 20637580 16042692 3563012 82% /var /dev/wd1a 230733064 71346404 147850008 33% /home /dev/wd2a 230733064 173027632 46168780 79% /data

  9. failinimede lõpetamine tab , tab tab – ridade lõpetamine esc / (bash) – ridade lõpetamine esc \ (ksh) – ridade lõpetamine esc ? (bash) - võimalike nimede näitamine ctrl D (csh, tcsh) võimalike nimede näitamine esc = (ksh) - võimalike nimede näitamine

  10. shelli skript tekstifail, mis sisaldab ühte või rohkemat käsku;

  11. Teised skriptikeeled • Perl – Practical Extraction and Reporting Language; • Python • Tcl – Tool Command Language; • MS-DOS batch failid;

  12. Redigeerimisvahendid • Minimaalselt vaja shelli ja tekstiredaktorit • redaktorid: vi, emacs, pico ja teised • Väljundi ümbersuunamine faili • Skripti kirjutamine – tekstifaili redigeerimine;

  13. Esimene skript • koostage fail, nimega skript_1, milles on rida:echo 'Tere' $USER • käivitame faili: sh script1 • echo -n - echo ei pane real lõppu realõpu tunnust.

  14. Teine skript kaht moodi • Väliselt teeb sama:echo –n 'Tere ' whoamiecho 'Tere' `whoami`

  15. Muutujad • muutuja väärtustamine:muutuja_nimi=väärtus • muutuja väärtuse lugemine:$muutuja_nimi • C-shellis:set muutuja_nimi=väärtus$muutuja_nimi • Muutuja nimi algab tähega, sisaldab tähti, alakriipse numbreid

  16. shelli viiba muutmine • muutujad PS1, PS2, PS3, PS4PS1="\u$ "PS1="\h$ "PS1="\u@\h$ " • PROMPTING bash'i manuaalis

  17. käsud muutujates Tehke skript, nimeks skript3: kataloog=/bin kask=ls jutt="kataloogi sisuks on " echo $jutt $kask $kataloog • käivitage: sh skript3

  18. Andmete lugemine käsk read echo -n "Eesnimi: "read eesnimiecho -n "perekonnanini: "read perekonnanimitaisnimi="$eesnimi $perekonnanimi"tekst="Tere kodanik "echo $tekst $taisnimi

  19. Kommentaarid skriptis • kõik alates # kuni rea lõpuni loetakse kommetaariks;- mida skript teeb- mis tüüpi skript on (bash, perl, ...)- kuidas kasutada- mida mingi konstruktsioon teeb;- probleemsed kohad;- mida ja kuidas edasi laiendada ja arendada (TODO);

  20. kommentaari naide # see on andmete lugemise naiteskript echo -n "Eesnimi: " read eesnimi #loeme eesnimeecho -n "perekonnanini: "read perekonnanimi #ja perenimetaisnimi="$eesnimi $perekonnanimi"tekst="Tere kodanik "echo $tekst $taisnimi #ja kuvame

  21. Muutujate kasutamine 1/2 echo "Test1 =======" muutuja=abc echo $muutuja echo ${muutuja} echo {$muutuja} echo "Test2 =======" echo muutuja echo "muutuja" echo "$muutuja" echo "\$muutuja" echo "Test3 =======" echo $muutuja123 echo ${muutuja}123

  22. Muutujate kasutamine 2/2 echo "Test4 =======" echo $muutuja$muutuja echo $muutuja123$muutuja echo ${muutuja}${muutuja} echo ${muutuja}123${muutuja} echo "Test5 =======" muutuja="a b c" echo $muutuja echo "$muutuja"

  23. Tsüklid for muutuja in väärtuste_nimekiri do kask1 kask2 ... kask n done

  24. tsükkel kindel arv kordi for i in 1 2 3 4 5 6 7 8 9 10 do echo -n "..$i.." sleep 1 done

  25. Veel näide for i in * do echo $i done # ülesanne: loe üle kõigis failides olevad sõnad (wc), väljund kujul: Fail1, sonu 123 tk Fail2, sonu 34 tk

  26. Suvalised väärtused for i in a 1 2 d 5 7 h 8 qqq do echo -n "..$i.." sleep 1 done

  27. C-laadne tsükkel (töötab bash’is) max=10 for (( i=1 ; i <= max ; i++ )) do echo -n "..$i.." sleep 1 done echo

  28. tsükkel tsüklis for i in 1 2 3 4 5 6 7 8 9 10 do for j in a b c d e f g h i j do echo -n "$i$j " done echo done echo

More Related