This is an old revision of the document!
cd ~ mkdir slash cd !$ mkdir conf lib bin logs cd conf touch apache.conf bind.conf postfix.conf hosts services protocols cd .. cd lib touch dns.so gethostbyname.so ip.so tcp.so smtp.so cd .. cd logs mkdir apache bind postfix touch apache/access.log apache/error.log bind/access.log bind/error.log postfix/access.log postfix/error.log cd .. cd bin cp /bin/true apache cp /bin/true postfix cp /bin/true bind cd ~
slash
.apache2.conf → apache2.conf.backup
.checkfile.sh
care:<nume-fișier-initial>_exista
unde argument este argumentul transmis scriptului (numele fișierului)sort
sed
scrieți un script care generează mail-uri în mod automat.
Ca date de intrare, creați un fișier cu structura:
nume,email Alex,alex@example.com Traian,traian@example.com
precum și un template, de genul:
Salut NUME! ... Acest mesaj îți este adresat ție și numai ție.
Ca date de ieșire, scriptul va crea într-un director emails
câte un fișier cu numele email personalizat pentru fiecare nume din fișierul dat.
/etc
sau un folder dat ca parametru, cu extensia .conf
.backup-YYMMDDHHmm
din directorul curent (hint: date
).bak
in loc de .conf
executat
în home-ul utilizatorului curentw
.dpkg -l <glob>
dpkg -l <glob>
pentru a lista pachetele dorite.grep
pentru a extrage doar pachetele instalate.tr
și cut
pentru a extrage doar numele pachetelor instalate.dpkg -L
și expandarea comenzilor pentru a definitiva exercițiul.Last entry: $last_entry; Number of entries: $num_entries
unde $last_entry
este ultimul director precizat în variabila de mediu PATH
, iar $num_entries
reprezintă numărul de intrări din acel director.checkpar.sh
care primește 2 parametri și îi afișează la ieșire. Dacă nu se dau exact 2 parametri, scriptul acesta afișează mesajul “Numărul de parametri este greșit”../checkpar.sh a b
:a b
./checkpar.sh a
:Numarul de parametri este gresit
even.sh
.checkfile.sh
care:<nume-fișier-initial>_exista
unde argument este argumentul transmis scriptului (numele fișierului)sum.sh
care realizează suma primelor N numere naturale, unde N este dat ca parametru../sum.sh 100
:suma primelor 100 de numere naturale este 5050
N
multiplu de M
. N
și M
sunt transmise ca argumente în linia de comandă.ls_boot.sh
/boot/
."fisier $nume_fisier"
sau "director $nume_director"
.$nume_fisier
reprezintă numele fișierului (în cazul în care intrarea este fișier)$nume_director
reprezintă numele directorului (în cazul în care intrarea este director);sed este un stream editor. Cel mai bine cunoscut pentru funcția de search and replace.
sed "s/foo/bar/g" in_file > out_file
Se poate adăuga parametrul -i
pentru editare “in place” a fișierului:
sed -i "s/foo/bar/g" in_file
Înlocuirea se poate face prin expresii regulate:
sed -i "s/\^first/First/g" file sed -i "s/[0-9]/X/g" file
În general, sintaxa se referă la o adresă (linii selectate) și la o acțiune asupra acelor linii:
# Pentru fiecare linie din text, dacă este între linia 3 și 4, printeaza-o; ignoră restul liniilor sed –n `3,4p’ foo.txt # Pentru fiecare linie din text, dacă este ultima linie, printeaza-o; ignoră restul liniilor sed –n `$p’ foo.txt
Se pot aplica mai multe acțiuni asupra unui fișier, folosind parametrul -e
la fiecare acțiune:
# Șterge liniile 4 și 2. sed -e '4d' -e '2d' file
awk este un întreg limbaj de procesare a textului.
În general, folosește un fișier de script pentru acțiuni, cu sintaxa:
awk –f awk.script foo.file
Există un bloc de BEGIN, unul de END și corpul scriptului.
Exemplu de script:
# Begin Processing BEGIN {print "Print Totals"} # Body Processing {total = $1 + $2 + $3} {print $1 " + " $2 " + " $3 " = "total} # End Processing END {print "End Totals"}
Rezultate:
Input Output 22 78 44 Print Totals 66 31 70 22 +78 +44 =144 52 30 44 66 +31 +70 =167 88 31 66 52 +30 +44 =126 88 +31 +66 =185 End Totals
Fiecar câmp dintr-o linie poate fi folosită ca o variabilă:
İnput 1 clothing 3141 1 computers 9161 1 textbooks 21312 2 clothing 3252 2 computers 12321 2 supplies 2242 2 textbooks 15462
awk ‘if ($2 =="computers“){print}'sales.dat
Output 1 computers 9161 2 computers 2321
thales
din diectorul curent.numbers
, iar în director creează 100 de fișiere ale căror nume este un număr cuprins între 100 și 199.inode-ul
unui fișier primit ca argument.stat
.