Durată: 5 zile
Certificare: Diploma de participare

Acest curs se adresează atât persoanelor din Dev/Ops ce au nevoie de cunoștințe de Bash scripting pentru integrarea de aplicații, dar și administratorilor de sistem, pentru automatizări în cadrul sistemelor de operare Linux, Unix și chiar VmWare ESXi. Cursanții sunt încurajați să propună scripturi adiționale față de cele prezentate în cadrul cursului și să participe activ cu întrebări.
Acest curs se adresează persoanelor ce doresc să își însușească sau să își îmbunătățească cunoștințele de scripting în shell-ul Bash. Cursul acoperă aproape toate facilitățile de programare ale shell-ului, dar nu numai, având și capitole dedicate pentru aplicații de procesare avansată a textului, cum ar fi sed și awk. Cursul conține exemple pe care instructorul le va prezenta în cadrul discuțiilor teoretice. Cursul este compus din 2 părți, una specifică programării în shell (4 zile), iar cea de a doua specifică procesării de text cu Sed și Awk (1 zi).
1. Introducere in programarea in bash shell
Ce este un script
Cum putem executa un script
Procese si scripting
#! – shebang – Interpretorul unui script
Executia scripturilor cu Source sau .
Utilizarea comenzii “exec” cu fisiere binare
Procesarea liniei de comanda
Gruparea comenzilor (de adaugat)
Quoting
Intrebari si exercitii de laborator
2 Shell Patterns
Fisiere in linux
Ce este un fisier
Ce este un director
Ce este un shell patern
Expresii simple
Expresii complexe
Intrebari si exercitii de laborator
3 Fisiere si redirectare
Fisierele standard
Redirectarea Standard Input
Redirectarea Standard Output
Redirectarea Standard Error
Redirectari multiple
“Here” document
Pipe
Split Output
Descriptori suplimentare de fisiere
Utilizarea comenzii “exec” cu fisiere
Intrebari si exercitii de laborator
4 Variabile si procese
Ce este o variabila
Tipuri de variabile in shell
Utilizarea unei variabile
Exportul unei variabile si procese
Variabile importante in Bash
Functii bash pentru variabile
Paramatrii pozitionali
Variabile asociate parametrilor pozitionali
Comanda shift
Setarea parametrilor pozitionali
Intrebari si exercitii de laborator
5 Interactivitate in scripturi
Comanda echo
Optiuni de executie ale comenzii echo
Comanda read
Optiuni de executie ale comenzii read
Separatorul de camp – Variabila IFS
Intrebari si exercitii de laborator
6 Coduri exit si testare
Terminarea unui proces
Comanda exit
Semnificatia valorii exit code
True si False
Expresii de testare
Comanda test si expresia [ ]
Expresia [[ ]]
Tipuri de teste
Teste numerice
Teste pentru proprietatile fisierelor
Teste pentru siruri de caractere
Teste [[ ]] cu shell patterns
Intrebari si exercitii de laborator
7 Aritmetica in shell
Comanda expr
Expresii simple cu (( ))
Expresii complexe cu (( ))
Substitutia de operatie aritmetica $(( ))
Calcule complexe cu basic calculator (bc)
Intrebari si exercitii de laborator
8 Executie conditionata si bucle
Executie contitionata cu && si ||
If – then – else – fi
If – then – elif – then … else – fi
Bucle while si until
Procesarea unui fisier folosind redirectari in bucla
Bucla for cu lista
Bucla for cu iteratie
Bucla for implicita – parcurgerea parametrilor pozitionali
Break si continue
Bucla select
Executie conditionata case
Intrebari si exercitii de laborator
9 Procesarea liniei de comanda
Parametrii pozitionali : scurta recapitulare
Formatul standard al unei linii de comanda
Optiuni de executie
Procesarea cu getopts a optiunilor de executie
Procesarea optiunilor valide
Procesarea optiunilor invalide (OPTARG)
Optiuni cu argumente (OPTARG)
Pozitia in procesare (OPTIND)
Procesarea argumentelor de executie
Intrebari si exercitii de laborator
10. Vectori si matrici
Vectori simpli in bash
Definirea elementelor unui vector
Parcurgerea elementelor unui vector
Matrici multidimensionale – matrici asociative
Declararea unei matrici asociative (set –A)
Parcurgerea unei matrici asociative cheie – valoare
Intrebari si exercitii de laborator
11. Semnale si capcane
Metode de comunicatie inter-proces
Semnale
Semnale standard
Generearea unui semnal
Comanda kill
Definirea unui trap
Modificarea unui trap
Stergerea unui trap
Trap DEBUG si RETURN
Trap EXIT
Semnale utilizator USR1 si USR2
Intrebari si exercitii de laborator
12 Functii
Functii in shell
Listarea functiilor definite
Definirea unei functii
Terminarea unei functii - Comanda return
Scopul unei variabile
Parametrii pozitionali in functii
Functii recursive si apelul recursiv
Intrebari si exercitii de laborator
13 Expresii regulate
Ce este o expresie regulata si de cine este folosita
Expresii regulate simple
Ancore in expresii regulate
Cuantificatori in expresii regulate
Gruparea expresiilor si registrii
Comanda grep
Comanda grep –E (egrep)
Comenzi de procesare a textului (cut, paste, uniq, sort)
Intrebari si exercitii de laborator
14 Sed – Stream Line editor
Ce este sed
Modul de executie sed
Selectia textului
Substitutie simpla cu sed
Substitutie complexa cu sed
Print cu sed
Delete cu sed
Change/append/insert cu sed
Write/read cu sed
Operatii multiple cu sed
Fisiere de instructiuni sed
Intrebari si exercitii de laborator
15 Programare in awk
Ce este awk
Cum functioneaza awk
Perechea conditie – actiune (bloc de comenzi)
Conditie – actiune multiple
Inregistrari si campuri
Variabile in awk – definire si utilizare
Variabile speciale in awk
Variabile de environment in awk
Afisarea in awk cu print
Afisarea in awk cu printf
Sectiunile pre si post procesare (BEGIN si END)
Comanda exit
Comanda next
Fisiere de comenzi (scripting awk)
Intrebari si exercitii de laborator
16 Expresii in awk
Expresii regulate in awk – pattern matching
Operatia de binding
Operatori aritmetici in awk
Functii numerice in awk
Operatori logici in awk
Functii de manipulare ale stringurilor
Parametrii pozitionali in awk
Matrici in awk
Functii de manipulare ale matricilor asociative
Intrebari si exercitii de laborator
17 Executie conditionata si bucle in awk
Statement if– else
Statement while
Statement do – while
Break si continue
Statement switch – case – default
Comanda getline
Interactia awk cu unix – redirectare input – output
Intrebari si exercitii de laborator