Sunteți pe pagina 1din 9

Laborator 2 ///////////////////////////////// Sistemul de operare DOS.

Comenzi ///////////////////////////////// ___ Cuvinte cheie ___ fisier, director, director radacina, director curent, director parinte, interpretor de comenzi, comenzi interne, comenzi externe, indirectarea intrarii/iesirii standard filtre DOS ___ Introducere ___ Sistemul de operare DOS este destinat gestionarii resurselor hardware si software ale microcalculatoarelor cu arhitectura compatibila IBM PC, bazate pe microprocesoarele din familia 8086. Este un sistem de operare monoutilizator (un singur utilizator il poate folosi la un moment dat) si monotasking (la un anumit moment, poate rula un singur proces si el utilizeaza toate resursele masinii) si asigura o interfata relativ simpla om - sistem de calcul. Versiunea pe care dv. o veti utiliza este MS-DOS V3.30. Dupa ce sistemul de operare a fost incarcat, se incarca si se preda controlul fisierului executabil COMMAND.COM. Acest program este numit interpretor de comenzi si este destinat prelucrarii comenzilor DOS, actionind ca o interfata intre utilizator si sistemul de operare. In cele ce urmeaza vor fi descrise pe scurt comenzile sistemului de operare MS-DOS cel mai des utilizate. ___ Fisiere si directoare DOS ___ Un fisier este un mod de inmagazinare si organizare a datelor pe un dispozitiv de stocare extern (de exemplu disc dur, disc flexibil, banda magnetica, etc.). Orice fisier este identificat printr-o specificare de fisier. In DOS, aceasta specificare contine si secventa "nume[.extensie]" (ceea ce apare scris intre paranteze drepte are semnificatia de "optional", deci prezenta extensiei nu este obligatorie), unde: - nume este numele fisierului, compus din 1-8 caractere; Aceste caractere pot fi oricare dintre caracterele ASCII, mai putin . " / \ [ ] : < > + = ; , si cele cu codul mai mic decit 21h. - extensie este numele extensiei fisierului, compus din 1-3 caractere, precedate de un punct. Caracterele nepermise in numele unei extensii sunt aceleasi ca in numele unui fisier

De notat ca diferenta intre literele mari si cele mici este irelevanta, atita timp cit literele mici din numele unui fisier sunt convertite la litere mari. De asemenea, numele unui fisier trebuie sa fie suficient de sugestiv asupra continutului sau (mai ales pentru cel care il foloseste). De exemplu, fisierul pe care il cititi acum are numele "lab2.txt", relevant asupra faptului ca el contine caractere ASCII (este fisier text - txt) si ca se refera la al doilea laborator ASO. Presupunind ca la un moment dat ajungeti sa manevrati un numar foarte mare de fisiere, este foarte posibil sa aveti nevoie sa le grupati, functie de anumite criterii. Sistemul de operare DOS va pune la dispozitie posibilitatea de a grupa fisierele, organizindu-le in directoare. Practic, un director este tot un fisier, dar informatia sa se refera la numele fisierelor pe care le contine. Orice disc formatat contine macar un fisier director, numit director radacina si notat cu "\". Directorul radacina poate sa contina numele altor directoare (pe linga nume de fisiere, eventual), iar acestea pot contine la rindul lor subdirectoare, s.a.m.d., numarul fiind limitat doar de spatiul pe disc. Este evident ca structura directoarelor pe disc este o structura de arbore. Numele directoarelor respecta aceleasi reguli ca numele de fisiere. Fiecare dintre dv. lucreaza intr-un anumit director, complet specificat la prompterul sistem. Acesta poarta numele de director curent. Este acum momentul sa introducem ce inseamna o specificare completa de fisier : [d:] [cale] nume[.ext] unde nume si ext au fost detaliate mai sus, iar - d: - este unitatea de disc pe care se afla fisierul, specificata printr-o litera. De exemplu, unitatea de disc flexibil de 3 inch pe statiile pe care lucrati are atribuita litera "a". Daca unitatea de disc nu este specificata, atunci se considera implicit a fi cea afisata in prompterul sistem. - cale - este calea (pe structura arborescenta) catre directorul in care se afla fisierul specificat. Aceasta cale este formata dintr-un sir de nume de directoare, separate prin caracterul "\" (backslash). In cazul in care cautarea se face incepind cu directorul radacina, primul caracter tiparit este "\". Daca acesta lipseste, cautarea se face incepind cu directorul curent. Exista o restrictie la numele unei cai: ea nu trebuie sa depaseasca 63 de caractere. Observatie: pot exista doua fisiere sau doua directoare cu acelasi nume daca ele au cai de specificare diferite. Exista mai multe nume rezervate pentru echipamente standard. Amintim doar CON, nume atribuit tastaturii (ca intrare) sau monitorului, ca iesire. Aceste nume rezervate pot fi folosite in locul numelor de fisiere, in orice comanda DOS. In cele ce urmeaza, vom vorbi despre caracterele speciale (asa numitele wildcard-uri, inlocuitori a orice) care pot apare in numele unui fisier, in anumite contexte. De exemplu, dati comanda DIR. Rezultatul va fi afisarea unei liste a fisierelor si directoarelor continute in directorul curent. Dar poate ca pe dv. nu va intereseaza intreaga lista ci doar citeva fisiere care au caracteristici comune (in numele lor). De pilda, v-ar putea interesa doar lista fisierelor executabile (cu extensia ".exe") ori fisierele al caror nume incepe cu secventa "ab", s.a.m.d. Exista doua caractere speciale destinate acestui scop: "*" si "?". Pentru a explica semnificatia lor

ne vom folosi tot de comanda DIR. De exemplu: dir ab?de.exe va lista toate intrarile din directorul curent care au numele de fisier compus din 5 caractere, incepind cu AB, urmatorul caracter putind fi oricare, urmat de DE si avind extensia EXE. Prezenta caracterului * intr-un nume de fisier sau extensie de fisier indica fapul ca, incepind cu pozitia marcata de *, orice sir de caracter poate apare. De exemplu: dir ab*.* va lista toate intrarile din directorul curent care incep cu AB si au orice extensie. ___ Comenzi DOS ___ Sistemul de operare DOS actioneaza ca o interfata utilizator - resurse sistem, comunicarea realizindu-se prin intermediul tastaturii. Comenzile introduse prin tastatura pot fi editae, inainte de a fi transmise interpretorulu de comenzi COMMAND.COM . Practic, la introducerea unei linii comanda are loc urmatoarea succesiune de evenimente: textul introdus prin claviatura este pastrat intr-o zona tampon, pina la apasarea tastei ENTER; dupa apasarea tastei ENTER, continutul zonei tampon este transmis interpretorului de comenzi pentru prelucrare si, in acelasi timp, acest continut este copiat intr-o alta zona tampon, numita sablon. Deci sablonul contine intotdeauna ultima linie de comanda introdusa. De mentionat ca exista mai multe facilitati de editare a liniei de comanda, astfel incit introducerea comenzilor sa se faca cit mai usor. Citeva din aceste functii sunt specificate in ce urmeaza: F1 - copie un caracter din sablon si il afiseaza F2 - urmat imediat de un caracter, copie toate caracterele din sablon pina la cel specificat F3 - copie si afiseaza toate caracterele care au mai ramas in zona tampon F4 - urmat de un caracter, face salt peste toate caracterele din sablon pina la cel specificat DEL - salt peste un caracter din sablon, fara a muta cursorul. etc. Comenzile DOS sunt de doua tipuri: comenzi interne si comenzi externe. Comenzile interne se executa imediat, deoarece fac parte din sistemul de operare si sint incarcate odata cu acesta. Comenzile externe se afla pe disc, sub forma de fisiere executabile. Deci executia lor este precedata de incarcarea lor in memorie. Orice fisier cu extensia ".exe", ".com" ".bat" este, tipic, fisier executabil, deci comanda externa. Atita timp cit comenzile externe se afla pe disc sub forma de fisiere, ele pot fi apelate printr-o specificare de fisier (observatie: in cazul acesta particular extensia nu este necesar a fi specificata). Daca fisierul executabil este gasit, comanda este executata; altfel veti primi mesajul "Bad command or file name". In cele ce urmeaza, aveti descrise citeva dintre comenzile sistemului de operare DOS cel mai des utilizate. ___ Comenzi de lucru cu fisiere ___

COPY - comanda interna Descriere: permite copierea unuia sau mai multor fisiere; optional, numele fisierelor pot fi schimbate ori se poate realiza concatenarea unor fisiere. De asemenea, comanda COPY poate fi folosita pentru transferul datelor intre oricare dintre echipamentele periferice. Forma generala: copy [d:][cale]nume_fisier_sursa[.ext] [d:][cale][nume_fis_destinatie[.ext]] copy [d:][cale]nume_fisier_sursa[.ext] [+[d:][cale][nume_fis_destinatie[.ext]]...] [d:][cale][nume_fis_destinatie[.ext]] Exemple: copy a:test.txt copie fisierul test.txt de pe unitatea "a" in directorul curent, cu acelasi nume, test.txt copy a:\subdir\test1.txt c:\subdir1 copie fisierul test1.txt de pe unitatea "a", din directorul "subdir" directorul "subdir1" aflat pe unitatea "c" copy program.bak program.pas copie fisierul din directorul curent numit "program.bak" in acelasi director, dar cu numele program.pas. copy *.pas a:\programe copie toate fisierele cu extensia ".pas" din directorul curent pe unitatea "a", in directorul "programe" copy prog1.pas+prog2.pas+prog3.pas final.pas creeaza un fisier nou, numit "final.pas" al carui continut va fi concatenarea fisierelor prog1.pas, prog2.pas si prog3.pas copy prog1.asm+prog2.asm adauga continutul fisierului "prog2.asm" la sfirsitul lui "prog1.asm"; deci rezultatul este in "prog1.asm". DEL - comanda interna Descriere: sterge unul sau mai multe fisiere Forma generala: DEL [d:][cale][nume_fisier[.ext]] Exemple: del prog.exe sterge fisierul "prog.exe" din directorul curent del a:\surse\*.pas sterge toate fisierele cu extensia ".pas" aflate pe unitatea "a", in directorul "surse" del \test sterge toate fisierele ca intrari ale subdirectorului "test" al directorului radacina. del *.* sterge toate fisierele din directorul curent. Sistemul de operare emite un mesaj "Are you sure(Y/N)?" pentru a verifica daca intr-adevar utilizatorul doreste stergerea fisierelor. Daca da, se apasa Y (yes); altfel N (no).

DIR - comanda interna Descriere: afiseaza toate intrarile, sau numai cele specificate, intr-un fisier director. Informatia afisata include numele unitatii de disc, informatii legate de dimensiunea fisierelor (in octeti), data si ora la care au fost create ori modificate ultima oara, precum si dimensiunea spatiului liber pe disc. Forma generala: DIR [d:][cale][nume_fisier][.ext][/P][/W] Parametrul /P determina executia unei pauze atunci cind ecranul este plin; continuarea se face prin apasarea oricarei taste. Parametrul /W produce o afisare condensata a listei intrarilor din director, continind doar numele fisierelor si subdirectoarelor. MORE - comanda externa Descriere: este un filtru care citeste date de la echipamentul standard de intrare si le trimite la echipamentul standard de iesire. Cind ecranul este plin, se executa o pauza semnalata de mesajul --More--; apasarea oricarei taste are ca efect reluarea afisarii. Forma generala: [d:][cale]MORE Exemple: more <test.asm afiseaza continutul fisierului "test.asm" ecran cu ecran. REN - comanda interna Descriere: schimba numele unui fisier; dupa redenumire, fisierul va ramine in acelasi director. Forma generala: REN [d:][cale]nume_fisier[.ext] nume_fisier[.ext] Exemple: ren a:prog.pas aplic.pas redenumeste fisierul "prog.pas" de pe unitatea "a", in "aplic.pas" TYPE - comanda interna Descriere: afiseaza continutul unui fisier la dispozitivul standard de iesire. Observatie: comanda se aplica unui singur fisier, deci folosirea caracterelor * si ? nu este permisa. De obicei aceasta comanda se foloseste pentru afisarea unor fisiere ASCII de dimensiune mica. Forma generala: TYPE [d:][cale]nume_fisier[.ext]

___ Comenzi de lucru cu directoare ____

CD (Change Directory) - comanda interna Descriere: permite schimbarea directorului curent Forma generala: CD [d:][cale] Exemple: cd \ schimba directorul curent in directorul radacina cd .. schimba directorul curent in directorul parinte al actualului director curent cd a:\subdir1\subdir2 schimba directorul curent pe unitatea "a", pe cale director_radacina->subdir1->subdir2. MD (Make Directory) - comanda interna Descriere: permite crearea unui director nou. Forma generala: MD [d:][cale] Exemple: md \subdir creeaza o intrare noua in directorul radacina de pe unitatea curenta pentru subdirectorul "subdir" md subdir creeaza o intrare noua in directorul curent pentru subdirectorul "subdir" PATH - comanda interna Descriere: permite specificarea unei liste de cai pe care pot fi cautate fisiere. Motivatia este imediata: de obicei, fisierele executabile - comenzi externe ale sistemului de operare DOS se afla intr-un director numit "DOS". Apelul unei comenzi ar trebui facut prin specificarea completa a numelui fisierului, adica incluzind unitatea de disc si calea. Daca fisierele de comenzi nu sunt precedate de un nume de cale, cautarea lor este facuta doar in directorul curent. Prin comanda PATH se inlesneste cautarea unui fisier si in alte cai, astfel incit sa nu mai fie necesara specificarea completa a caii. Forma generala: PATH [d:][cale][;[d:][cale]...] Observatie: elementele listei de directoare sunt separate prin ";". Cautarea in directoare se face in ordinea in care au fost specificate in lista. Directorul curent nu este modificat. Exemple: path afiseaza lista directoarelor in care se face cautarea, lista anterior setata printr-o comanda PATH. path c:;a:\subdir determina cautarea in directorul curent al unitatii "c:", apoi

in subdirectorul "subdir" al directorului radacina, de pe unitatea "a:" RD (Remove Directory) - comanda interna Descriere: sterge un director Forma generala: RD [d:]cale Observatie: directorul care va fi sters trebuie sa fie vid contina nici un fisier; practic, acest lucru poate fi usor cu un DIR pe calea spre directorul in cauza, care va afisa intrari: "." si ".."). Ultimul director specificat in cale sters. (sa nu vazut doar doua va fi

Exemple: rd \subdir1\subdir2 va sterge subdirectorul "subdir2" al subdirectorului "subdir1" al directorului radacina de pe unitatea de disc curenta. TREE - comanda externa Descriere: listeaza toate caile de pe discul specificat, optional si numele fisierelor din fiecare subdirector. Forma generala: [d:][cale]TREE[d:][/F] Numele de unitate si calea introduse inaintea numelui comenzii reprezinta locul unde se afla fisierul "tree.com" (de mentionat ca aceasta cale nu mai trebuie specificata daca ea a fost anterior prinsa intr-o comanda PATH). Parametrul [d:] de dupa comanda TREE specifica unitatea de disc a carei structura de directoare se doreste a fi vizualizata. Daca se utilizeaza optiunea /F, vor fi listate si numele fisierelor - intrare in fiecare subdirector. ___ Indirectarea intrarii/iesirii standard ___ Implicit, echipamentul de intrare standard pe care il folositi este tastatura, iar cel de iesire este monitorul. Comanda DIR, de exemplu, afiseaza la iesirea standard lista fisierelor si directoarelor dintr-o cale specificata. Sistemul de operare DOS va pune la dispozitie posibilitatea de a indirecta intrarea sau iesirea standard. De exemplu, puteti trimite iesirea comenzii DIR intr-un fisier cu numele "fisier.txt" astfel: dir >fisier.txt Fisierul in cauza va contine ceea ce in mod normal ar fi afisat pe monitor, deci iesirea standard a fost indirectata. De asemenea, mai multe programe pot fi inlantuite, iesirea unuia fiind intrare pentru urmatorul. Inlantuirea este notata prin caracterul "|". De exemplu, comanda dir|sort determina ca iesirea generata de comanda DIR sa fie tratata drept intrare pentru comanda SORT (descrisa mai jos). De fapt, aceasta comanda va genera lista intrarilor sortate (!) ale directorului curent. Un alt exemplu: dir|sort > fis.txt

va trimite lista fisierelor sortata in fisierul "fis.txt". In cazul comenzilor care asteapta introducerea unor date de la tastatura, intrarea standard poate fi indirectata. De exemplu, sort <fis1.txt citeste datele din "fis1.txt", le sorteaza, apoi le trimite la iesirea standard sort <fis1.txt >fis2.txt face acelasi lucru, doar ca iesirea standard este indirectata spre fisierul "fis2.txt". ___ Filtre DOS ___ Exista anumite comenzi DOS care citesc date de la echipamentul standard de intrare, le modifica, apoi afiseaza rezultatul la echipamentul standard de iesire. Aceste comenzi se numesc "filtre". Exista 3 filtre DOS: SORT - care sorteaza date text, FIND - care cauta intr-un fisier aparitia unui sir de caractere specificat, MORE (detaliata mai sus). SORT - comanda externa Descriere: filtru care citeste datele de la echipamentul standard de intrare, le sorteaza, apoi le scrie la echipamentul standard de iesire. Forma generala: [d:][cale]SORT [/R][/+n] Sortarea este facuta crescator in ordinea codurilor ASCII, la nivel de linie de text. Parametrul /R determina efectuarea sortarii in ordine descrescatoare. Parametrul /+n, cu n intreg pozitiv, determina inceperea sortarii din coloana n (daca nu este specificat, se incepe sortarea din coloana 1); dimensiunea maxima a fisierului care poate fi sortat este de 63 Kocteti. Exemple: sort /r <nesort.txt >sortat.txt sorteaza in ordine descrescatoare liniile fisierului "nesort.txt" si trimite iesirea in fisierul "sortat.txt" dir|sort /+3 >list.srt determina sortarea iesirii comenzii DIR din coloana 3, si redirectarea iesirii in fisierul "list.srt". FIND - comanda externa Descriere: trimite la echipamentul standard de iesire toate liniile din fisierele specificate in linia de comanda care contin un sir de caractere specificat Forma generala: [d:][cale]FIND [/V][/C][/N] "sir" [[d:][cale]nume_fis[.ext] ...] Sirul de caractere cautat este scris intre ghilimele (in cazul in care sirul insusi contine caracterul ", acesta trebuie dublat). Comparatia tine cont de diferenta intre literele mici si cele mari. Parametrul /V determina afisarea tuturor liniilor care nu contin sirul specificat. Parametrul /C determina afisarea unui contor cu numarul de aparitii al sirului specificat in fiecare fisier, fara a mai afisa liniile care contin sirul specificat. Parametrul /N determina o numerotare a liniilor care contin sirul.Numarul de linie se afiseaza in fata fiecarei linii scrise. Primul caracter CTRL/Z (care marcheaza sfirsit de fisier) va determina sfirsitul cautarii.

Exemple: find "test" fis1.txt fis2.txt fis3.txt afiseaza toate liniile din fisierele "fis1.txt", "fis2.txt" si "fis3.txt" (in aceasta ordine) care contin sirul "test". INTREBARI SI EXERCITII 1. Mentionati care este directorul dv. curent? 2. Copiati un fisier de la tastatura, apoi afisati-i continutul, utilizind comenzi ale sistemului de operare DOS (nota: dupa ce ati terminat de introdus textul, tipariti CTRL-Z, caracter ce marcheaza sfirsitul unui fisier ASCII, apoi ENTER). 3. Copiati fisierul "lab2.txt" in directorul dv. curent. 4. Creati un subdirector al directorului curent, numit TEMPORAR, schimbati directorul curent astfel incit sa puteti avea acces la intrarile in acest director si apoi mutati in el fisierul lab2.txt copiat anterior. 5. Stergeti directorul TEMPORAR. 6. Completati raspunsurile exercitiilor din laboratorul precedent in trei fisiere diferite (de exemplu, in fisierul r1.txt, raspunsurile la exercitiile 1-6, in r2.txt, la 7-12, in r3.txt la 13-18), folosindu-va de un editor oarecare. La sfirsit, concatenati cele trei fisiere in r1.txt. 7. Concatenati fisierele r1.txt, r2.txt, r3.txt intr-un fisier nou, cu un nume la alegerea dv. 8. Afisati continutul fisierului creat la exercitiul 7, folosind comenzile TYPE si MORE. Ce sesizati? 9. Care este directorul parinte al directorului radacina? 10. Care dintre comenzile urmatoare sunt comenzi interne si care externe? DIR, CD, TREE, COPY, MORE 11. Folositi comanda PATH, astfel incit cautarea fisierelor sa se poata face si in directorul dv. curent.

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