Cursul 10 - Shell scripting -...

42
Cursul 10 Shell scripting Utilizarea Sistemelor de Operare (USO) 16 decembrie 2016 Automatica si Calculatoare Cursul 10, Shell scripting 1/42

Transcript of Cursul 10 - Shell scripting -...

Page 1: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Cursul 10Shell scripting

Utilizarea Sistemelor de Operare (USO)16 decembrie 2016

Automatica si Calculatoare Cursul 10, Shell scripting 1/42

Page 2: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Moto

Some people, when confronted with a problem, think “I know, I’lluse regular expressions.” Now they have two problems.

Jamie Zawinski (JWZ)

Automatica si Calculatoare Cursul 10, Shell scripting 2/42

Page 3: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Stocarea s, i prelucrarea datelor

Automatica si Calculatoare Cursul 10, Shell scripting 3/42

Page 4: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Stocarea datelor

http://www.quickmeme.com/p/3vzsz0

Automatica si Calculatoare Cursul 10, Shell scripting 4/42

Page 5: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Suport curs

I Suport (Introducere ın sisteme de operare)I Capitolul 12 – Shell scripting

I Sect, iunile 12.4, 12.5, 12.6, 12.9

I Regular Expressions CookbookI Capitolul 1 – Introduction to Regular ExpressionsI Capitolul 2 – Basic Regular Expression Skills

Automatica si Calculatoare Cursul 10, Shell scripting 5/42

Page 6: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Cuprins

Splitting

Script-uri shell

Expresii regulate

Shell scripting pentru automatizare

Concluzie

Automatica si Calculatoare Cursul 10, Shell scripting 6/42

Page 7: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Date tabelare

I linii (rows) s, i coloane (columns)

I exista un separator de campuri (de coloane): field separator

I separatorul de linii este caracterul newline (linie noua, \n)

I parsarea se refera ın general la ımpart, ireacampurilor/coloanelor de pe fiecare linie (splitting)

Automatica si Calculatoare Cursul 10, Shell scripting 7/42

Page 8: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Separatorul de campuri

I field separator sau field delimiter

I selecteaza coloane; o coloana este separata de alta prin fieldseparator

I poate fi un caracter (virgula, tab, spat, iu) sau un set decaractere (semne de punctuat, ie)

I utilitarele care fac split precizeaza caracterul sau setul decaractere pentru separare

I opt, iunea -d la cutI opt, iunea -F la awkI opt, iunea -s la sortI string.split() ın PythonI String.split() ın Java

Automatica si Calculatoare Cursul 10, Shell scripting 8/42

Page 9: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Splitting

I ımpart, irea unui format text/tabelar ın coloane

I de obicei sunt selectate anumite coloane

I apoi se pot executa operat, ii cu acele coloane

Automatica si Calculatoare Cursul 10, Shell scripting 9/42

Page 10: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Exemple de splitting ın shell

Extragerea numelui de utilizator s, i a directorului home

cut -d ’:’ -f 1,6 < /etc/passwd

awk -F ’:’ ’print $1, $6;’ < /etc/passwd

Automatica si Calculatoare Cursul 10, Shell scripting 10/42

Page 11: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Cuprins

Splitting

Script-uri shell

Expresii regulate

Shell scripting pentru automatizare

Concluzie

Automatica si Calculatoare Cursul 10, Shell scripting 11/42

Page 12: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

One liner

I ınlant, uirea unor comenzi

I de obicei legate prin operatorul pipe (|)

I http://www.bashoneliners.com/

Automatica si Calculatoare Cursul 10, Shell scripting 12/42

Page 13: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Moduri de input pentru o comanda

I o comanda primes, te parametriI touch file1 file2 ...I zip -r my.zip path1 path2 ...I gcc -o exec obj1 obj2 ...

I folosite ın conjunct, ie cu operatorul de command epxansion:$(...)

I zip -r $(generic_command that outputs file names)

I o comanda primes, te input la intrarea standard (filtre de text)I gemeric_command | grep ’include’I generic_command | sort -t ’:’ -k 2I generic_command | sed ’s/ana/bogdan/g’

Automatica si Calculatoare Cursul 10, Shell scripting 13/42

Page 14: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Filtre de text

I All is text. (Unix)

I comenzi care ,,filtreaza” text

Sintaxa pentru filtre de text

filtru < input_file > output_file

command1 | filtru | command2

I operat, iiI selectare liniiI selectare coloane (dupa separator)I prelucrare linii (modificare elemente)I contabilizare

I cat, tac, rev, nl, head, tail, sort, grep, column, paste,join, sed, awk

Automatica si Calculatoare Cursul 10, Shell scripting 14/42

Page 15: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Ce este un script shell?

I o ıns, iruire de comenzi shell

I este interpretat de shell: se interpreteaza, pe rand, fiecarecomanda

I pe langa comenzi externe, sunt folosite s, i comenzi interneprecum if, for, while, case

I facilitat, i shell precum command expansion

I variabile

Automatica si Calculatoare Cursul 10, Shell scripting 15/42

Page 16: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Variabile

I server=141.85.224.218

I ssh -l root "$server"

I username="johnny"

I sudo useradd -m -d /home/"$username" -s /bin/bash

"$username"

I base_folder="/home/student/uso/scripts"

I zip -r scripts.zip "$base_folder"

Automatica si Calculatoare Cursul 10, Shell scripting 16/42

Page 17: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Shell scripting pentru prelucrarea datelor

I pentru one linere folosim, ın general, filtre de text

I pentru lucruri mai ample folosim while read; pentru lucrurimai complexe awk s, i sed

I IFS: Input Field Separator

I while + read: sunt split campurile fiecarei linii s, i trecute ınvariabile

I variabilele pot fi apoi folosite ın shell

Automatica si Calculatoare Cursul 10, Shell scripting 17/42

Page 18: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Construct, ia while read

Extragerea numelui de utilizator s, i a directorului home

IFS=":"; while read user x y z t home v; do echo "$user:$home";

done < /etc/passwd

Selectarea dupa o nota

IFS=$’t’; while read student group grade; do if test grade -ge 7; then

echo "$student,$grade"; fi; done < students.txt

Automatica si Calculatoare Cursul 10, Shell scripting 18/42

Page 19: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Construct, ia for

Parcurgerea fis, ierelor dintr-un director

for f in *; do

cat "$f"

done

Parcurgerea elementelor dintr-o lista

for group in "311CA" "312CA" "313CA" "314CA" "315CA"; do

no=(./get-students-in-group "$group") # custom script

echo "Group $group has $no students."

done

Parcurgerea utilizatorilor din sistem

for user in $(cut -d ’:’ -f 1); do

nlogins=$(last "$user" | grep "^$user" | wc -l)

echo "User $user logged in $nlogins times recently."

done

Automatica si Calculatoare Cursul 10, Shell scripting 19/42

Page 20: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Construct, ia if

Check if file exists

if test -f "$file"; then

echo "File $file exists."

fi

Check if number is between 1 and 5

if test "$num" -ge 1 -a "$num" -le 5; then

echo "$num is between 1 and 5."

else

echo "$num is not between 1 and 5."

fi

Check if proper number of arguments

if test "$#" -ne 1; then

echo "Usage: $0 argument"

echo "You must provide a single argument to the script."

exit 1

fi

Automatica si Calculatoare Cursul 10, Shell scripting 20/42

Page 21: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Cuprins

Splitting

Script-uri shell

Expresii regulate

Shell scripting pentru automatizare

Concluzie

Automatica si Calculatoare Cursul 10, Shell scripting 21/42

Page 22: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Utilizare

I regular expressions sau regex

I cautare (searching, pattern matching)

I validarea unui s, ir, a unui text, a unei intrari (numar detelefon, URL, nume de variabila, adresa MAC)

I substituirea unei expresii

Automatica si Calculatoare Cursul 10, Shell scripting 22/42

Page 23: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Exemple grep

Check if file exists

grep ’#include’

grep ’^include’

grep ’^[ ]*include’

grep ’^[ \t]*$’

Automatica si Calculatoare Cursul 10, Shell scripting 23/42

Page 24: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Probleme cu expresii regulate

http://xkcd.com/1171/

http://www.twoproblems.com/

Automatica si Calculatoare Cursul 10, Shell scripting 24/42

Page 25: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Cand sa nu foloses, ti expresii regulate

I cand exista parsere

I cand exista aplicat, ii, tool-uri, funct, ii mai bune pentru a faceacest lucru

I pentru anumite tipuri de date (adrese de e-mail, HTML): fienu se poate, fie e foarte greu, fie va ies, i o “aratare” de cod

I atunci cand, folosite abuziv, fac codul nementenabil/nelizibil

Automatica si Calculatoare Cursul 10, Shell scripting 25/42

Page 26: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Exemple de expresii regulate

Expresie regulata Explicat, ie

[_a-zA-Z][_0-9a-zA-Z]* nume de variabila/funct, ie

07[:digit:]{8} numar de telefon

[:upper:][:alpha:]+ numele unei persoane

[:digit:]{2}\.(pdf|png|svg) nume fis, iere din doua cifre s, i diferite extensii

([01][:digit:]|2[0-3]):[0-5][:digit:] timp ın ore s, i minute

^[:upper:]{1,10}$ linii cont, inand maxim 10 majuscule

Automatica si Calculatoare Cursul 10, Shell scripting 26/42

Page 27: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Metacaractere ın expresii regulate

Metacaracter Efect

^ (caret) ınceput de linie

$ (dollar) sfars, it de linie

. (dot) orice caracter

[. . . ] (square brackets) set de caractere

? (question mark) expresia anterioara cel mult o data

* (star) expresia anteriora de oricate ori posibil niciodata

+ (plus) expresia anteriora de oricate ori cel put, in o data

e1|e2 (or) expresia de dinainte sau cea de dupa

Automatica si Calculatoare Cursul 10, Shell scripting 27/42

Page 28: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

regex vs. globbing

I globbing este folosit ın shell, ın special pentru filename expansion

I globbing poate fi considerat o forma mai slaba de expresie regulata

I expresiile regulate sunt puternice, cu mai multe cazuri de utilizare s, isuport ın majoritatea limbajelor/framework-urilor moderne

Metacaracter Rol ın globbing Rol ın regex

. nimic special orice caracter

[. . . ] set de caractere set de caractere

* orice caracter de oricate ori expresia anterioara de oricate ori

? orice caracter expresia anterioara o data sau niciodata

∼ directorul home nimic special

Automatica si Calculatoare Cursul 10, Shell scripting 28/42

Page 29: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Suport pentru expresii regulate

I utilitare shell: grep, awk, sed

I limbaje de programare: Perl, Python, PHP, Ruby, Java,JavaScript, C++11

I editoare: Vim, Emacs

I baze de date

I biblioteci cu suport de expresii regulate: Gnulib

Automatica si Calculatoare Cursul 10, Shell scripting 29/42

Page 30: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Cuprins

Splitting

Script-uri shell

Expresii regulate

Shell scripting pentru automatizare

Concluzie

Automatica si Calculatoare Cursul 10, Shell scripting 30/42

Page 31: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Utilizare shell scripting

I prelucrare de dateI task-uri simpleI quick’n’dirtyI se folosesc filtre de text: prelucreaza text (la intrare, s, i la

ies, ire): head, tail, grep, cut, tr, awk, sed

I automatizareI task-uri repetitiveI se pun comenzile ın cauza ıntr-un script shellI se ruleaza scriptul la nevoie

Automatica si Calculatoare Cursul 10, Shell scripting 31/42

Page 32: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Automatizare

I mai multe comenzi (eventual ınlant, uite)I e vorba de comenzi comune, nu neaparat (chiar foarte rar)

filtre de textI poate fi vorba de comenzi de prelucrare de imaginiI poate fi vorba de comenzi de procesare de fis, iere (din LATEXın

PDF)I poate fi vorba de descarcat fis, iere de la distant, a

I scriptul se ruleaza periodic sau la nevoie

I nu este obligatoriu sa folosit, i construct, ii precum for, whilesau if

I un script trebuie sa ıs, i faca treaba, nu trebuie sa fie limbaj deprogramare

I putet, i avea one linere ın script

Automatica si Calculatoare Cursul 10, Shell scripting 32/42

Page 33: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Mindset legat de shell scripting

I sa fie quick’n’dirty ; daca e prea complicat trebuie mers la unlimbaj de programare

I keep it simple: nu folosi expresii regulate sau construct, iicomplicate fara sa fie cazul; a.k.a. nu te lega la cap fara sa tedoara

I mintea la obiectiv: ce vreau sa obt, in?

I best tool for the best job

I foloses, te tot ce exista, nu reinventa roata, DRY: don’t repeatyourself

I documenteaza-te ın prealabil: masoara de doua ori si taie odata

I este posibil sa existe o comanda sau opt, iunea unei comenzicare sa faca (parte din) ceea ce dores, ti

I niciodata nu vei s, ti suficient de mult shell scripting:documenteaza-te, exerseaza s, i ımbunatat, este

Automatica si Calculatoare Cursul 10, Shell scripting 33/42

Page 34: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Sfaturi legate de shell scripting

I nu folositi shell scripting pentru ceea ce se face maibine/usor/eficient in Python, C, Java, Ruby, PHP etc.

I nu reinventat, i roata

I folosit, i ghilimele cand referit, i valoarea unei variabile

I folosit, i cea mai buna opt, iune (cut, grep, tr, awk, sed,while read) dupa nevoie

I folosit, i opt, iuni de tip expresii regulate sau similare ıntreapostrofuri

I http://mywiki.wooledge.org/BashFAQ

Automatica si Calculatoare Cursul 10, Shell scripting 34/42

Page 35: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Cuprins

Splitting

Script-uri shell

Expresii regulate

Shell scripting pentru automatizare

Concluzie

Automatica si Calculatoare Cursul 10, Shell scripting 35/42

Page 36: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Shell scripting

I doua cazuri de utilizare: prelucrare de date s, i automatizare dedate

I doua tipuri de input pentru comenzi: parametri s, i intrareastandard (filtre de text)

I keep it simple

I don’t repeat yourself

I expresille regulate pot sa ıncurce ın loc sa ajute

I nu este obligatoriu sa folosit, i for, while, if; shell scriptingnu e programare

Automatica si Calculatoare Cursul 10, Shell scripting 36/42

Page 37: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Regular Expressions Cookbook

I Jan Goyvaerts, Steven Levithan

I creatorii http://www.regular-expressions.info/,http://regexpal.com/

I 2nd Edition

I practica, multe ,,ret, ete”

I o recenzie aici: http://blog.codinghorror.com/

regular-expressions-for-regular-programmers/

Automatica si Calculatoare Cursul 10, Shell scripting 37/42

Page 38: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Larry Wall

http://en.wikipedia.org/wiki/File:Larry_Wall_YAPC_2007.jpg

I creatorul Perl

I BDFL pentru proiectul Perl

I autorul programului patch

I cas, tigator al International Obfuscated C Code Contest

Automatica si Calculatoare Cursul 10, Shell scripting 38/42

Page 39: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Rackspace

I companie de hosting IT

I fondata ın 1996

I unul dintre principalii furnizori de servicii cloud (RackspaceCloud)

I contribuitor la OpenStack

I folosit de GitHub

Automatica si Calculatoare Cursul 10, Shell scripting 39/42

Page 40: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Lua

I limbaj de programare de scripting

I paradigme multiple (la fel ca Python)

I proiectat pentru a fi us, or ıncorporat ın alte limbaje

I API C simplu

I limbaj de scripting pentru dezvoltatorii de jocuri

I folosit de limbajul de scripting al utilitarului nmap

I folosit pentru configurarea managerului de ferestre Awesome

Automatica si Calculatoare Cursul 10, Shell scripting 40/42

Page 41: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Cuvinte cheie

I splitting

I separator de campuri

I one liner

I filtru de text

I script shell

I IFS

I while read

I for

I if

I expresii regulate

I metacaractere

I globbing

I grep

I prelucrare de date

I automatizare

Automatica si Calculatoare Cursul 10, Shell scripting 41/42

Page 42: Cursul 10 - Shell scripting - swarm.cs.pub.roswarm.cs.pub.ro/~george/uso-ac/res/cursuri/curs-10-aut-ac-handout.pdfSuport curs I Suport (Introducere ^ n sisteme de operare) I Capitolul

Resurse utile

I Jon Goyvaerts, Steven Levithan: Regular Expressions Cookbook

I http://www.regular-expressions.info/

I http://regexpal.com/

I http://www.regexr.com/

I http://www.twoproblems.com/

I http://koala.cs.pub.ro/training/wiki/medium-unix/home

I http://koala.cs.pub.ro/training/wiki/advanced-unix/home

Automatica si Calculatoare Cursul 10, Shell scripting 42/42