Uuri ja katseta, mida teevad järgmised käsud? -------------- whoami who am i users who w date cal cal 3 2022 cal 9 1752 df du which man type man whereis less help cd whatis man touch failinimi ls -l failinimi oota veidi (ca 1 minut) touch failinimi ls -l failinimi Mis muutus? wc more less grep df > failinimi ------------- Shelli (bash) klahvikombinatsioonid käsureal: ^A - rea algusse ^E - rea lõppu ^K - kustuta rea lõpuni ^W - kustuta eelmine 'sõna' st kursorist vasakule kuni tühikuni ^D - kustuta kursori kohal olev märk (DEL) ^H - kustuta kursorist vasakul olev märk (BS) ^L - tühjenda ekraan ^T - vaheta kursori kohal ja kursorist vasakul olevad märgid TAB - automaatne failinime lõpetamine programmi täitmise ajal: ^C - töö katkestamine ^Z - programmi töö peatatakse bg - peatatud programm tahaplaanile (taustale) tööle fg - peatatud või tagaplaanil töötav programm esiplaanile jobs - jooksvate ja peatatud tööde loetelu ^D - faili lõputunnus terminalilt sisestamisel ^S - paneb terminaliväljundi seisma (XOff) ^Q - lubab terminalile jälle infot saata (XOn) -------------- Käskude ajalooga seotud käsud: history - näitab kogu käskude ajaloo !! - käivitab eelmise käsu !fooo - käivitab ajaloost viimase käsu, mis algab stringiga fooo !234 - käivitab ajaloost käsu nr 234 nool üles, nool alla - ajaloost vastavalt eelmine ja järgmine käsk !$ - eelmise käsu (viimane) käsurea parameeter Näiteks: ls -l /etc/passwd sort !$ - on sama mis sort /etc/passwd -------------- command < failinimi command 1> failinimia 2>> failinimib command > failinimi 2>&1 command 2>&1 > failinimi command < sisendfail > valjundfail 2>&1 command1 | command2 | command3 - 'toru', ühe käsu väljund suunatakse teise käsu sisendisse Käsud töötavad korraga, sisendid ja väljundid puhverdatakse. Näiteks sort dokument | uniq | mail kasutaja tee failinimi - nagu cat, aga saadab stdin-i lisaks stdout-le veel ka faili Näiteks sort dokument.txt | uniq | tee saadetudjutt.txt | mail kasutaja ------------------- Taustatööd: command & - töö käivitatakse taustatööna. stdin ühendatakse terminali küljest lahti, kui stdout ja stderr tulevad ikka terminalile. Kui programm vajab infot stdin-st kuid ei saa seda failist, siis ta 'peatatakse' kuniks ta tuuakse esiplaanile. ^Z - programmi töö peatatakse bg - peatatud programm tahaplaanile tööle fg - peatatud või tagaplaanil töötav programm esiplaanile jobs - jooksvate ja peatatud tööde loetelu -------------------- Alamshellid ja käskude grupeerimine: command1 ; command2 - käsud täidetakse järjest (command1 ; command2) - käivitatakse eraldi alamshell, mis täidab käsud järjest (command1 ; command2) & - lisaks käivitatakse alamshell ning kogu tegevus taustatööna Käskude tingimuslik käivitamine (edasijõudnumale): Iga käsk (programm) annab peale töö lõpetamist tagasi väljundkoodi (exit code), mille kaudu programm annab käivitajale teada oma töö tulemuslikkusest või veaolukorrast (0 = OK, mingi muu väärtus != OK) $? - viimase käivitatud käsu väljundkood. Näiteks: echo $? (Windowsi käsurea korral on analoog errorlevel (echo %errorlevel%) Näiteks testimiseks käsud: true - ei tee midagi muud kui annab väljundkoodi 0 false - ei tee midagi muud kui annab väljundkoodi 1 true ; echo $? false ; echo $? command1 && command2 && command3 - tingimuslik täitmine: käivitatakse command1 ja kui selle väljundkood on 0, käivitatakse command2 ja kui selle väljundkood = 0, käivitatakse command3 command1 || command2 || command3 - tingimuslik täitmine: käivitatakse command1 ja kui selle väljundkood ei ole 0, käivitatakse command2 ja kui selle väljundkood != 0, käivitatakse command3 Liitkäsu väljundkood on viimase käivitatud käsu väljundkood. ---------------- Failinimede genereerimine: * - vastav suvalisele arvule (ka 0) suvalistele sümbolitele ? - vastab täpselt ühele eksisteerivale suvalisele sümbolile [ac] - vastab ühele sulgude sees olevatest sümbolitest (a või c) [a-c] - vastab ühele sümbolile sulgude sees olevast vahemikust (a, b või c) Nurksulgude sees esimesel kohal olev ! või ^ tähendab eitust. Näiteks: ls f* echo f[aeiou]* Varjestamine: \ - varjestab ühe talle järgneva sümboli (ka nt reavahetuse) Näiteks: ls f\* " - jutumärkide vahel failinimesid ei genereerita ega interpreteerita tühikuid (aga nt asendatakse muutujate väärtused) ' - ülakomade vahel ei interpreteerita midagi --------------- Põhikäsud seoses failidega: failide otsimine find, locate info käskude kohta man, whatis, type, whereis, which, info faili sisu vaatamine cat, more, less, head, tail info saamine faili kohta ls, file, wc, stat, diff, cmp opereerimine faili sisuga grep, sort, uniq, tr, expr, sed, awk, cut split, csplit, gzip, gunzip, tar dos2unix, unix2dos kettaruumi kasutuse vaatamine du, df