Sunteți pe pagina 1din 13

Fisiere i directoare

pwd printeaza directorul curent


cd [nume_director] schimba directorul
cd trimite la home
cd .. - trimite la directorul parinte al directorului curent
cd ~ - trimite la home
cd ~nume_utilizator trimite la directorul home al utilizatorului indicat
ls listeaza fisierele din directorul curent
ls -a afiseaza toate fisierele, chiar si cele ascunse (fisierele ascunse sunt cele care incep cu .
deci si directorul curent (.) si directorul parinte (..) sunt considerate ascunse)
ls -l listing lund, detaliat
ls -lR listeaza informatiile despre director si subdirectoarele acestuia
ls -ld listeaza informatiile despre insasi director si nu despre continutul lui
ls -F afiseaza informatii despre tipul fisierelor
file [optiuni] nume_fisier determina tipul unui anumit fisier
file -b (brief) - descriere scurt
file -i (mime) - nlocuiete descrierea cu tipul MIME
file -s (special file) - fiier special
file -z - ncearc s determine tipul fiierului dintr-o arhiv compresat
Combinatii de control
^C (Ctrl+c) - intreruperea unui program sau proces aflat in executie sau a unui listing interminabil
^S opreste defilarea informatiei pe ecran
^Q reia defilarea informatiei pe ecran cand a fost intrerupta cu ^S
^D marcheaza sfarsitu de fisier sau exit-ul; e folosita cand ^C nu functioneaza
^U sterge intrega linie de comanda
^W sterge ultimul cuvant de la linia de comanda
^H - sterge ultimul caracter de la linia de comanda
Vizualizare fisiere text
cat {cale/}nume_fisier afiseaza continutul fisierului respectiv
cat fisier_1 [fisier_2 [fisier_n]] > fisier_complet concateneaza 2 sau mai multe fisiere intrunul singur
more afiseaza continutul fisierului ecran cu ecran
less analog more, doar ca incepe afisarea inainte ca fisierul sa fie complet incarcat si te poti deplasa
inapoi intre ecrane
head [-n] fisier(e)- afiseaza primele n linii dintr-unul sau mai multe fisiere; daca nu se specifica n, se
afiseaza primele 10
tail [ n] fisier(e) afisarea ultimelor n linii dintr-unul sau mai multe fisiere; analog head fara n
tail [+n] fisier(e) se pornete afiarea ncepnd cu a n-a linie din fiier
Operatii cu fisiere
wc -[optiune] fisier(e) determina numarul de caractere, cuvinte sau linii dintr-un fisier; compara 2
fisiere; folosita fara optiuni, ofera informatii despre toate
wc -l numara liniile
wc w numara cuvintele
wc -c numara octetii
wc -m numara caracterele
diff [optiune] fisier1 fisier2 compara 2 fisiere text si gaseste diferentele dintre element

diff -i ignora diferentele intre literele mari si cele mici


diff -c - ofer o comparare detaliat i produce un listing pe larg a
diferenelor, ncepnd cu identificarea fiierelor i datele de
creare a respectivelor fiiere
touch fisier1fisier2 fisierX creaza unul sau mai multe fisiere; poate fi folosita si pt actualizarea
datei si orei ultimului acces la fisier
mkdir dir1 dir2 dirX creaza unul sau mai multe directoare
mkdir -p dir1/dir2/.../dirX creaza o structura de directoare pe mai multe nivele
rm [-i] fisier(e) sterge permanent fisiere; daca folosim optiunea, suntem atentionati inaintea stergerii
rm -r director(e) SAU rmdir dir1 dir2 dirX stergerea directoarelor; daca directoarele nu sunt
goale, apare eroare
rm -r[i] director(e) sterge directoare, chiar daca au continut
cp [-i] fis_sursa fis_destinatie copiem un fisier in acelasi director cu alt nume
cp [-i] fis_sursa dir_destinatie copiem un fisier in alt directorie
cp -r[i] fis_sursa fis_destinatie copiem un director cu tot cu subdirectoarele sale
mv [-i] fis_sursa fis_destinatie redenumirea unui fisier, daca e in acelasi director; muta un fisier daca
se realizeaza in directoare diferite
mv [-i] fis_sursa dir_destinatie muta un fisier in alt director
mv [-i] dir_sursa dir_destinatie redenumeste un director
Redirectarea intrarilor i iesirilor
> - redirecteaza iesirea
>> - redirecteaza iesirea la sfarsitul unui fisier existent
< - redirecteaza intrarea
2> - redirecteaza erorile
| - combina mai multe comenzi intr-o secvena
\ - comanda se continua pe linia urmatoare
ln fisier fisier_nou creaza o legatura la un fisier
ln fisier director/fisier_nou creaza o legatura la un fisier intr-un nou director
Comenzi pentru hard disc i partitii
df determina marimea spatiului liber de pe disc
df / - afiseaza marimea spatiului liber din directorul specificat
df -kvi afiseaza spatiul liber masurat in kilobiti si i-noduri
df -h afiseaza spatiul liber in MB, GB, TB
dfspace - analog df
du determina spatiul ocupat de un director
du -k - determina spatiul ocupat in blocuri
du /home/adela - determina spatiul ocupat de subdirectorul adela
du -ks /home/adela/* - afiseaza un sumar al fiecarui subdirector din /home/adela
sudo acorda privilegii de admiistrator pentru o perioada limitata, folosit pentru cnd vrem sa
adaugam noi utilizatori sau noi programe i vrem sa evitam logarea ca admin (root)
Comenzi de cutare i sortare
find cale_de_cautare -[criteriu_de_cautare] [comanda]- cauta un fisier pe disc
-nume nume_fisier cautare dupa nume

-type tip_fisier cautare dupa tip


-mtime [+/-]n cautare dupa data/ora ultimei modificari
-atime [+/-]n cautare dupa data/ora ultimului acces la fisier
-perm mod cautare dupa permisiuni de acces
-size [+/-]n[c] cautare dupa permisiuni de acces
(mai multe la pag 70)
grep -[optiuni] sir_caractere nume_fisier cauta un sir de caractere intr-unul sau mai multe fisiere;
poate fi utilizata si ca filtru pentru iesirile altor comenzi
grep -i cauta fara sa faca distinctie intre literele mari si mici
grep -v cauta toate liniile care nu se potrivesc sablonului specificat
grep -n afiseaza si nr liniei pe care se afla sirul cautat
(despre metacaractere folosite la pag 72)
sort [optiuni] [fisier_intrare] organizeaza datele in ordine alfabetica sau numerica
sort -n sortare numerica
sort (+/-)n incepe sau se termina cu campul ce urmeaza dupa al n-lea separator(de obicei
spatiu)
sort -r inverseaza ordinea de sortare
sort -f ignora diferentele intre litere mici si mari
sort -d utilizeaza ordinea de dictionar, adica compara doar literele, cifrele si caracterele white
spaces, ignorandu-le pe celelalte
sort -o nume_fisier rezultatul sortarii va fi stocat in fisierul specificat, fara sa mai fie afisat
Comenzi de arhivare i comprimare
tar functie [modificator] [fis_iesire] nume_fis | nume_dir arhiveaza un fisier sau un director, fr a-l
compresa
Funcii:
tar [-]c creaza o arhiva dintr-unul sau mai multe fisiere/directoare
tar [-]t afiseaza un tabel cu continutul arhivei de tip tar
tar [-]x extrage fisiere dintr-o arhiva i le separa din nou, arhiva continuand sa existe
Modificatori: tar f permite specificarea unui fisier tar pt c,t, sau x
tar v (modul verbose) afiseaza rezultatele detaliate ale comenzii tar pe masira ce
aceasta ruleaza
compress fisier(e) comprima unul sau mai multe fisiere
compress -v comprima i afiseaza numele fisierelor de intrare i de ieire i procentul de
comprimare obinut
uncompress [opiuni] [nume_fisier] decompreseaza fisierele comprimate anterior
uncompress -c afiseaza continutul unui fisier comprimat, fr a face decompresia
jar arhiveaza i inglobeaza compresia fisierului n acelai pas; se aseamana foarte mult cu tar
jar -c creeaza o noua arhiva jar
jar -t listeaa continutul arhivei
jar -x extrage fisierele specificate din arhiva
jar -F specifica fiierul sau banda magnetica
jar -V executa n modul verbose
gzip [ -acdfhlLnNqrtvV19 ] [ -S sufix] [nume_fisier ] - comprima fiierul specificat, stergand
fiierul original i inlocuindu-l cu varianta compresata; fiierul i pstreaz toate proprietatile
gzip -a folosete modul text ASCII, caracterele EOF sunt convertite n conventii locale
gzip -c scrie rezultatul produs ctre un standard output i lasa fiierul de intrare nemodificat
gzip -d decompreseaza fisierele
gzip -f forteaza comprimarea/decomprimarea
gzip -h afiseaza help

gzip -l afiseaza informaii despre fiecare fisier comprimat


gzip -L afiseaza informaii despre licenta gzip
gzip -n nu salveaz implicit cu numele fisierului initial
gzip -N la comprimare salveaz numele i informaiile fisierului initial
gzip -q suprima toate mesajele de avertisment
gzip -r actioneaza pe structura directorului recursiv
gzip -s modifica extensia implicita n cea specificata n sufix
gzip -t face un test de integritate a fisierului comprimat
gzip -v executa n modul verbose
(mai multe la pag 82)
gunzip [ -acfhlLnNqrtvV ] [ -S sufix] [nume_fisier ] - citeste toate fisierele care ncep cu numele
specificat i care au extensia .gz, .z, .Z, .bz2 sau altele, le sterge i le inlocuieste cu varianta
decomprimata; optiunile sunt aceleai ca la gzip
gzcat -fhLV [nume_fisier ] - decompreseaza fisiere specificate, iar dac nu sunt specificate intrarea
este standard imput; optiunile sunt aceleai ca la gzip (doar cele scrise n sintaxa)
Servicii de reea
telnet metoda de conectare la un sistem aflat la distana
ftp> metoda de transfer de fisiere intre servere
ftp>ascii seteaza tipul de transfer al fisierelor la ascii (setarea e implicita)
ftp>binary seteaza tipul de transfer al fisierelor la binar
ftp>cd modifica directorul curent de lucru de pe pc-ul de la distana
ftp>dir afiseaza continutul directorului curent
ftp>get copiaza un fisier de pe pc de la distana pe pc local
ftp>lcd modifica dir curent pe pc local
ftp>ls listeaza continutul dir curent de pe pc de la distana
ftp>mget copy mai multe fisiere de pe pc de la distana
ftp>put copy fiierul specificat de pe pc local pe pc de la distana
ftp>quit/bye inchide conexiunea ftp
rlogin nume_sistem conecteaza sistemul local la unul aflat la distana (ambele UNIX)
rlogin nume_sistem -l nume_utilizator analog
rcp copiaza fisiere sau directoare de pe un sistem pe altul
{ex: $ rcp infocib:/tmp/test.file /tmp/test.file }
remsh permite rularea unei comenzi pe alt sistem; rezultatele sunt afisate local
{ex: $ remsh infocib more /tmp/test.file }
rwho determina utilizatorii conectai la alt sistem
ping determina existena unei conexiuni intre 2 entitati din reea
netstat determina diverse informaii legate de rutarea din reea
netstat -r afiseaza tabela de rutare
netstat -n afiseaza adresele IP din reea
netstat -v afiseaza informaii aditionale despre rutare
route ?!!!!
ifconfig ofera informaii suplimentare legate de interfata de retea
rpcinfo -p nume_sistem determina functionalitatea unui sistem prin observarea proceselor daemon
ce ruleaza pe acesta
arp afiseaza continutul memoriei cache ARP
arp -a afiseaza adresele recent mapate exsitente n memoria cache arp
arp -s introduce manual corespondente n memoria cache arp
nslookup determina adresa IP a unei gazde al carui nume l cunoatem

Alte comenzi:
man arata manualul
info afiseaza paginile info ale unei comenzi (date)
whatis comanda arata o explicaie scurta despre comanda data
apropos comanda afiseaza mai multe informaii, cu trimitere la paginile din manual, pentru comanda
sau comenzile similare cu ce a fost introdus
passwd schimba parola
echo $SHELL afiseaza consola/shellul folosit
pag 41 man 2?!!!!
id - arat grupul iniial al utilizatorului curent si eventual si celelalte grupuri de care aparine
uname a - Print system information
hostname - Print or set system name
su [optiuni] utilizator - permite rularea unui shell ca un utilizator diferit. Este folosit n general pentru
a obine permisiuni de acces root fr a schimba utilizatorul curent
-m/ -p environmentul utilizatorului curent este folosit in continuare
-c comanda specificata este executata
cut [optiuni] fisier - folosit pentru extragerea liniilor de text din fiiere
-b extragerea octetilor de pe linie
-c extragerea caracterelor
-f extragerea campurilor (implicit, campurile sunt separate de TAB)
-d delimitator folosit in separarea campurilor
ps [optiuni] - tiprete pe ecran toate procesele care ruleaz pe calculator. Comanda este nrudit cu
comanda top
top [optiuni] - permite monitorizarea proceselor care ruleaz ntr-un sistem UNIX. Implicit, procesele
sunt ordonate dup CPU usage, i numai procesele cele mai active sunt artate pe ecran;
-d specifica intervalul dintre actualizarile ecranului
-n numarul de iteratii
-p identificatorul procesului care va fi urmarit
kill [-s semnal] pid sau kill [-l] semnal - {unde semnal este valoarea numeric a semnalului, iar pid
este identificatorul procesului}- este folosit pentru a trimite un semnal unui proces, cel mai des de
terminare
-l listeaza toate semnalele care pot fi trimise
ln [opiuni] fiier link - {unde fiier este sursa iar link este legtrura} - creaza linkuri la fiiere
-s creeaza un link simbolic
-f daca linkul exista deja, mai intai este sters
sdiff -o fisier_destinatie [opiuni] fisier1 fisier2 gsete diferenele intre doua fisiere i imbina
interactiv cele doua fisiere
scp copiaza fisiere intre gazde ntr-o reea, n condiii de sigurana, folosind ssh
rcp [-px] file1 file2 SAU rcp [-px] [-r ] file ... directory analog scp, doar ca nu n condiii de
sigurana
rcp -r dac una dintre surse are subdirectoare, le copiaza i pe acelea; conditia e ca destinaia
s fie tot un director
rcp -p la copiere se vor pstra timpii de modificare i modurile fisierelor sursa (adic aplica
umask peste fisierele copiate)
ssh user1@remote_server {secure shell} permite accesul securizat la un sistem remote, precum ftp
sftp user1@remote_server permite ca i FTP copierea de fiiere de pe o main pe alta, diferena
fiind c n cazul SFTP tunelul prin care se desfoar comunicaia este criptat
sar colecteaza, intocmeste un raport sau salveaz informaii despre activitatea sistemului

zoneadm permite instalarea i/sau administrarea unei zone


zpool - configures ZFS storage pools. A storage pool is a collection of devices that provides physical
storage and data replication for ZFS datasets. A ZFS storage pool is a logical collection of devices that
provide space for datasets. A storage pool is also the root of the ZFS file system hierarchy
bg [nume_proces] lanseaz n background procesul dat ca parametru sau procesul actual, dac nu
exista parametru
fg nume_proces readuce procesul precizat din background in stare normala; acesta va fi procesul
actual
nohup comanda [ARG] executa o comanda imuna la semnale de intrerupere, cu ieire la un non-tty
prtdiag - afiseaza informaii referitoare la configuratia i diagnosticum sustemului
init - process control initialization; { = telinit }
ipcs [-asmq] [-t|-c|-l|-u|-p] SAU ipcs [-s|-m|-q] -i id - is used to list the information about the interprocess communication, it provides a report on System V IPCS (Message queue, Semaphore, and
Shared memory)
-i id - print details on resource identified by id
-m - shared memory segments
-q - message queues
-s - semaphores
-a - all (default)
Output format: -t (time); -p (pid); -c (creator); -l (limits); -u (summary)
ipcrm - removes System V interprocess communication (IPC) objects and associated data structures
from the system. In order to delete such objects, you must be superuser, or the creator or owner of the
object
crontab - programeaza o comanda pentru a fi executata mai tarziu
awk - gaseste si inlocuieste text, sorteaza/valideaza/indexeaza
sed - editor stream

Editorul vi cu ajutorul sau se pot crea i/sau modifica fisiere de configurare, fisiere de tip shellscript sau modifica fisiere de configurare a sistemului legate de reea, securitate, administrare, etc. Este
un editor bazat pe caracter, creeaza sau modifica fisiere text sau ascii. Editarea n vi se face prin
intermediul unei memorii tampon sau buffer, iar modificarile pot fi salvate sau nu. Se poate opera doar
asupra fisierelor text simple.
Exist trei moduri de lucru:
modul comanda modul initial de lucru; toate comenzile se introduc plecnd de aici;
dac se apada ESC n oricare din celelalte 2 moduri, se revine la acest mod
modul introducere pt introducerea de text. Folosim comenzile: i inserare; a
adaugare; o deschiderea unei linii noi
modul ultima linie pt salvarea documentului i pt ieirea din vi. Pt a accesa acest mod
trebuie data comanda :
vi [optiuni] [nume_fisier] - deschiderea editorului vi
vedit pornete vi cu modul show activat; modul show se mai poate activa prin introducerea comenzii
: set showmode
Comenzi de inserare de baza: (n modul inserare)
a adaugare text dup cursor
A adaugare text la sfritul liniei
i inserare text dup cursor
o introducere linie noua sub linia pe care e cursorul
Comenzi de baza pentru pozitionarea cursorului:
j sau sgeata jos; k sau sgeata sus; h sau sgeata stnga; l sau sgeata dreapta
<space> - deplasare la dreapta cu un caracter
w deplasare la dreapta un cuvant
b deplasare la stanga un cuvant
$ deplasare la sfritul liniei
0 sau ^ deplasare la nceputul liniei
<return> deplasare la nceputul liniei urmatoare
:w [nume_nou_fisier] salvare fisier [cu un nume nou]
:wq salveaz i iese
ZZ salveaz i iei (n mod comanda)
:q! - exit fr sa salveze
:wq! - salveaz modificarile dintr-un read-only i iese
:e! - renuna la toate modificarile fcute de la ultima salvare i ncepe din nou editarea
Comenzi pt stergerea textului: (se realizeaza din modul comanda)
x sterge caracterul din dreptul cursorului
dw sterge cuvntul de la dreapta cursorului
5dw sterge 5 cuvinte la dreapta
dd sterge ntreaga linie pe care e cursorul
2dd sterge 2 linii ncepnd cu cea curenta
3x sterge 3 caractere ncepnd cu cel din dreptul cursorului
Comenzi pt copy, paste, modificare i anulare:

cw modifica cuvntul de la cursor pana la finalul cuvantului


5cw modifica 5 cuvinte
r inlocuieste caracterul pe care e cursorul cu un altul
u anuleaz ultima comanda
dd, apoi p sterge apoi lipeste
yy, apoi p copiaza apoi lipeste
yy copiaza o linie
p paste linia copiata sau tears sub cea curenta
P paste linia copiata sau tears deasupra cea curenta

SHELL-uri UNIX - este un program special utilizat ca o interfa ntre utilizator i inima sistemului
de operare UNIX, un program denumit kernel. Shell-ul este un program utilitar ce este pornit n
momentul conectrii utilizatorului la sistem, oferind posibilitatea utilizatorilor s interacioneze cu
kernelul prin interpretarea comenzilor introduse fie direct de la tastatur, fie prin intermediul unui fiier
de comenzi shell, numit fiier shell-script.
Fiierele shell-script permit, pe lng utilizarea mai multor comenzi ce se execut (de regul)
secvenial i faciliti de programare avansat, structuri de decizie, ciclare, testare de fiiere, .a. Pentru
a putea scrie shell-script-uri trebuie cunoscute nu numai structurile de programare existente
(condiionale, repetitive, etc.) dar i comenzile, utilitarele i modalitatea de funcionare a acestora n
sistemul de operare UNIX. Printre programele utilitare existente n UNIX se afl i grep, sed sau awk
ce reprezint instrumente deosebit de puternice pentru manipularea fiierelor i a rezultatelor
comenzilor.
chsh /bin/sh schimba shell-ul
PID (Process Identification) - fiecare proces are asociat un numr de identificare
n momentul execuiei unei comenzi, aceasta poate fi un alias, o funcie, o comand intern sau un
program executabil pe hard disc. Un alias reprezint o prescurtare a unei comenzi existente. Functiile
sunt grupari de comenzi organizate sub forma unor proceduri separate. Comenziile interne reprezint
rutine interne ale shell-ului, iar programele executabile sunt localizate pe hard disk.
Un proces reprezint o instan a unui program aflat n execuie i poate identificat prin PID. Shell-ul
aparine unui grup de procese identificat prin identificatorul PID. Doar un singur grup de procese are
controlul terminalului la un moment dat i se spune c ruleaz n foreground (la suprafa). Shell-ul
poate iniia i alte procese, lucru pe care l face prin intermediul unui apel ctre kernel, denumit apel de
sistem. Exist o serie de apeluri de sistem ce permit proceselor s fie create, s se execute i s se
termine.
ps [opiuni] listeaza procesele aflate n execuie
ps -ef \ aux listeaza toate procesele ce ruleaza pe un sistem
Cele mai importante apeluri de sistem sunt: fork, wait, exec i exit.
fork creeaza un proces
wait procesul printe intra n sleep, n timp ce procesul copil ruleaza n background
exec pune n executare un proces copil
exit ncheie un proces

umask permite modificarea mastii implicite a unui proces copil, adic drepturile de acces; se poate
folosi i pentru fisiere sau directoare; folosete valorile zecimale (vezi man 1 pag 130)
chmod cod fisier modifica drepturile de acces la fisiere/directoare
chown modifica proprietarul i grupul pentru fisiere i directoare
Scrierea unui shell-script
Se va utiliza un editor de texte, se vor scrie comenzile i constructiile shell i se va salva fiierul cu
extensia .sh. Prima linie din fisier indica tipul de shell utilizat:
#!/bin/sh
- sh pt shellul Bourne
Dup ce salvm fiierul, trebuie s i dm drepturi de execuie (vom folosi comanda chmod) i n acest
moment suntem gata s l rulm.
./<nume>.sh pune n execuie fiierul shell-script din directorul curent de lucru (./)
BOURNE SHELL
Operatorii suportati de sh sunt de 3 tipuri: aritmetici folosii doar pentru operatii cu numere ntregi;
de test folosii pentru operatii cu fisiere, variabile string i variabile intregi; logici.
test [ <conditie> ] - testeaz dac conditia introdusa e adevrata (returneaza 0) sau falsa (returneaza 1);
dac da eroare returneaza 2; conditia este pusa intre [] atuncic cnd e folosit ca parte a lui if
<conditie> are forma: [<operand1>][<operator>]<operand2>
echo $? - afiseaza rezultatul celei mai recente comenzi executate
Operatori pt fisiere:
-d <fisier> - e director?
-f <fisier> - e fisier obinuit?
-g <fisier> - are setat identificatorul GID?
-r <fisier> - poate fi citit?
-s <fisier> - e de lungime diferita de zero?
-w <fisier> - poate fi modificat?
-x <fisier> - e executabil?
Operatori pt stringuri:
<sir> - este sirul introdus nenul?
-n <sir> - are sirul lungimea diferita de zero?
-z <sir> - are sirul lungimea zero?
<sir1>=<sir2> - e identic sir1 cu sir2?
<sir1>!=<sir2> - e diferit sir1 de sir2?
var simplu string
$var variabila shell
Operatori pt tipul integer:
sintaxa:
[ int1 operator int2 ]
-eq testeaz egalitatea
-ge testeaz dac int1 e >= dect int2
-gt testeaz dac int1 > dect int2

-le testeaz dac int1 <= dect int2


-lt testeaz dac int1 < dect int2
-ne testeaz dacat int1 diferit de int2
Operatori pt tipul boolean:
! <expresie> - expresie fals?
<expresie1> -a <expresie2> - ambele expresii adevrate?
<expresie1> -o <expresie2> - una dintre expresii adevrat?
Operatori pt tipul logic:
comanda1 && comanda2 comanda2 e executat dac exit status-ul comenzii comanda1 este zero
comanda1 || comanda2 comanda2 e executat doar dac exit status-ul comenzii comanda1 este
diferit de zero
\ - comanda se continua pe linia urmtoare; anuleaz semnificaia special a unui/unor caracter(e);
caracterul backslash i pstreaz semnificaia special dac este urmat de $ , ` , " , \ sau <newline>
() - au semnificatie special i nu pot fi folosite n shell-script-uri n scopul gruprii diverselor
comparri. Pentru a ignora semnificaia special a parantezelor ntr-o comand se folosete tot
caracterul de evitare "\"
Operatori aritmetici: +, -, *, /, %
expr permite efectuarea de calcule aritmetice, stringul care urmeaz va fi evaluat ca expresie
matematica; are de-a face doar cu numere intregi
* - are semnificatie special, deci pt a fi folosit ca nmulire e necesar \ nainte de fiecare *
Gramatica shell-script
[!] comanda1 [| comanda2 ...] - pipe semnifica ca ieirea standard a comenda1 e conectat la intrarea
standard a lui comanda2; dac apare ! atunci exit status-ul pipeline-ului
va fi valoarea negat a exit status-ului ultimei comenzi
comanda1 && comanda2 comanda2 este executat dac i numai dac comanda1 ntoarce un exit
status zero
comanda1 || comanda2 comanda2 se executa dac i numai dac comanda1 returneaz un exit status
diferit de zero
O list este o secven de una sau mai multe pipelines separate de unul sau mai muli operatori ;
, & , && sau || i terminat cu ; , & sau <newline>.
Dac o comand se termin cu operatorul de control &, shell-ul execut comanda respectiv
n background ntr-un subshell. Shell-ul nu ateapt terminarea comenzii i ntoarce valoarea zero.
Comenzile separate de caracterul ; sunt executate secvenial, shell-ul ateapt terminarea
fiecreia dintre comenzi, iar valoarea ntoars este exit status-ul ultimei comenzi executate.
# - introduce un comentariu; face s se ignore caracterele existente dup semnul # i pn la
sfritul liniei respective
Variabile modificate dinamic:
$# - reprezint numrul parametrilor poziionali ai unui program shell
$? - reprezint exit status-ul (codul de revenire) celei mai recente comenzi executate
$- - reprezint opiunea curent cu care a fost lansat shell-ul
$$ - reprezint identificatorul de proces al shell-ului
$! - reprezint identificatorul de proces al celei mai recente comenzi lansate n background
$0 - reprezint numele shell-ului sau al shell-script-ului

$1..$9 - reprezint argumentele (parametrii) ultimei comenzi lansate n execuie la linia de


comand
$_ - reprezint ultimul argument al comenzii anterioare

Variabile atribuite la intrarea n sesiune:


$HOME - reprezint directorul atribuit utilizatorului (directorul implicit) la intrarea n sesiune
$PATH - reprezint lista directorilor ce sunt parcuri de shell la cutarea unui fiier executabil
corespunztor comenzii introduse
$PS1 - reprezint prompter-ul asociat interpretorului
$PS2 - reprezint al doilea prompter (pentru continuarea liniei de comand, cel implicit este >)
$MAIL - reprezint numele directorului implicit pentru pota electronic
$LOGNAME - reprezint numele de login al utilizatorului
$SHELL - reprezint numele interpretorului de comenzi implicit atribuit la intrarea n sesiune
$TERM - reprezint tipul de terminal folosit de editorul vi i de alte editoare orientate pe ecran
Instruciunea IF
if <com_test1>
then
<secventa_comenzi1>
else
<secventa_comenzi2>
fi
Instruciunile if pot fi incuibate astfel:
if <com_test1>
then
if <com_test2>
then
<secventa_comenzi1>
fi
else
if <com_test3>
then
<secventa_comenzi2>
fi
fi

sau astfel cu elif (alternativa la else...if):


if <com_test1>
then
<secventa_comenzi1>
elif <com_test2>
then
<secventa_comenzi2>
else
<secventa_comenzi3>
fi

Comanda null ( : )
Comanda null este reprezentat de caracterul special : i este o comand care nu face nimic i
returneaz un exit-status egal cu zero. Poate fi utilizata cu if atunci cand nu avem nimic de pus la then.
Intructiunea CASE
case <valoare> in
sablon_1) <comanda11>
<comanda12>
...
<comanda1n>;;
sablon_2) <comanda21>
<comanda22>
...
<comanda2n>;;
...
sablon_m) <comandam1>
<comandam2>
...
<comandamn>;;
esac
Instruciunea FOR
for <variabila> in <valoare_1> <valoare_2> <valoare_n>
do
<comenzi>
done
Instruciunea WHILE
while <comanda_adev>
do
<comenzi>
done
Instruciunea UNTIL
until <comanda_adev>
do
<comenzi>
done
Gruparea comenzilor shell: --- mai multe man1, pag 154
grupare secvenial: pwd;ls -l
grupare n paranteze: (pwd;ls -l)

grupare n background: sort fiier&


grupare n conduct (pipe): ls -l | pg

S-ar putea să vă placă și