Sunteți pe pagina 1din 13

Modalitate de conectare la shell Linux:

Maşina : sys.ase.ro
Port 22
User: soidstud, soidstud1… soidstud10
Passwd: identica cu numele de utilizator

Sau se poate lucra online:


Accesati https://www.webminal.org/ si va creati un cont!!!!

Interpretoare de comenzi. Comenzi Shell.

Multe sisteme de operare poseda o componenta specializata numita interpretor de comenzi.


Aceasta componenta este responsabila cu asigurarea dialogului elementar intre utilizator si
sistemul de operare.
In linii mari, interpretorul de comenzi functioneaza astfel :
• afiseaza un mesaj de invitatie (prompter); forma acestuia difera de la un sistem la
altul, putand fi un simplu caracter ($, %, #) sau o succesiune de caractere. Prompter-ul
indica faptul ca sistemul este gata sa primeasca comenzi;
• preia o linie de comanda de la utilizator;
• descompune linia de comanda intr-un nume de comanda si o serie de argumente;
• daca numele de comanda identifica o comanda interna, atunci interpretorul de comenzi
executa el insusi comanda respectiva; in caz contrar, numele comenzii este utilizat
pentru a repera un fisier executabil care este incarcat si executat;
• dupa terminarea executiei comenzii curente, afiseaza din nou prompter-ul, asteptand
o noua comanda.
Dialogul cu un sistem are loc, de obicei, prin intermediul unui terminal. Dupa initializarea sesiunii
de lucru a unui utilizator (introducerea numelui de login si, eventual, a parolei) se lanseaza
interpretorul de comenzi (shell). In cazul Unix/Linux-ului, interpretorul de comenzi este un
program obisnuit, cu nimic mai privilegiat ca altele. Utilizatorul are posibilitatea sa aleaga el ce
program sa fie lansat la inceputul sesiunii.
Interpretoarele de comenzi cele mai folosite sunt: sh (Bourne shell), csh (C
shell), ksh (Korn shell).
In termenii utilizati de Unix/Linux, fiecare program in executie este un proces.
Comanda
$ date
folosita pentru a afla ora si data curente, declanseaza urmatoarea secventa de actiuni :
• interpretorul de comenzi citeste comanda si o analizeaza;
• interpretorul de comenzi lanseaza procesul date, intrand totodata in asteptarea terminarii
acestuia (se spune ca el adoarme pe durata executiei comenzii);
• procesul date afiseaza informatia referitoare la data curenta;
• la terminarea procesului date, interpretorul de comenzi preia controlul si afiseaza din nou
prompter-ul, asteptand o noua comanda.
La un moment dat, mai multe procese pot fi incepute si neterminate; spunem
ca ele sunt active. De ex., la executia comenzii date, sunt active interpretorul de
comenzi si procesul date insusi.
Obs.: Daca cele doua procese sunt active, nu inseamna ca ele se executa simultan, ci
doar ca executia ambelor a inceput si nu s-a terminat. In exemplul precedent, in timp ce se
executa procesul date, interpretorul de comenzi asteapta terminarea lui.
Obs.: Oprirea unui program inainte de terminarea executiei sale se realizeaza
cu CTRL+C. Utilizarea lui provoaca terminarea fortata a programului si reluarea
controlului de catre interpretorul de comenzi.

Alte caractere de control sub Unix/Linux:


• Ctrl-s – opreşte afişarea textului pe ecran;
• Ctrl-q – reia afişarea textului pe ecran (oprită cu Ctrl-s);
• Ctrl-c – întrerupe activitatea curentă şi se foloseşte de regulă pentru a opri procese
sau afişări pe ecran;
• Ctrl-d – semnifică sfârşitul fişierului sau ieşire, fiind utilizat pentru a ieşi din unele
utilitare Unix/Linux, ieşirea unei ferestre terminal sau pentru logout;
• Ctrl-u – şterge întreaga linie de comandă, fiind o modalitate rapidă de a şterge o
linie de comandă pe care ne-am decis să nu o mai executăm;
• Ctrl-w – şterge ultimul cuvânt introdus la linia de comandă;
• Ctrl-h – şterge ultimul caracter introdus la linia de comandă, fiind folosit atunci când
tasta <BACKSPACE> nu funcţionează.

Lansarea comenzilor in fundal

Unele procese sunt neinteractive si au o durata mare de executie. Pentru astfel de procese,
sistemul Unix/Linux prevede un mod special de executie, in fundal (background). Pentru
lansarea executiei in fundal a unui proces, comanda trebuie terminata cu caracterul &. De ex.:
$ calcul &
Odata executia pornita, sistemul afiseaza identificatorul procesului lansat in fundal si apoi
prompter-ul, utilizatorul putand introduce alte comenzi. Acestea pot fi executate in prim plan
(foreground) sau in fundal (background), daca se specifica acest lucru.
Distrugerea proceselor ce ruleaza in fundal se realizeaza cu ajutorul comenzii kill,
avand ca parametru identificatorul procesului vizat, comunicat de sistem la lansarea procesului in
fundal. (nu se poate realiza cu CTRL+C deoarece procesele in fundal nu interactioneaza cu
utilizatorul prin terminal).
Uzual, se executa in fundal procese care au o durata mare si care iau datele de intrare din fisiere
deja pregatite, punand rezultatele in alte fisiere, pe care utilizatorul le poate inspecta si folosi
ulterior. La terminarea executiei unui astfel de proces, interpretorul de comenzi afiseaza un mesaj
informativ, de genul 'procesul cu identificatorul ... s-a terminat'.

Gruparea comenzilor

● Pot fi introduse mai multe comenzi pe aceeasi linie, separate prin ';'. De ex.:
$ pwd ; ls –l
va afisa mai intai numele directorului curent ( pwd) si apoi ii va afisa continutul ( ls);
procesele se executa secvential.
● De asemenea, se pot grupa comenzi in forma:
cmd1 | cmd2 | ... |cmdn
unde comenzile cmd1 , cmd2 ,..., cmdn sunt executate in paralel, iesirea standard a
fiecarei comenzi (cu exceptia ultimei) fiind legata printr-o conducta cu intrarea standard a
comenzii urmatoare.
Ex.: vrem sa determinam cate fisiere contine directorul /bin. Pentru aceasta vom folosi
comenzile ls - listare director si wc - numara linii:
$ ls -l /bin | wc -l
● Gruparea comenzilor sub forma:
(lista comenzi)
determina executia acestora ca un proces separat.
Ex.:
$ pwd ; (cd ../test ; pwd) ; pwd
/users/u1/demo
/users/u1/test
/users/u1/demo
Efectul comenzii cd din lista de comenzi inchisa intre paranteze este anulat la intalnirea
parantezei inchise, deoarece cd a schimbat catalogul curent numai pentru subprocesul
lansat pentru executarea acelei liste de comenzi.
● Gruparea comenzilor sub forma :
{lista comenzi ; }
executa lista de comenzi in cadrul procesului curent (atentie la punct si virgula inainte de
acolada de inchidere).
Ex.:
$ pwd ; {cd ../test ; pwd ; } ; pwd
/users/u1/demo
/users/u1/test
/users/u1/test
Efectul comenzii cd se pastreaza si dupa terminarea listei de comenzi din acolade.

Fisiere standard. Redirectare

Dupa initializarea sesiunii de lucru, se deschid 3 fisiere standard (0, 1 si 2) pentru intrare, iesire si
afisarea erorilor. Ele sunt atribuite terminalului de la care se lucreaza (tastatura si ecranul). În
momentul lansării în execuție a programului asociat unei comenzi, acesta moștenește (ca proces
"fiu") fișierele deschise, deci și pe cele standard:

● Intrare standard (standard input, stdin) care reprezintă locul de unde se citesc datele de
intrare de către program (de obicei tastatura)
● Ieșire standard (standard output, stdout) care reprezintă fișierul în care se scriu datele de
ieșire(de obicei este consola curentă)
● Ieșire de eroare standard (standard error, stderr) care reprezintă fișierul în care se scriu
mesajele de eroare de către program (de obicei tot în consola curentă)
Un descriptor de fișier reprezintă un indice asociat unui fișier deschis de o aplicație. Cele 3 fișiere
speciale de mai sus au următorii descriptori:
● Stdin are descriptorul cu indexul 0

● Stdout are descriptorul cu indexul 1

● Stderr are descriptorul cu indexul 2


Restul fișierelor deschise de aplicații au un descriptor de fișier mai mare sau egal cu 3
Metode de redirectare
Sursă Destinație Exemplu de comandă
intrare fișier ./program <fisier_date_intrare
Ieșire fișier ./program >fisier_date_iesire
eroare Fișier ./program 2 >fisier_erori
eroare Ieșire(stdout) ./program 2 > &1
Eroare & ieșire fișier ./program 2 > fisier_iesire_si_erori 2 >&1
Deci, interpretorul de comenzi permite redirectarea fisierelor standard spre alte periferice:
• cu '<' se redirecteaza fisierul standard de intrare. Acest lucru inseamna ca programul
lansat in executie nu va lua datele de intrare de la tastatura, ci din fisierul indicat
dupa '<';
• cu '>' se redirecteaza fisierul standard de iesire. Informatia ce trebuie afisata pe
ecranul terminalului va fi scrisa in fisierul indicat dupa '>'.
• Cu ‘2>’ se redirecteaza erorile
Sintaxa &1 se folosește când se dorește redirectarea către ieșirea standard astfel încât
construcția 2>&1 redirectează ieșirea de eroare standard către ieșirea standard. Astfel, dacă
dorim redirectarea ieșirii de erori și a ieșirii standard către un fișier trebuie să redirectăm mai întâi
ieșirea de erori către stdout 2>&1 și apoi să redirectăm ieșirea standard într-un fișier
(fisier_iesire_si_erori)
De exemplu,
$ ls -l >fis
va crea fisierul fis, unde va depune informatiile din directorul curent.
Daca fisierul fis exista anterior si dorim sa se pastreze informatia din el se foloseste operatorul
'>>' in loc de '>' (operatia append).

Comenzi informative și pentru terminale


Comanda man
● functia: afiseaza capitole din manualul de utilizare
● sintaxa: man [optiuni] [(capitol)] (sectiune)
● explicatii: Permite afisarea manualului sistemului Unix/Linux in timpul sesiunii de lucru.
(capitol) este numarul capitolului in care se cauta (sectiune). Se foloseste cel mai des sub
forma man (comanda) pentru afisarea informatiilor despre comanda specificata.
Comanda cal
● functia: afiseaza calendarul
● sintaxa: cal [luna] an
● explicatii: Clar !

Comanda date
● functia: afiseaza data si ora
● sintaxa: date
Comanda finger
● functia: afiseaza numele utilizatorilor conectati la sistem
● sintaxa: finger [(nume)]
● explicatii: Daca se specifica numele unui utilizator, se dau informatii despre acesta
Comanda passwd
● functia: schimba parola
● sintaxa: passwd
Comanda tty
● functia: afiseaza numele terminalului
● sintaxa: tty

Comanda write
● functia: trimite imediat un mesaj la un alt utilizator
● sintaxa: write (utilizator)
● explicatii: Dupa scrierea comenzii se scrie mesajul, incheiat cu CTRL+D
Comanda last afișează ultimele conexiuni realizate la sistem

Optiunea –a a comenzii last plaseaza hostname-ul in ultima coloana


Optiunea –d a comenzii last translateaza IP-urile la hostname-uri

Comanda who afisează cine este logat la momentul de timp curent.


Comenzi pentru gestiunea directoarelor și fișierelor
Pentru descrierea comenzilor se vor folosi urmatoarele semne:
• [identificator] - camp optional;
• (identificator) - identificator de fisier sau director;
• identificator... - identificatorul se repeta de un numar nedefinit de ori.
Comanda pwd
• functia: tipareste numele (calea) directorului curent;
• sintaxa: pwd
• explicatii: comanda afiseaza calea completa, pornind din root, a directorului in care
lucreaza utilizatorul. Este folosita pentru a vedea unde este plasat directorul curent in
structura directoarelor sistemului.
Comanda cd
• functia: schimba directorul current;
• sintaxa: cd (director);
• explicatii: se abandoneaza directorul curent iar directorul specificat devine director
curent.
● cd .. -directorul parinte devine director curent;

● cd - -relocare in previous working directory.


Comanda ls
• functia: listeaza continutul unui director;
• sintaxa: ls [optiuni] (fisier)...
• explicatii: Se afiseaza la terminal continutul oricarui director din lista si pentru fisiere,
anumite informatii conform cu optiunile. Daca nu se precizeaza nici un fisier, atunci se
listeaza directorul curent.
Optiunile cele mai importante sunt:
● -d listeaza doar numele directoarelor;

● -i indica i-number-ul fiecarui fisier;

● -l listeaza mai multe informatii despre fisiere;

● -g se indica si identificat²orul grupului proprietar al fisierului;

● -r listare in ordine invers alfabetica;

● -s dimensiunea fisierelor se da in numar de blocuri;

● -t se sorteaza fisierele, inainte de afisare, dupa data ultimei modificari;

● -h va afiseaza pe linia de total (numarul total de blocuri) dimensiunea in varianta


human readable
Optiunea -l permite afisarea informatiilor complete despre fisiere, si anume:
● campul mod:

● d pentru fisier director;

● c pentru fisier special de tip caracter;

● b pentru fisier special de tip bloc;

● - pentru fisier ordinar;

● drepturile proprietarului u:read(r), write(w), execute(x);


● drepturile grupului g:r,w,x;

● drepturile celorlalti o:r,w,x;

● numarul de legaturi ale fisierului;

● numele proprietarului;

● numele grupului;

● dimensiunea fisierului (in bytes);

● data ultimei modificari;

● numele fisierului;

Exemplificare:
ls –a afiseaza si fisierele ascunse ex: .profile
ls – l afiseaza informatii suplimentare legate de fisiere
ls –al combina situatiile de mai sus
ls –alR afiseaza informatii suplimentare despre fisiere si inclusiv subdirectoare
ls –d afiseaza informatii despre director si nu despre continutul lui
ls –F afiseaza informatii in legatura cu tipul fisierului astfel:
● * fisier executabil

● @ legatura simbolica

● Nici un simbol fisier ascii


ls –R afiseaza recursiv informatii despre director si subdirectoarele acestuia
Verificați și funcționalitățile opțiunilor –r, -s și –t.
Comanda mkdir
● functia: creaza un director nou
● sintaxa: mkdir (director)
● explicatii: Creaza un nou director, cu numele specificat, pe care il leaga la directorul
curent. Sunt setate automat si drepturile de acces.
● Crearea unui arbore de directoare utilizand optiunile -vp

Comanda rmdir
● functia: sterge un director
● sintaxa: rmdir (director)
● explicatii: Directorul specificat este sters doar daca este gol de conținut; daca directorul
nu este vid, este necesara stergerea prealabila a fisierelor continute folosind comanda
rm.

Utilizarea comenzii rm pentru stergerea unui director cu continut

Comanda rm
● functia:sterge fisiere
● sintaxa:rm [optiuni] (fisier)...
● explicatii: Sterge fisierele indicate din directorul curent.
Principalele optiuni permise sunt:
1. -i -intreaba utilizatorul inainte de stergerea fiecarui fisier;
2. -r -cere confirmarea de stergere inainte de stergerea fiecarui
subdirector;
3. -f -sterge fisierul fara a analiza daca exista dreptul de scriere in
fisier;
Exemple:
rm -i * , sterge toate fisierele din directorul curent, cu confirmare
rm -r director, sterge tot subarborele ce are radacina in (director)

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