Sunteți pe pagina 1din 4

LABORATOR NR.

1 - SISTEME DE OPERARE
1. Interfaa utilizator la sistemul de operare UNIX
2. Comenzi Shell
3. Aplicatii

1. INTERFAA UTILIZATOR
1.1. Interpretorul de Comenzi
Interpretorul de comenzi (Shell-ul) este aplicaia software care furnizeaz utilizatorului o interfa de
comunicaie n mod text cu sistemul de operare Unix. Prin intermediul Shell-ului utilizatorul poate
transmite sistemului de operare Unix comenzi exprimate ntr-un limbaj specific - limbajul Shell.
Shell-ul este un program neprivilegiat, localizat n subdirectorul /bin i independent fa de nucleul
sistemului Unix. Sistemul de operare Unix dispune de mai Interpretoare de Comenzi (Shell-uri): C-shell,
Korn Shell, Bourne Shell (bash), etc. Administratorul de sistem specific pentru fiecare utilizator ce Shell
(Interpretor de Comenzi) implicit va folosi n comunicaia cu sistemul de operare. Toate interpretoarele de
comenzi din Unix recunosc acelai set de baz de comenzi.
Interpretorul de Comenzi Shell realizeaz doua funciuni importante:
preluarea, prelucrarea i execuia comenzilor date de utilizator
execuia de programe structurate - numite script-uri Shell - scrise in limbajul de instruciuni Shell.

1.2. Ataarea la Sistem


Iniierea unei sesiuni de lucru sub Unix se realizeaz de ctre utilizator prin introducerea unui nume de cont
i a parolei aferente. Aplicaia de conectare la sistem (aplicaia de login) verific aceste informatii i dac
ele sunt corecte, se ncarc :
Interfaa grafic (desktop-ul grafic), dac pentru utilizatorul respectiv este prevazut implicit
comunicarea n mod grafic cu sistemul de operare
Interpretorul de Comenzi Shell, dac pentru utilizatorul respectiv este prevazut implicit
comunicarea n mod alfanumeric mod text sau mod terminal - cu sistemul de operare.
Observaie : La sistemele Linux accesibile din laboratoarele Departamentului CTI n mod implicit
comunicarea cu sistemul se face n mod grafic (prin intermediul unei interfee grafice).
n cazul comunicrii prin interfa grafic, lansarea Interpretorului de Comenzi Shell poate fi facut prin
selectarea unei aplicaii terminal sau a unei aplicaii consol din listele de aplicaii afiate n diverse
bare de aplicaii de pe ecran. n urma acestei selecii se lanseaz n execuie o instan de Shell care va
deschide pe ecran o fereastr terminal n care utilizatorul va putea tasta i executa comenzi Shell.
Prezena Shell-ului ca program activ n fereastra terminal este semnalat prin afiarea unui ir de
caracterere numit prompter. Afisarea prompter-ului n fereasta terminal semnaleaz faptul ca Shell-ul este
apt sa primeasc comenzile tastate de utilizator.
Observaie : La sistemele Linux accesibile din laboratoarele Departamentului CTI prompter-ul afiat ntr-o
fereastr terminal pentru un utilizator obinuit este format din urmtoarele iruri de caractere:
nume_utilizator@nume_logic_masina ~ $
nume_utilizator@nume_logic_masina director_curent $
Dac utilizatorul se afla plasat n directorul propriu (home directory) se afieaz semnul ~ (tilda) n
promter. Dac utilizatorul este plasat n alt director dect cel propriu, parametrul director_curent
(working_ directory) din promter va afia traseul de la directorul radacin pn la directorul curent.
1

2. COMENZI SHELL
2.1. Sintaxa Comenzilor Shell
Comenzile Shell au sintaxa general:
nume_comand [opiuni] [argumente]
unde nume_comand reprezint numele comenzii ce va fi executat de Shell, iar celelalte cmpuri definesc
parametrii comenzii. Parametrii comenzii se separ prin spaii i sunt de dou tipuri :
opiuni, care particularizeaz modul de execuie al comenzii
argumente, care specific entitile (fiiere, directoare, programe, utilizatori) asupra crora va
aciona comanda respectiv.
Opiunile unei comenzi pot fi exprimate prin dou metode:
- ( minus) urmat de o liter sau o cifr ce reprezint opiunea

-- (dublu minus) urmat de un ir de caractere ce reprezint o variabil i valoarea sa.


Exemple :
Parametrii unei comenzi au valori interne prestabilite ce vor fi luate in consideraie atunci cand nu sunt
specificai de utilizator la lansarea acelei comenzi.

2.2. Execuia unei Comenzi Shell


Shell-ul executa comenzile lansate de utilizator dupa urmatorul ciclu:
repeta
afiseaza prompter
citeste comanda tastata de utilizator
decodifica si verifica comanda
lanseaza in executie comanda
asteapta terminarea comenzii daca nu s-a specificat altfel
pn cnd comanda lansat este exit.
O comanda este preluata de Shell la terminarea introducerii ei complete, marcata prin apasarea tastei
Enter (NL New Line). Toate caracterele introduse pana la terminarea introducerii intra in alcatuirea acelei
comenzi, cu exceptia caracterului backspace , care are ca efect stergerea caracterului precedent.
Interpretorul de Comenzi implementeaza actiuni specifice pentru anumite caractere de control:
CTRL c
CTRL \
CTRL z
CTRL d
CTRL u

ncheiere comend curent aflat n execuie


ncheiere comend curent aflat n execuie
Suspendare (oprire temporar) a comenzii curente aflate n execuie
ncheie introducerea datelor intr-un fiier (EOF)
Anuleaza toate caracterele tastate pe linia de comand

Comenzile Shell-ului pot fi externe sau interne (built-in). Comenzile externe se efectueaza prin lansarea in
executie a unui fisier (executabil) stocat pe disc. Executia unei comenzi externe incepe cu cautarea fisierului
executabil care va realiza efectiv comanda. Cautare se face in subdirectoarele specificate intr-o variabila de
mediu a Shell-ului numita $PATH, in ordinea in care acestea sunt specificate in aceasta variabila.
Comenzile interne sunt functii codate direct in aplicatia Shell. Cele mai frecvent utilizate sunt urmatoarele:
comanda nula
Se obtine prin apasarea tastei enter i intoarce codul de retur 0 (succes)
nume_fisier
Cauta in directoarele indicate de variabila de mediu $PATH fisierul
executabil nume_fisier i il lanseaza in executie ntr-o nou instan Shell
cd [director]
Schimba directorul curent cu cel specificat in argumentul director
echo [optiuni] [argumente] Afiseaza argumentele primite - variabile Shell sau iruri de caractere
ncheie execuia interpretorului de comenzi i nchide ferestra terminal
exit
export nume= valoare
pwd
set [argumente]
type nume_comanda

nscrie n mediu (environment) variabila nume cu valoarea valoare


Afiseaza numele directorului curent
Afiseaza sau seteaz valorile unor variabile Shell specificate ca argumente
Afiseaza tipul comenzii (intern sau extern) specificata prin argumentul
nume_comnada

Observaie : Sintaxa completa a comenzilor LINUX poate fi aflata prin consultarea paginilor Manualului
disponibil on-line. Pentru sintaxa comenzilor care vor fi prezentate in continuare se va folosi conventia BNF:
parametrii optionali se vor include intre paranteze drepte [ ] .

2.3. Comenzi Diverse, Informative i de Configurare


Orice comand reintoarce in urma executiei un cod retur ce are valoarea 0 n caz de succes sau o valoare
diferita de zero n caz de eec al acelei comenzi. Codul de retur este atribuit unei variabile de mediu a Shellului numit $?. Codul de retur stocat in variabila de mediu $? poate fi folosit pentru a testa rezultatul
executiei comenzii precedente.
Vizualizarea comenzilor executate anterior (command history) se face prin apasarea tastelor sgei, astfel
comenzile anterioare putnd fi reutilizate si (eventual) modificate in vederea unei re-lansari.
man [optiuni] [nume_comanda]
man [optiuni] cuvant_cheie
whoami
who [optiuni]
finger [optiuni] [nume_user]
file [optiuni] nume_fisier
date [optiuni] [data_si_timp]
cal [optiuni] [luna an]
apropos sir_de_caractere
whatis
whereis
grep [optiuni] model [fisier]
set [optiuni]
alias nume=comanda
pwd

afiseaza pagina din manualul sitemului Linux care descrie comanda


nume_comanda.
afiseaza numele utilizatorului curent
afiseaza informatii despre utilizatorii conectati la sistem
afiseaza informatii despre uitilizatorii conectati la un moment dat, sau
despre un anumit utilizator
afiseaza informatii despre formatul unui fisier
afiseaza si seteaza data calendaristica si timpul
afiseaza calendarul lunii sau anului curen
afiseaza informatii despre toate aparitiile unui sir de caractere in
paginile de manual (echivalent cu man k sir_de_caractere)
nume_comanda afiseaza functiile unei comenzi
comanda afiseaza locatia unei comenzi in directoarele sistemului
specificate in variabila $PATH
afiseaza liniile dintr-un fisier sau din intrarea standard care se
potrivesc cu modelul model dat ca argument
afiseaza valorile variabilelor de mediu ale Shell-ului
stabileste un pseudonim pentru o comanda
afiseaza calea completa (de la radacina) pina la directorul curent
3

ls [optiuni] [argumente]
mkdir [optiuni] nume_director
rmdir [optiuni] nume_director
more [fisier]
less [fisier]
write [utilizator]
tty [optiuni]

afiseaza continutul directorului curent


creeaza un subdirector
sterge un subdirector
comanda pentru afisare paginata
comanda pentru afisare paginata (numai in Linux)
trimite un mesaj catre un alt utilizator
afiseaza numele terminalului curent

3. APLICATII

I . Sa se consulte Manulalul Programatorului pentru comenzile enumerate in sectiunea 2. a referatului de


laborator. Sa se execute fiecare comanda cu diverse variante de optiuni.
II. Sa se rezolve exercitiile urmatoare:
1. Sa se afiseze informatii despre utilizatorul root
2. Sa se afiseze toate informatiile din sistem referirtoare la cuvintul user.
3. Sa se afiseze valoarea codului de retur intors de o comanda executata cu succes si valoarea codului
retur intors de o comanda esuata.
4. Sa se afiseze valoarea variabilei de mediu PATH.
5. Sa se scrie cu ajutorul comenzii echo un sir pe mai multe rinduri.
6. Ce semnificatie au numele de fisiere . si . . din fisierul director?
7. Sa se schimbe directorul curent cu cel aflat la doua nivele mai sus, folosindu-se o singura comanda
si fara a se specifica numele acestui director. Sa se revina in directorul propriu (home directory) cu
comanda de maximum 2 caractere.
8. Sa se creeze doua directoare t1 si t2, t1 subdirector al directorului curent iar t2 subdirector al lui t1,
folosindu-se o singura comanda mkdir.
9. Sa se stearga cu o singura comanda rmdir subdirectoarele create in cadrul exercitiului nr. 8.
10. Sa se stearga directorul parinte al directorului curent. Explicati rezultatul.
11. Sa se afiseze toate fisierele directorului curent.
12. Sa se afiseze numai fisierele subdirectoare ale directorului curent.
13. Sa se afiseze toate fisierele din directorul curent si din subdirectoarele sale.
14. Sa se afiseze fisierele din directorul curent in ordinea datei ultimei modificari.
15. Ce semnificatie are primul caracter al fiecarei linii afisate in urma comenzii ls l ?
16. Sa se listeze continutul directorului curent in ordine invers alfabetica.
17. Sa se localizeze in sistemul de directoare fisierul executabil corespunzind comenzii file.
Sa se afiseze tipul acestui fisier.
18. Aflati comanda care inhiba afisarea pe ecran a comenzilor tastate, fara a se inhiba efectuarea lor.
(Ind: man stty)

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