Linux

22
Ceva introducere… Linux in ultimii patru ani a avut o creştere spectaculoasa in lumea sistemelor de operare, devenind un sistem de operare care este folosit in lumea afacerilor, educaţiei si pentru uz personal. Linux este sistemul de operare ce aparţine familei tip-UNIX sitem de operare, care poate funcţiona la calculatoarele cu procesor Intel 80386 (si mai performante din aceasta clasa). Susţine o gama larga de pachete de programe : începând de la TeX pana la XWindows, compilatoare GNU C/C++, a protocolului TCP/IP. Aceasta realizare flexibila a sitemului de operare UNIX, care este Linux, este distribuita in baza licenţei GNU. (GNU este un proiect lansat in 1984 scopul caruia a fost crearea unui sistem de operare asemanator cu UNIX dar ce va fi un Sitem de operare liber difuzat, necomercial.) Linux poate transforma un calculator PC386/486 intr-o staţie de lucru ce are flexbilitatea sistemului UNIX. Este un sistem perfect pentru conectarea la Internet si a folosirii la maximum a serviciilor Internetului. Este un sistem perfect pentru instituţii bugetare si de invatamant ce au o finantare modesta, deoarece este distribuit gratis in baza licenţei GNU. Este un sistem perfect pentru folosirea personala la rezolvarea problemelor in programare, deoarece susţine o mulţime de limbaje de programare. Este Sistem Operaţional (SO), care a fost dezvoltat de un grup de intuziasti , ce au reuşit sa-l facă accesibil maselor si sa fie flexibil la solicitările utilizatorilor. Linux a fost creata de Linus Torvalds, cand studia la universitatea Helsinki, Filanda. Prima versiune Linux facuta de Linus, avea la baza systemul de operare Minix si a fost testata in 1991 la sfarsitul lunii august. Au urmat si alte versii, care lucrau imperfect. La 5 august 1991, Linus lanseaza versiunea Linux 0.02 si roaga sa fie ajutat de comunitatea programistilor din toata lumea pentru a fi dezvoltata in continuare. SO Linux ulterior, a fost dezvoltat de alti programisti-profesionalisti, pe cont propriu ; pana ce a

description

Curs Linux

Transcript of Linux

Linux in ultimii patru ani a avut o crestere spectaculoasa in lumea sistemelor de operare, devenind un sistem de operare care

Ceva introducere

Linux in ultimii patru ani a avut o cretere spectaculoasa in lumea sistemelor de operare, devenind un sistem de operare care este folosit in lumea afacerilor, educaiei si pentru uz personal.

Linux este sistemul de operare ce aparine familei tip-UNIX sitem de operare, care poate funciona la calculatoarele cu procesor Intel 80386 (si mai performante din aceasta clasa). Susine o gama larga de pachete de programe: ncepnd de la TeX pana la XWindows, compilatoare GNU C/C++, a protocolului TCP/IP. Aceasta realizare flexibila a sitemului de operare UNIX, care este Linux, este distribuita in baza licenei GNU. (GNU este un proiect lansat in 1984 scopul caruia a fost crearea unui sistem de operare asemanator cu UNIX dar ce va fi un Sitem de operare liber difuzat, necomercial.)

Linux poate transforma un calculator PC386/486 intr-o staie de lucru ce are flexbilitatea sistemului UNIX. Este un sistem perfect pentru conectarea la Internet si a folosirii la maximum a serviciilor Internetului. Este un sistem perfect pentru instituii bugetare si de invatamant ce au o finantare modesta, deoarece este distribuit gratis in baza licenei GNU. Este un sistem perfect pentru folosirea personala la rezolvarea problemelor in programare, deoarece susine o mulime de limbaje de programare. Este Sistem Operaional (SO), care a fost dezvoltat de un grup de intuziasti , ce au reuit sa-l fac accesibil maselor si sa fie flexibil la solicitrile utilizatorilor.

Linux a fost creata de Linus Torvalds, cand studia la universitatea Helsinki, Filanda. Prima versiune Linux facuta de Linus, avea la baza systemul de operare Minix si a fost testata in 1991 la sfarsitul lunii august. Au urmat si alte versii, care lucrau imperfect. La 5 august 1991, Linus lanseaza versiunea Linux 0.02 si roaga sa fie ajutat de comunitatea programistilor din toata lumea pentru a fi dezvoltata in continuare. SO Linux ulterior, a fost dezvoltat de alti programisti-profesionalisti, pe cont propriu; pana ce a devenit populara in asa masura ca marii producatori de soft sa ia Linux-ul in serios.

Astazi, de remarcat, Linux concureaza la egal cu asa sisteme comerciale cum sunt: MS Windows si o serie de Unix sisteme comerciale.

O caracteristica generala a SO Linux

Linux sustine o majoritate de calitati a UNIX-ului, plus si unele unicale care nu le putem intalni la alt SO. In continuare se va prezenta o caracteristica generala a nucleului Linux.

Linux este un sistem multi-utilizatori, ca alte sisteme UNIX. Aceasta presupune lucrul a mai multor utilizatori la o singura masina ce indeplineste cocncomitent mai multe programe.

Linux indeplineste condiiile standardului IEEE POSIX.1, System V BSD. Din acest motiv Linux are calitatile multor sisteme de tip UNIX.

Linux susine diferite sisteme de fiiere pentru pstrarea datelor. Unele din aceste sisteme de fiiere , cum este ext2fs, au fost create special pentru Linux. Este realizarea susinerii sistemei de fiiere a SO MS-DOS, ce permite adresarea directa la fiierele de pe discul dur (HDD) a SO MS-DOS. Alte sisteme de fiiere susinute de Linux: ISO 9660 CD-ROM pentru lucrul cu discurile CD ROM.

Linux conine setul complet de protocoale a TCP/IP pentru lucrul in reea. Sunt incluse driverele multor plachete de reea Ethernet, SLIP (Serial Line Internet Protocol, PLIP (Parallel Line Internet Protocol), PPP (Point-to-Point Protocol), NFS (Network File System), etc. Sunt incluse sistemele de servicii TCP/IP, cum sunt FTP, telnet, NNTP SMTP. Nucleul Linux este elaborat special reesind din specificaiile funcionarii a regimului protejat caracteristic procesoarelor Intel 80386 80486. Nucleul Linux susine ncrcarea in memorie numai a paginilor necesare, adic se ncarc in memoria operativa segmentele de memorie care se folosesc cu adevrat.

Sunt si mai multe caracteristici care fac ca nucleul Linux-ului sa fie in avantaj fata de alte SO.

Ce este Linux-ul ?

Este o versiune a Unix-ului scrisa de mii de oameni pentru procesor INTEL (P.C. obisnuit)

Ce este UNIX ?

Mediu interactiv care permite comunicarea directa cu calculatorul si primirea imediata a raspunsurilor si mesajelor. Mediu multiuser care imparte resursele calculatorului prin tehnica "time sharing". Mediu multitasking care permite executia mai multor programe in acelasi timp. Sistemul contine: un Kernel (nucleu) care coordoneaza functionarea interna a calculatorului (de ex. alocarea resurselor) si mai multe Shell-uri (la noi fiecare user are ca shell BASH) actioneaza ca o legatura intre utilizator si kernel prin interpretarea si executia comenzilor introduse interactiv.

Shema functionala SO Linux

Conectarea in sistem

Pentru a se conecta, un utilizator trebuie sa tasteze: numele utilizatorului (login: nume utilizator) si parola (password:parola)

Sistemul nu lucreaza cu nume ci el lucreaza doar cu numere ca de exemplu: cu numar de utilizator (UID), cu numar de grup de lucru (GID), cu director de intrare ($HOME). Deci sistemul stie doar ca ulilizatorul xxx are numarul 512 (UID) si in continuare va lucra numai cu numarul 512 pentru utilizatorul xxx.

Un utilizator conectat poate sa ceara numele sau de utilizator (prin comanda ), sa intre ca alt utilizator definit ( Exemplu: sunt pe userul dragos si vreau sa intru pe userul root, deci voi da comanda login root unde imi va cere parola ), sa-si schimbe parola (). Exemplu: vreau sa-mi schimb parola, deci voi da dupa care aceasta imi va cere vechia parola (pentru a fi sigur ca nu este un impostor) dupa care trebuie sa introduc noua parola de doua ori (pentru a fi sigur ca nu am gresit), sa ceara numele si numerele UID, GID ().

Organizarea logica a discului UNIX

In general se aseamana cu sistemul de operare DOS, exista fisiere care sunt unitate de memorare a informatiilor, director (catalog) care contine sau poate sa nu contina mai multe fisiere sau un singur fisier.

Linuxul are o structura bine precizata la inceput ea putanduse modifica pe parcurs.

Structura de directoare initiala arata cam asa:

DirectorGasim in el de obicei

/-directorul radacina in care sunt toate fisierele sistemului

/bin-fisiere executabile si utilitare des folosite

/dev-fisiere speciale asociate dispozitivelor periferice,cum ar fi consola, imprimanta, modemul,etc.

/home-radacina unui sub arbore format din directoareleutilizatorilor din sistem

/tmp-fisiere temporale folosite in anumite aplicatii

/mnt-directorul in care se pot monta unele "periferice"

"Drumul" de la radacina la un fisier se numeste cale de acces, aceasta poate fi de doua tipuri:

a) calea absoluta : de la radacina la fisier

Exemplu: /home/dragos/mail/mboxb) calea relativa : de la directorul curent la fisier

Exemplu: daca directorul curent este /home fisierul mbox se acceseaza

folosind calea dragos/mail/mboxIn linux exista directoare uzuale ca:

a) directorul radacina (/)b) directorul curent (.), acesta este returnat de comanda (), el se poate schimba cu comanda cd cale_director.

Exemplu: presupunem ca suntem in directorul /home/dragos si

vrem sa-l schimbam in directorul /home/dragos/mail aceasta se

face cu comanda cd mail (cale relativa) sau cu comanda

cd /home/dragos/mail (cale absoluta)

c) directorul HOME ($HOME) este radacina subarborelui atasat utilizatorului; un utilizator se poate intoarce in directorul HOME atasat lui folosind comanda fara nici un argument

Exemplu: echo $HOME va avea ca efect tiparirea prin comanda

echo a directorului casa (unde avem tot dreptul sa facem ce vrem).

incercati urmata de si obesrvam ca ne tipareste (comanda pwd) directorul in care suntem adica /usr/lib. Mai testati urmat de ce obtineti?

d) directorul superior (..)

Exemplu: dam cd /usr/lib/uucp, deci suntem in directorul /usr/lib/uucp dati , ce s-a intamplat? Am trecut in directorul superior /usr/lib, dati un exemplu ca sa va convingeti.

Sper sa va descurcati cu trecerea dintr-un director in altul, este aproape ca si in dos, dar in loc de \ (backslash) se pune / (slash). Cu astea clarificate sa trecem la fisiere.

Fisiere

Comanda de afisare a fisierelor este , sintaxa ei este:

ls [optiuni] directordaca lipseste "director" aceasta afiseaza fisierele din directorul curent. In loc de director se poate pune numele unui fisier.Optiuni pot fi:

-l (afiseaza caracteristicile fisierului in format lung)

-i (afiseaza numarul inodului)

-s (afiseaza dimensiunea in numar de blocuri)

-a (afiseaza si fisierele ascunse, fisierele ascunse sunt acelea care

incep cu '.' Exemplu: .Admin )

-C (afiseaza lista pe mai multe coloane, ordonare pe coloane)

-x (afiseaza lista pe mai multe coloane, ordonare pe linii)

-R (afiseaza descendent arborele de fisiere, recursiv)

-n (afiseaza numerele UID si GID in loc de nume)

-S (afiseaza dupa lungime in ordine descrescatoare)

Schimbati directorul in /usr/lib/uucp cd /usr/lib/uucp si dati acolo urmatoarele exemple:

[ls -l], [ls -al], [ls -si], [ls -lS] , iar daca fisierele defileaza prea repede pe ecran se poate da: [ls [optiuni] director | more]Observatie : In tot acest capitol in numele de fisier sau director se pot folosi semnele '*' si '?' cea ce inseamna inlocuirea unui grup de caractere respectiv a unei singur caracter.

Exemplu: Presupunem ca in directorul curent avem fisierele test,test1,teze,carte,mail,revista si in acel director dam:

ls te* - afisarea fisierelor test,test1,teze (toate care incep cu te)

ls te?? - afisarea fisierelor test,teze (toate care incep cu te si sunt din

4 litere).

ls *e - afisarea fisierelor teze, carte (toate care se termina cu e)

ls ?a* - afisarea fisierelor carte,mail (toate care pe pozitia a doua au

litera 'a')

Protectia fisierelor

Accesul la un fisier se face prin prisma drepturilor user-ului asupra acestuia. Proprietarul fixeaza drepturile de acces la fisierele sale.

Exemplu: din directorul /usr/lib/uucp dam se va obtine:

12345678

-r--r--r--1rootuucp7597May 913:08sluug

ZonaCe se gaseste in ea

1-drepturi de acces

2-numarul de legaturi spre acel fisier

3-proprietarul fisierului

4-grupul din care face parte

5-lungimea fisierului

6-data la care s-a modificat

7-anul sau ora la care s-a modificat

8-numele fisierului

In Zona 1 avem drepturi de acces asupra fisierelor si a directoarelor, astfel aceste drepturi se impart la randul lor in patru zone si anume:

1) Prima pozitie ne da tipul fisierului care poate fi:

d Director

- Fisier obisnuit

l Legatura simbolica

c Fisier special corespunzator unui echipament periferic orientat pe caractere (care transfera datele caracter cu caracter), de exemplu consola, modem, imprimanta etc.

b Fisier special corespunzator unui echipament periferic orientat pe blocuri (care transfera datele cate un bloc la o operatie, de exemplu disk magnetic.

Zona owner ne da drepturile proprietarului fisierului.

Zona group ne da drepturile grupului din care face parte proprietarul.

Zona others ne drepturile pe care le au altii asupra fisierului.

Drepturile unui fisier pot fi: r (read) de citire a fisierului, w (write) de scriere in fisier, x de executie. Dreprurile la nivel de directoare sunt: r autorizeaza citirea; w autorizeaza crearea sau distrugerea unui element al directorului; x autorizeaza intrarea in director.

Exemplu

1) : 15652 8 -rw-r-xr-- 1 root uucp 7597 May 9 1994 README

Din acesta afisare se trag concluzile:

README este fisier obisnuit

proprietarul (root) lui are drept de citire (r) si scriere (w) in el (rezulta din zona ii). grupul (uucp) din care face parte are drept de citire (r) si executie (x)

toti useri au dreptul sa citeasca fisierul Exemplu

2): 1651 2 drwxr-xr-- 2 uucp bin 1024 May 9 21:30 Mail/

Din acesta afisare se trag concluzile:

Mail este un director

Proprietarul (uucp) lui are drept de citire (r), scriere (w) in el si dreptul de a intra in acest director

Grupul (bin) din care face parte are drept de citire (r) si de intrare in director (x)

Toti useri au dreptul sa citeasca directorul, adica sa-l vada ca exista Comanda pentru schimbarea acestor drepturi este , cu urmatoarea sintaxa:

chmod [optiuni] nume_fisier

Optinuile au o sintaxa de de genul: clasa_operator_drept (Ex. g+rx) Unde:

clasa: poate fi {u,g,o,a}

operator: poate fi {+,-,=,}

drept: poate fi combinatii de r,w si x (r,w,x,rw,rx,wx etc)

Unde u,g,o inseamna schimabarea drepturilor proprietarului, grupului, pentru toti, iar a schimba aceleasi drepturi la u,g,o.

+ (plus) inseamna ca se pun drepturile

- (minus) i se ia drepturile si

= (egal) se distruge drepturile vechi si se pun cele noi

Exemplu: chmod u+rw test => i se da dreptul proprietarului de rw asupra fisierul cu numele test.

chmod a-r test => li se ia dreptul de citire proprietarului, grupului si altora

chmod o-wrx test => li se ia dreptul de wrx altor useri asupra fisierului test.

chmod g=w test => grupul va avea numai dreptul de scriere asupra fisierului test.

Observatie : Drepturile de acces pot fi setate si prin folosirea unei notatii octale.

proprietar grup altii

Notatia simbolica : r w x r w x r w x

Notatia octala: 4 2 1 4 2 1 4 2 1

pentru fiecare clasa de utilizatori , notatia octala se obtine prin insumarea drepturilor acordate.Observatie : Mai exista in plus fata de drepturile (rwx) si drepturile s sau t, daca intalniti la listarea in format lung (ls -l) ceva de genul:

1) -rwsr--r-- 1 root bin 320 Jan 4 20:56 fisier* inseamna ca oricine executa acest fisier are pe perioada executiei dreptul proprietarului fisierului (in exemplul nostru are drept de root).

2) -rwxrwsr-- 1 root bin 320 Jan 4 20:56 fisier* inseamna ca oricine executa acest fisier devine pe perioada executiei membru la grupul din care face parte fisierul (in cazul nostru devine membru al grupului bin).

3) -rwxrwsr-t 1 root bin 320 Jan 4 20:56 fisier* inseamna ca fisierul executabil ramane rezident.Aceste drepturi se pot schimba numai de catre root astfel:

in primul caz cu chmod u+s fisier

in al doilea chmod g+s fisier

iar in al treilea cu chmod +t fisier

Comanda de schimbare a proprietarului unui fisier este:

chown [optiune] nume_proprietar_nou fiser

unde ca optiune poate sa apara -R (recursiv) ceea ce inseamna ca daca se schimba proprietarul la un director se va schimba la toate fisierele pe care acesta le contine.

- nume_proprietar_nou este numele noului propritar al fisierului "fisier"

Exemplu 1) : chown -R root mail/ ceea ce inseamna ca schimba atat proprietaru directorului mail cat si proprietarul tuturor fisierelor din director.

Exemplu 2) : chown root mail/ schimba proprietarul doar pe directorul mail/ si nu schimba in interiorul directorului.

Comanda de schimbare a grupului unui fisier este:

chgrp [optiune] nume_grup fisier

optiune poate fi -R ceea ce insemna schimbarea grupului atat pentru director cat si pentru tot ce contine acesta.

nume_grup este numele noului grup.

fisier este numele fisierului (directorului) ale carui grup se schimba.

Exemplu: Aceleasi ca si la comanda chown.

Comanda de vizualizare a unui fisier este:

less nume_fisier

Comanda permite vizualizarea continutului unui fisier sau a unui grup de fisiere. Iesirea din vizualizare se face prin apasarea tastei 'q' si nu 'Q'. In general se afiseaza continutul unui singur fisier.

Exemplu 1) : less mbox are ca efect vizualizarea fisierului mbox (daca acesta exista).

Exemplu 2): Presupunem ca in directorul curent avem fisierele

test,test1,teze,carte,mail,revista si in acel director dam:

less *e => se afiseaza continutul fisierelor teze si carte. In cazul afisari mai multor fisiere trecerea de primul la al doilea si asa mai departre se face apasand ':' urmate de 'n'.

Un fisier se mai poate vizualiza si cu comanda more.

Sintaxa ei este: more [optiuni] nume_fisierUnde:

Optiuni pot fi:

-nr_linii = afiseaza pe ecran atatea linii cate specifica nr_linii.c = sterge ecranul dupa care afiseaza.

Nume_fisier poate fi atat numele unui fisier cat si a unui grup de fisiere.

Editor de fisiere

Linuxul pune la dispozitie si un editor de fisiere asemanator cu WS din Dos. Acesta poarta numele de joe si se lanseaza prin:

joe nume_fisier

ceea ce are ca efect crearea unui fisier cu numele nume_fisier daca acesta nu exista si editarea lui daca acesta exista. In acest editor sunt valabile sagetile de pozitionare, Del, Backspace, PgUp, PgDn, Home, End. Avem si combinati de taste printre care:

pentru inserarea unui bloc: Ne pozitionam pe inceputul acestuia si tastam ^KB (Ctrl+k apoi b) dupa care mergem la sfarfitul blocului si tastam ^KK (Ctrl+k apoi k) si in cele din urma trebuie sa ne apara blocul inserat (adica scris alb pe negru).

pentru stergerea unui bloc (^KY): Ctrl+k apoi y dupa ce blocul a fost marcat.

pentru mutarea unui bloc (^KM): Dupa ce blocul a fost marcat ne pozitionam cu cursorul in pozitia in care vrem sa-l mutam si apasam Ctrl+k apoi pe m.

pentru copierea unui bloc (^KC): asemanator cu mutarea dar textul ramane si unde a fost marcat.

pentru salvarea fisierului se da combinatia ^KD, iar pentru salvare si iesire din editor se da ^KX.

pentru stergerea unei lini se da ^KY.

pentru inserarea unui alt fisier ^KR dupa care se introduce calea si fisierul dorit.

pentru scrierea in fisier a rezultatului unei comenzi se foloseste ^K/ (Ctrl+K apoi /). Exemplu ^K/ dupa care scriem ls -al rezultatul va fi scrierea in fisier a tuturor fisierelor din directorul curent in format lung.

pentru a abandona editarea fara modificari se tasteaza ^C (Ctrl+c)

Comanda pentru afsiarea numarului de linii, cuvinte si caractere dintr-un fisier este:

wc [optiuni] fisiereUnde optiuni pot fi:

-l afiseaza doar numarul de linii-w afiseaza doar numarul de cuvinte-c afiseaza doar numarul de caractere

In cazul in care lipsesc optiunile rezultatul este de forma:

nr.liniinr.cuvintenr.caracterenume_fisier

Exemplu: wc test rezultatul este '24 50 125 test' ceea ce inseamna ca

fisierul test contine 24 de linii, 50 cuvinte si 125 de caractere.

wc -l test rezultatul este '24 test' ceea ce inseamna ca fisierul test contine 24 de linii.

Urmatoarele comenzi se refera la lucrul cu fisiere (creeare, mutare, copiere, stergere, cautare):

Comanda mkdir creeaza unul sau mai multe directoare sau subdirectoare in interiorul directorului curent. Sintaxa comenzii este: mkdir lista_directoare

Exemplu: mkdir dragos => creeaza directorul dragos in directorul curent

mkdir dragos ciprian => creeaza directoarele dragos si ciprian in directorul curent .

mkdir /home/dragos/mail/test => creeaza directorul test in directorul /home/dragos/mail .

Comanda cp realizeaza o copie a unui fisier in altul; poate copia unul sau mai multe fisiere dintr-un director in altul, fisierele initiale pastrandu-si locul. Sintaxa comenzi este:

cp [optiune] fis_sursa fis_destinatie cp [optiune] lista_fis_sursa director_destinatie

Optiune poate fi -r sau -R ceea ce inseamna ca copierea se face recursiv.

Exemplu: Presupunem ca avem fisierele test,test1,teza si directoarele mail/, revista/.

cp test test1 revista/ copiaza fisierele test si test1 in directorul revista/.

cp test ttt copiaza fisierul test in ttt (daca nu exista il creeaza, iar daca exista scrie peste cel vechi).

cp * mail/ copiaza toate fisierele in directorul mail/.

cp -r * /tmp copiaza toate fisierele si directoarele in directorul /tmp (din radacina). Atentie daca directorul in care vreti sa copiati se afla tot in directorul curent se poate creea o bucla, deoarece se copiaza si directorul in care vreti sa scrieti in el insusi.

Un exemplu in acest sens este:

cp -r * mail/ ceea ce insamna ca se copiaza tot ce este in directorul curent in directorul mail/, dar intre timp pe cand trebuie sa copieze si directorul mail/ in el insusi acesta este deja plin.

Comanda mv muta si redenumeste un fisier: redenumeste fisierul in acelasi director sau muta si redenumeste fisierul in alt director; permite si modificarea numelui unui director cu conditia de a ramane in subarborele HOME atasat utilizatorului

mv [optiune] fis_sursa fis_destinatiemv [optiune] lista_fis_sursa director_destinatie

Optiune poate fi -r sau -R cea ce inseamna ca mutarea se face recursiv. Comanda este asemanatoare cu diferenta ca aceasta muta fisierele (le sterge) din sursa in destinatie (le pune)

Exemplu : mv mail/ /tmp/mail muta directorul mail/ (din directorul curent) in diectorul /tmp/mail/.

mv test testnou muta (redenumeste) fisierul test in fisierul testnou.

Comenzile rmdir si rm

rmdir sterge un director daca acesta nu contine nici un fisier Sintaxa: rmdir nume_director

rm cu opriunea -r permite stergerea recursiva a tuturor fisierelor dintr-un director si a directorului insusi.Sintaxa rm [optiune] director sau rm nume_fisier

Optiuni :

-i (interactiv, pune intrebare la stergere fiecarui fisier)-r (parcurgere recursiva)

Exemplu: rm -r * sterge absolut tot fara ca macar sa intrebe ceva, deci

ATENTIE!!! la aceasta comanda (nu mai exista sansa recuperari fisierelor sterse).

rm test sterge fisierul test.

rm -ir * sterge abosolut tot dar intreaba la fiecare fisier sau director.

Comanda find cauta in directoare si in subdirectoare fisierele specificate care indeplinesc anumite conditii descrise in linia ei de comanda.

find cale lista_expresii

Unde:

cale -reprezinta directorul de unde incepe cautarea; cautarea se face recursiv in toate directorele in care utilizatorul are dreptul de r si x.

lista_expresii -reprezinta expresii logice ce sunt evaluate pentru fiecare fisier din directoarele parcurse.Expresiile logice pot fi expresii logice primare sau compuse folosind atat operatorii logici NEGATIE (prin semnul !), respectiv SAU (prin semnul -o), cat si parantezele \( si \).

Cele mai des folosite expresii logice primare sunt urmatoarele:

name nume_fisier : cauta fisierul cu numele nume_fisier. Se pot folosi caracterele * sau ?.

Exemplu : find /usr -name "ma*" = cauta toate fisierele care incep cu numele ma din directorul /usr.

type tip : unde tip poate fi {b,c,p,f} cauta fisierele orientate pe blocuri (b), fisiere orientate pe caractere (c), fisiere de tip pipe (p) sau fisiere obisnuite (f).

Exemplu : find /dev -type c = cauta toate fisierele orientate pe caractere

din directorul /dev.

links n : cauta toate fisierele care are un numar egal cu n de legaturi spre el.

Exemplu : find / -links 14 > cauta toate fisierele spre care sunt 14 legaturi din directorul radacina /.

user nume_utilizator : cauta fisierele care apartin userului cu numele nume_utilizator.

Exemplu : find /home -user dragos = cauta toate fisierele care apartin userului dragos din directorul /home.

group nume_grup : cauta fisierele care apartin grupului cu numele nume_grup.

Exemplu : find /home -user users = cauta toate fisierele care apartin grupului users din directorul /home.

size n : cauta fisierele care au n blocuri lungime; (pentru a specifica mai mare se foloseste semnul '+', iar pentru mai mic semnul '-' ).

Exemplu : find /usr -size 20 = cauta toate fisierele care au grupului users din directorul /home.

atime n : cauta fisierele care au fost accesate ultima oara acum n zile.

Exemplu : find /dev -atime 3 = cauta toate fisierele care s-au modificat acum 3 zile din directorul /dev.

mtime n : cauta fisierele care au fost modificate cel tarziu acum n zile.

Exemplu : find /dev -mtime 4 = cauta toate fisierele care s-au modificat cel putin acum 4 zile din directorul /dev.

exec cmd : executa comanda cmd specificata avand ca argument fisierul curent.

ok cmd : face acelasi lucru ca si comanda -exec dar cere consimtamantul utilizatorului.

Exemplu : find / -exec ls -l {} \; = cauta toate fisierele incepand din radacina / si pentru fiecare ({}) executa ls -l (afisare in format lung).

find / -exec ls -l \; = pentru toate fisierele executa ls -l, ceea ce

inseamna ca daca am avea 30 fisiere pentru fiecare ar afisa tot ce este in

directorul curent (ls -l) si nu ar afisa cele 30 fisiere in format lung.

find / -atime 7 -exec ls -ld {} \; = cauta incepand cu radacina toate fisierele care au fost modificate acum 7 zile si le afiseaza in format lung.

Incerca-ti aceleasi exemple dar in loc de -exec pune-ti -ok.

Comanda de afisare a inceputului sau sfarsitului unui fisier este head respectiv tail, sintaxa lor este:

head [optiune] nume_fisier tail [optiune] nume_fisier

Unde optiune poate fi :

-c m : pentru afisarea a m caractere din fisier -n m : pentru afisarea a m lini din fisier

Comanda de cautare a unui sir intr-un fisier este sintaxa este:

grep [optiuni] sir nume_fisier

Unde optiuni pot fi

-c = se afiseaza numarul de linii ce contin sirul dat prin sir.

-l = in loc sa se afiseze linile in care apare sirul se afiseaza numele fisierului ce contine sirul dat.

-n = se afiseaza si numarul liniei in care apare sirul.

-v = se afiseaza linile care nu contin sirul dat.

-y = nu se face deosebire de litera mare si mica.

sir este un sir de caractere scrise intre "".

nume_fisier poate fi numele unui singur fisier sau a unui grup de fisiere.

Exemple :

grep "care" mail = cauta cuvantul care in fisierul mail si afiseaza toate liniile care il contin.

grep -c "mai" test = afiseaza numarul de linii care contin cuvantul mai din fisierul test.

grep -l "si" * = cauta cuvantul si in toate fisierele din directorul curent si afiseaza numele lor.

grep -v "mai" test = afiseaza toate liniile din fisierul test care nu contin cuvantul mai.

grep -n "ce" te* = afiseaza numele fisierului nr. liniei si linia care contine cuvantul ce din fisierele care incep cu te aflate in directorul curent.

grep -y "a" test = afiseaza toate liniile care contin literea a si A

Comanda de ordonare a unui fiser este sort sintaxa ei este:

sort [optiuni] nume_fisier

Unde optiunile sunt:

-o fis_nou = sorteaza fisierul dat in fisierul care are numele fis_nou.-d = sorteaza fisierul in ordine alfabetica (sunt semnificative doar caracterele, cifrele si spatiile libere).-n = sorteaza liniile unui fiser functie de valoarea numerica inscrisa la inceputul liniei (un sir care incepe cu un numar va fi sortat dupa valoarea aritmetica).-r = inverseaza ordinea de sortare.-f = ia in consideratie literele mici si mari la sortare.-c = verifica daca fisierul sortat este deja in secventa dorita.-u = elimina dublurile liinilor.

Exemple :

sort -o rez mail = sorteaza fiserul mail si rezultatul il depune in fiserul rez.

sort -r mail = sorteaza fisierul mail in ordine inversa iar rezultatul il afiseaza pe monitor.

Comenzi orientate pe comunicare intre utilizatori

Comanda talk:

talk nume_user [terminal]

Are ca efect vorbirea (scriere) in tip real intre doi useri conectati la sistem.

Celui ce este chemat sa scrie ii va aprea pe ecran ceva de genul:

Message from Talk_Daemon@lbzbph at 10:39 ...

talk: connection requested by [email protected].

talk: respond with: talk [email protected] acest trebuie sa scrie talk user , dupa care ecranul se va imparti in doua zone si anume zona de sus in care scrie si zona de jos in care primeste raspuns.

Terminal inseamna terminalul la care sa incerce vorbirea (vezi mai jos comanda who ).

Comanda write:

write nume_user [terminal]

Transmite un mesaj la userul cu numele specificat in nume_user.

Comanda mesg:

mesg [optiuni]

Unde optiunile pot fi {no,yes}. Aceasta comnda inhiba (scoate) sau activeaza receptia de mesaje.

Exemplu :

mesg no = dezactveaza primirea de mesaje.

mesg yes = activeaza primirea de mesaje.

mesg = afiseaza daca este sau nu activata primirea demesaje.

Comenzi pentru afisarea unor informatii

Comanda who:

who [optiuni]

Ne da informatii despre useri legati in sistem.Optiuni:

-H = afiseaza antetul.-T = afiseaza toti useri cu starea mesajelor {+,-,?} (daca poate sau nu primi mesaje)-i = afiseaza cat timp nu au stat de pomana useri legati in sistem.-q = afiseaza toti useri si numarul lor.

Mai exista comanda care ne da numele masini si userului curent (cel care lanseaza comanda) si care ne da numele userului curent.

Comanda finger:

finger [nume_user]

Ne da informatii despre userul specificat prin nume_user. Iar daca nume lipseste ne da informati despre toti useri conectati in sistem.