Upload
dangkhue
View
217
Download
0
Embed Size (px)
Citation preview
������������������� � ��� �
IIIlll SSSiiisssttteeemmmaaa OOOpppeeerrraaatttiiivvvooo MMMSSS---DDDOOOSSS(((MMMiiicccrrroooSSSooofffttt DDDiiissskkk OOOpppeeerrraaatttiiinnnggg SSSyyysssttteeemmm)))
Sviluppato dalla MicroSoft è un sistema operativo perpersonal computer basati sulla famiglia di microprocessoriIntel iAPX-86.
UUUnnn pppooo’’’ dddiii ssstttooorrriiiaaa
••• Il sistema operativo MS-DOS ha subito varie modifiche nelcorso degli anni in corrispondenza a diverse versioni.
••• La prima versione del sistema operativo MS-DOS eraispirata al CP/M (della Digital), una delle primerealizzazioni di sistema operativo per microcomputer.
••• Dalla seconda versione in poi c’è stato un tentativo diuniformarsi alla filosofia del sistema UNIX, diventato unostandard di fatto per i sistemi di media dimensione.
������������������� � ��� �
• Innovazioni più evidenti che differenziano la secondaversione di MS-DOS dalla prima:� struttura gerarchica dei direttori;� dispositivi visti in modo omogeneo ai file (e non
predefiniti);� maggiore organizzazione e capacità espressiva dei file
comandi;� possibilità di ridirezione e di collegamento tra
programmi (pipe).
DDDiiiffffffeeerrreeennnzzzaaa fffooonnndddaaammmeeennntttaaallleee
UNIX è un sistema multi-utente e multi-programmato,mentre MS-DOS è mono-utente e mono-programmato.
������������������� � ��� �
MMMSSS---DDDOOOSSS::: iiinnnttteeerrrfffaaacccccciiiaaa uuuttteeennnttteee
L’interazione utente-“macchina astratta” puo’ avvenireattraverso:
1. comandi DOS (Job Control Language o JCL)2. programmi “applicativi”3. programmi di utente
EEEssseeemmmpppiii:::
• comando MS-DOS
C:> DIR
• programma “applicativo” TurboC:
C:> tc
• compilatore C:
C:> gcc
• programma applicativo realizzato dall’utente (ad esempio,“prog_1.exe” è il file prodotto dopo compilazione elinking):
C:> prog_1
������������������� � ��� �
LLLiiinnnggguuuaaaggggggiiiooo cccooommmaaannndddiii
Le utilità del sistema operativo sono disponibili attraversoun linguaggio comandi direttamente interpretato da unprocessore dei comandi.
I processori dei comandi sono evoluti da sempliciriconoscitori di comandi a supporti per ambienti piùcomplessi, quasi veri e propri linguaggi diprogrammazione (vedi il caso degli shell di UNIX).
Nel caso di MS-DOS, l’ambiente comandi diventa attivodopo il caricamento (bootstrap) del sistema operativo cherisiede su un disco (detto disco di sistema).
BBBooooootttssstttrrraaappp
Dopo l’accensione della macchina viene caricato in memoriacentrale ed eseguito il codice di inizializzazione residente suROM:
1) Attivazione e test dei componenti hardware del sistema.
2) Caricamento da disco ed esecuzione (di alcune parti) delsistema operativo (file IO.SYS e MSDOS.SYS, eCOMMAND.COM)
������������������� � ��� �
L’attivazione del sistema operativo determina, in sequenza:
1. Lettura degli eventuali parametri di configurazione (file“CONFIG.SYS”).
2. Esecuzione della sequenza di comandi eventualmentecontenuta nel file “AUTOEXEC.BAT”.
3. Attivazione del processore comandi (file“COMMAND.COM”).
☞ Alcune parti del sistema operativo sono residenti inmemoria, mentre altre (alcuni comandi, detti esterni)vengono caricate all’occorrenza.
������������������� � ��� �
IIIlll ppprrroooccceeessssssooorrreee cccooommmaaannndddiii
Il processore comandi costituisce una macchina virtualebasata su:• un gestore della console;• un interprete dei comandi da eseguire (o parser)• un caricatore (o loader) dei comandi.
I comandi sono suddivisi in due classi:• comandi interni• comandi esterni
CCCooommmaaannndddiii iiinnnttteeerrrnnniii
• fanno parte di quella parte di sistema operativo caricatainizialmente in memoria centrale (sono integrati nel fileCOMMAND.COM) e quindi presentano un tempo di latenzaminimo. Per questo motivo, sono interni i comandi piùcomunemente usati (ad es., DIR, DEL, COPY, …)
CCCooommmaaannndddiii eeesssttteeerrrnnniii
• vengono caricati all’occorrenza dal disco, prima di potereessere messi in esecuzione (corrispondono a file conestensione .COM ed .EXE). Vengono introdotti per nonoccupare stabilmente memoria con comandi raramenteutilizzati (ad es., PRINT, FORMAT, …).
☞ I programmi utente sono equiparati a comandi esterni. (filecon estensione .EXE o .BAT).
������������������� � ��� �
SSSccchhheeemmmaaa dddiii fffuuunnnzzziiiooonnnaaammmeeennntttooo dddeeelll ppprrroooccceeessssssooorrreeecccooommmaaannndddiii dddiii MMMSSS---DDDOOOSSS
repeat{fase di bootstrap}if <disco di sistema in A:> then
<carica il S.O. dal disco in A:>else
if <disco rigido> then <carica da quello, default C:>else <azioni alternative>;
{ se c’è un disco di sistema presente nella drive A: lo si carica; altrimentiin caso di disco rigido si carica da quello, oppure azioni alternative: peresempio errore o esecuzione del BASIC caricato da ROM}{ambiente comandi JCL}repeat<attesa di un comando dalla console>if <comando interno> then
case <comando> ofDIR: <esegui l’immagine di DIR>;COPY: <esegui l’immagine di COPY>;…
endelse
<ricerca del comando nel direttorio di default>if <trovato file eseguibile> then{ si ricerca un file di estensione .COM o .EXE come estensione di default}
<caricamento ed esecuzione del comando>else
if <trovato file comandi> then{altrimenti si ricerca un file comandi con estensionedi default .BAT}else <segnala errore>;
{un <CTRL><BREAK> o un <CTRL>-C causa la terminazione delcomando correntemente in esecuzione ed un ritorno al commandprocessor}until <re-inizializzazione: tasti <CTRL><ALT><DEL> >until false {cioè si ripete per sempre}
������������������� � ��� �
III cccooommmaaannndddiii dddiii MMMSSS---DDDOOOSSS
I comandi del sistema operativo MS-DOS possono essereclassificati in:
• comandi di gestione dei dischi e dei file;
• comandi di interazione con le risorse del sistema;
• comandi di utilità e ausilio per lo sviluppo di unprogramma.
SSSiiinnntttaaassssssiii
<<<cccooommmaaannndddooo>>> [[[<<<ooopppzzziiiooonnniii>>>]]] [[[<<<aaarrrgggooommmeeennntttiii>>>]]]
������������������� � ��� �
CCCooonnnccceeettttttiii bbbaaassseee::: dddrrriiivvveee,,, ppprrrooommmpppttt
DDDiiissskkk dddrrriiivvveee
È il dispositivo di interfaccia per un disco (sia dischettifloppy, che disco rigido)• I disk drive sono individuati univocamente attraverso
singole lettere dell’alfabeto. Di solito:� A e B per i floppy disk drive� C per il drive che agisce sul disco rigido.
DDDrrriiivvveee dddiii dddeeefffaaauuulllttt
• È quello riferito preferenzialmente dal sistema nella fase dibootstrap (solitamente un floppy).
DDDrrriiivvveee cccooorrrrrreeennnttteee
• Ad ogni istante è definito un drive corrente: è il driverelativo al disco che viene considerato in tutte le operazioni,se non se ne specifica esplicitamente un altro.
☞ Per cambiare il drive corrente, basta nominare il suonome seguito dal simbolo di due punti (:).
������������������� � ��� ��
PPPrrrooommmpppttt
• In un ambiente interattivo, il prompt è il simbolo (adesempio, una sequenza di caratteri) che viene mostratoall’utente per indicare che si attende l’immissione di uncomando.
nomedrive:\>
• Ad esempio, se il drive corrente è C:
C:\>
• Modifica del drive corrente (da C ad A):
C:\> A:A:\>
������������������� � ��� ��
CCCooommmaaannndddiii pppeeerrr lllaaa gggeeessstttiiiooonnneee dddeeeiii dddiiisssccchhhiii
fffooorrrmmmaaattt
Affinché un disco (fisso o floppy) sia utilizzabile dal DOSè necessario che sia formattato.
L’operazione di “formattazione” traduce il supportomagnetico grezzo in una forma strutturata suddividendo lasuperficie mediante tracce e settori.
Il comando MS-DOS per la formattazione dei dischi è:
C:\> FORMAT nomedrive:
Nota bene: Questa operazione ha un effetto distruttivo:tutte le informazioni eventualmente presenti nel disco(prima dell’esecuzione di format) vengono perse.
Esempio: se si desidera formattare un dischetto inseritonel drive A
C:\> FORMAT A:
������������������� � ��� ��
fffooorrrmmmaaattt
OOOpppzzziiiooonnniii
FORMAT nomedrive: /S
crea un disco di sistema, copiando i file IO.SYS eMSDOS.SYS, e COMMAND.COM (il processore deicomandi MS-DOS).
FORMAT nomedrive: /V
attribuisce un nome (etichetta) al disco da formattare.
FORMAT nomedrive: /F:b
b specifica la capacità del disco da formattare (adesempio, 360, 720, …).
☞ Dalla versione 5.0 esiste il comando:
UNFORMAT nomedrive:
che consente il recupero dei dati sull’unità formattata. Vaeseguito prima di qualunque operazione di scrittura.FORMAT nomedrive: /U rende inefficace talecomando.
������������������� � ��� ��
IIIlll fffiiillleee
Per l’utente, il file è l’unità logica di memorizzazione suidispositivi di memoria di massa.
• Ogni file è caratterizzato da un insieme di attributi:� un nome� una dimensione (in byte)� una modalità di accesso� una data
NNNooommmeee dddeeelll fffiiillleee
• è costituito da: <prefisso>.<estensione>
TC.EXEP.PASDATIWIN.COM
• prefisso è una stringa con lunghezza limitata a 8 caratteri;• estensione è una stringa di lunghezza al massimo di 3
caratteri.
������������������� � ��� ��
☞ Esistono estensioni “notevoli”, che in DOS hanno unsignificato standard:
� “.exe” il file contiene codice eseguibile
� “.bat” il file contiene una sequenza dicomandi (file comandi, o batch file)
� “.com” il file contiene codice eseguibile (damantenere residente in memoriacentrale)
������������������� � ��� ��
CCCooonnnttteeennnuuutttooo dddiii uuunnn fffiiillleee
Ogni file è costituito da una sequenza di caratteriorganizzati in linee.
Es: FILE DI TESTO:
Lettera.txt
Spettabile Ditta,si comunica cheil giorno 19/11...
.............................
Es: FILE DI DATI:
Stipendio.dat
ROSSI PIERO 6/2/93 2.000.000
BIANCHI PAOLA 6/3/93 2.500.000
.................................. ...... ...............
Es: FILE DI PROGRAMMA ESEGUIBILE
Mio prog. exe
***@@@\\^^
������������������� � ��� ��
NNNooommmiii dddiii fffiiillleee::: wwwiiillldddcccaaarrrdddsss
Esistono alcuni caratteri “speciali” (metacaratteri) che nonpossono essere usati all’interno di nomi di file:
\, |, / <, > ,*, ,? …
IIInnn pppaaarrrtttiiicccooolllaaarrreee
• * e ? vengono interpretati dal DOS come “WILDCARDS”:se inseriti all’interno di stringhe, vengono considerati comecaratteri “JOLLY”:� * rappresenta una qualsiasi sequenza (eventualmente
nulla) di caratteri permessi.
� ? rappresenta un qualsiasi carattere singolo.
EEEssseeemmmpppiii
PAOL?.DOC identifica tutti i file che iniziano conPAOL e che sono seguiti da unqualunque altro carattere
PAOL*.DOC identifica tutti i file che iniziano conPAOL e che sono seguiti da unaqualunque stringa
*.COM identifica tutti i comandi conestensione.com: (format.com,backup.com, etc.)
*.* identifica QUALSIASI FILE!!!!!
������������������� � ��� ��
FFFiiillleee sssyyysssttteeemmm
È la struttura logica all’interno della quale vengonoorganizzati i file nella memoria secondaria.
Il file system del sistema operativo DOS ha una strutturagerarchica ad albero.
La strutturazione del file system è ottenuta mediante lasuddivisione in direttòri.
DDDiiirrreeettttttooorrriiiooo:::
• insieme di files;• insieme di files e direttori (sottodirettori).
DIR1
DIR2f1 f2
f1 DIR3aa
b.exe
������������������� � ��� ��
IIIlll FFFiiillleee SSSyyysssttteeemmm
SSStttrrruuuttttttuuurrraaa gggeeerrraaarrrccchhhiiicccaaa aaaddd aaalllbbbeeerrrooo
• nodi, direttori• foglie, files• rami, appartenenza
☞ Non si pongono limiti al grado di innestamento dellastruttura gerarchica che si può costruire.
Direttorio radice: \È la “radice” dell’albero:
\
DIR2f1 f2
f1 DIR3aa
b.for
f1
������������������� � ��� ��
DDDiiirrreeettttttooorrriiiooo CCCooorrrrrreeennnttteee
• Ogni utente può “navigare” attraverso il file system,spostandosi di direttorio in direttorio. Ad ogni istante,quindi, è univocamente definito il direttorio corrente, cherappresenta la posizione attuale dell’utente all’interno dellagerarchia.
IIIdddeeennntttiiifffiiicccaaazzziiiooonnneee dddiii fffiiillleee (((eee dddiiirrreeettttttooorrriii)))
• In generale ogni file (ed ogni direttorio) è identificatounivocamente da un cammino (pathname) più il suo nome,separati tra di loro dal carattere “\”.
Il cammino è:• assoluto, se riferito alla radice;• relativo, se riferito al direttorio “corrente”.
Inoltre, per indicare a quale file system (disco) si fariferimento, si premette il nome del drive.
[nomedrive:][path]prefisso.estensione
Le parentesi quadre indicano parametri opzionali
C:\f1C:\DIR2\f1C:\DIR2\DIR3\f1
������������������� � ��� ��
EEEssseeemmmpppiiiooo:::
Consideriamo il file aa che si trova nel seguente alberodel disco nella drive A:
\
DIR2f1 f2
f1 DIR3aa
b.for
IIIpppooottteeesssiii::: DDDIIIRRR222 èèè iiilll dddiiirrreeettttttooorrriiiooo cccooorrrrrreeennnttteee
• nome relativo: aa• nome assoluto: A:\DIR2\aa
NNNoootttaaazzziiiooonnniii cccooonnnvvveeennnzzziiiooonnnaaallliii
• il direttorio corrente è identificato dal punto (“.”);• il direttorio padre di quello corrente dal doppio punto (“..”);• il direttorio radice viene indicato con “\”.
AAAddd eeessseeemmmpppiiiooo:::
consideriamo ancora aa, con direttorio corrente DIR3• nome assoluto: A:\DIR2\aa• nome relativo: ..\aa
☞ Il nome assoluto è indipendente dal direttorio corrente!
������������������� � ��� ��
IIIlll nnnooommmeee dddeeelll fffiiillleee
QQQuuuiiinnndddiii
[nomedrive:][path]prefisso.estensione
Significato dei singoli elementi:• nomedrive è la lettera che individua il drive (è opzionale se
va bene quello di default);• path è il cammino a partire dalla radice dell’albero dei
sottodirettori (nel caso di nome assoluto) o a partire daldirettorio corrente (nel caso di nome relativo). Anche path èun elemento opzionale;
FFFiiillleee (((ooo dddiiirrreeettttttooorrriii))) dddiiissstttiiinnntttiii:::
• possono avere nomi relativi uguali• non possono avere nomi assoluti uguali
������������������� � ��� ��
AAAddd eeessseeemmmpppiiiooo,,, iii fffiiillleee fff111:::
\
DIR2f1 f2
f1 DIR3aa
b.exe
A:\f1
A:\DIR2\f1
������������������� � ��� ��
CCCooommmaaannndddiii pppeeerrr lllaaa gggeeessstttiiiooonnneee dddeeelll fffiiillleee sssyyysssttteeemmm
DDDIIIRRR [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]] [[[ooopppzzziiiooonnniii]]]
Visualizza la lista dei file e dei direttori contenuti in undirettorio.
OOOpppzzziiiooonnniii:::
/P la lista delle informazioni è fornita avideate
/W vengono visualizzati solo i nomi deifile e dei sottodirettori
☞ DIR accetta le wildcards.
CCCDDD [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]]
Cambia il direttorio corrente. Senza parametri, visualizzail direttorio corrente.
MMMKKKDDDIIIRRR [[[nnnooommmeeedddrrriiivvveee:::]]]pppaaattthhh
Crea un nuovo sottodirettorio (abbreviazione MD).
RRRMMMDDDIIIRRR [[[nnnooommmeeedddrrriiivvveee:::]]]pppaaattthhh
Distrugge un sottodirettorio, solo se è vuoto(abbreviazione RD).
TTTRRREEEEEE [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]]
Visualizza la struttura gerarchica del file system.
������������������� � ��� ��
EEEssseeemmmpppiii DDDIIIRRR:::
C:\> DIR Il volume nell’unità C è DOS400 Il numero di serie del volume è 1666-13D7 Directory C:\
COMMAND COM 38523 19/04/89 12:00WS4 <DIR> 12/03/93 19:11WIN31 <DIR> 15/03/93 11:12DOS <DIR> 26/10/90 12:17AUTOEXEC BAT 439 20/09/93 10:37WINW BAT 128 12/05/93 16:19SETHOST DAT 690 18/05/93 16:04TP6 <DIR> 14/09/93 18:36APPLE BAT 896 21/05/93 11:00APPLE <DIR> 06/04/93 13:29CONFIG SYS 338 27/04/93 12:00 12 file 9037824 byte disponibili
C:\> DIR a: Il volume nell’unità A non ha etichetta Il numero di serie del volume è 1D48-1CCF Directory A:\
DIR 1951 30/09/93 11:02PASCAL2 <DIR> 28/09/93 19:32SORT DOC 19126 24/11/92 11:49FONDAEXB DOC 263353 14/12/92 20:47PASCAL1 <DIR> 30/09/93 9:45ORDINA <DIR> 30/09/93 9:51 6 file 379392 byte disponibili
C:\> DIR A:\PASCAL1\*.PAS Il volume nell’unità A non ha etichetta Il numero di serie del volume è 1D48-1CCF Directory A:\PASCAL1
CICLO PAS 222 28/09/93 19:29ESEMPIO PAS 572 28/09/93 19:30FATT1 PAS 182 28/09/93 19:30MAGGIORE PAS 336 28/09/93 19:30 9 file 377856 byte disponibili
������������������� � ��� ��
Esempi: consideriamo il file system sul disco A:
\
DIR2f1 f2
f1 DIR3aa
b.for
f2.exe
DIR4
p.exe
C:\> A:A:\> CD DIR2A:\DIR2> CD DIR3A:\DIR2\DIR3> DIRF2 EXE34899 02/09/1992 16:01
questa serie di comandi equivale a:
C:\> DIR A:\DIR2\DIR3
oppure a:
C:\> CD A:\DIR2\DIR3C:\> DIR A:
������������������� � ��� ��
\
DIR2f1 f2
f1 DIR3aa
b.for
f2.exe
DIR4
p.exe
A:\> CD \DIR2\DIR3A:\DIR2\DIR3> CD ..A:\DIR2> CD ..\DIR4A:\DIR4> MD DIR5
\
DIR2f1 f2
f1 DIR3aa
b.for
f2.exe
DIR4
p.exe DIR5
������������������� � ��� ��
CCCooommmaaannndddiii dddiii gggeeessstttiiiooonnneee dddeeeiii fffiiillleee
TTTYYYPPPEEE [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]]nnnooommmeeefffiiillleee
Visualizza il contenuto di un file.
A:\> TYPE DIR2\f1
CCCOOOPPPYYY <<<fffiiillleee___sssooorrrgggeeennnttteee>>> <<<fffiiillleee___dddeeessstttiiinnnaaazzziiiooonnneee>>>
Consente di copiare un file in un altro. I nomi dei file(sorgente e destinazione) possono essere specificati inmodo relativo o assoluto.
A:\> COPY f1 A:\DIR4\DIR5\file_1
\
DIR2f1 f2
f1 DIR3aa
b.for
file_1
DIR4
p.exe DIR5
A:\> COPY *.* C:\
������������������� � ��� ��
CCCOOOPPPYYY <<<fffiiillleee111>>> +++ <<<fffiiillleee222>>> [[[ +++ ………]]] [[[<<<fffiiillleee___dddeeesssttt>>>]]]
Concatenamento di file. Per copiare più file in uno singolo(file_dest).
A:\> COPY f1 + f2 + b.for tutto
☞ Se <file-dest> è omesso, allora si copia nel primo file,che viene così modificato.
A:\> COPY f1 + f2 + b.for
XXXCCCOOOPPPYYY <<<pppaaattthhh---sssooorrrggg>>> <<<pppaaattthhh---dddeeesssttt>>> [[[<<<ooopppzzz>>>]]]
Copia file e sottodirettori (opzioni) appartenenti allagerarchia specificata.
OOOpppzzziiiooonnniii:::
/S file + sub-directory non vuoti/E file + sub-directory/D:data copia i file modificati dopo la data specificata.
AAAddd eeessseeemmmpppiiiooo:::
A:\> MD \tempA:\> XCOPY \DIR2 \temp /E
������������������� � ��� ��
RRREEENNN [[[nnnooommmeeedddrrriiivvveee111:::]]][[[pppaaattthhh]]]nnnooommmeeefffiiillleee111 nnnooommmeeefffiiillleee222
Consente il cambiamento del nome di un file.
A:\> REN \DIR2\f1 pippo
\
DIR2f1 f2
pippo DIR3aa
b.for
f2.exe
DIR4
p.exe DIR5
DDDEEELLL [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]]nnnooommmeeefffiiillleee
Permette la cancellazione di uno o più file.
☞ DEL accetta le Wildcards:
C:\> DEL *.BAK
Elimina tutti i file nella Directory corrente con estensione“.BAK”.
C:\> DEL *.*
Elimina tutti i file contenuti nel direttorio corrente, manon elimina i sottodirettori.(Da utilizzare con cautela!!)
������������������� � ��� ��
CCCooonnnfffrrrooonnntttooo dddiii fffiiillleee:::
FFFCCC <<<nnnooommmeeefffiiillleee111>>> <<<nnnooommmeeefffiiillleee222>>>
Confronta il contenuto di due file e ne visualizza ledifferenze.
CCCOOOMMMPPP <<<nnnooommmeeefffiiillleee111>>> <<<nnnooommmeeefffiiillleee222>>>
Confronta il contenuto di due file e fornisce (in caso didifferenze) la posizione ed i valori (esadecimali) deicaratteri diversi.
SSStttaaammmpppaaa dddiii fffiiillleee:::
PPPRRRIIINNNTTT [[[<<<pppaaattthhhnnnaaammmeee>>>]]] [[[<<<ooopppzzziiiooonnniii>>>]]]
Stampa il contenuto di uno o più file. Accetta lewildcards. La stampa avviene in background: questosignifica che, durante la stampa, il sistema MS-DOSaccetta altri comandi.
OOOpppzzziiiooonnniii:::
/D:periferica Specifica la Stampante
/C Sospende la stampa
/T Termina la stampa (svuota la coda)
/P Aggiunta di file nella coda di stampa
������������������� � ��� ��
AAAddd eeessseeemmmpppiiiooo:::
C:\> PRINT autoexec.*
C:\autoexec.bat in stampaC:\autoexec.old in coda
…
C:\> PRINT autoexec.old /C
☞ Se non viene specificato il nome del file, il comandoPRINT mostra la situazione della coda di stampa.
IIInnn aaalllttteeerrrnnnaaatttiiivvvaaa aaa PPPRRRIIINNNTTT:::
C:\> TYPE AUTOEXEC.* >> LPT1
������������������� � ��� ��
MMMooodddaaallliiitttààà dddiii aaacccccceeessssssooo aaaiii fffiiillleee
È possibile specializzare il tipo di accesso a file (solalettura, archiviazione).
AAATTTTTTRRRIIIBBB [[[<<<ooopppzzziiiooonnneee]]] <<<pppaaattthhhnnnaaammmeee>>>
Modifica o imposta le modalità di accesso ai file.
OOOpppzzziiiooonnniii:::
+R imposta l’attributo di sola lettura
-R cancella l’attributo di sola lettura
+A imposta l’attributo di archiviazioneche rende possibile la memorizzazionedi file in formati più compatti (vediBACKUP)
-A cancella l’attributo di archiviazione
☞ ATTRIB <file> visualizza gli attributi del filespecificato.
������������������� � ��� ��
GGGeeessstttiiiooonnneee dddeeelllllleee pppeeerrriiifffeeerrriiiccchhheee
DDDiiissspppooosssiiitttiiivvviii cccooommmeee fffiiillleee
Ad alcuni dispositivi sono associati dei nomi particolari(CON: per la console, PRN: per la stampante) e operazionisimili a quelle su file (omogeneità con i file).
AAAddd eeessseeemmmpppiiiooo:::
• È possibile copiare il contenuto di un file sul video:
COPY FILE.DAT CON:
• Copiare le informazioni date in ingresso dalla console in unfile:
COPY CON: FILE.DAT
• La terminazione dello standard input viene ottenuta tramitela combinazione dei tasti <CTRL>-Z.
• Inviare (copiare) il contenuto di un file alla stampante.
COPY FILE.DAT PRN:
������������������� � ��� ��
CCCooommmaaannndddiii dddiii gggeeessstttiiiooonnneee dddeeeiii dddiiisssccchhhiii
DDDIIISSSKKKCCCOOOPPPYYY [[[nnnooommmeeedddrrriiivvveee111:::]]] [[[nnnooommmeeedddrrriiivvveee222:::]]]
Esegue una copia FISICA di dischi UGUALI, (es.: 3,5”con 3,5”). Se si vogliono copiare file da dischi diversiusare il comando COPY od XCOPY.
Se il disco destinazione contenuto in nomedrive2 non è‘formattato’, esso viene inizializzato allo stesso modo deldisco sorgente.
C:\> DISKCOPY a: b:
CCCHHHKKKDDDSSSKKK <<<PPPaaattthhhnnnaaammmeee>>>
Restituisce informazioni relative allo stato di allocazionedi un disco (o frammentazione di un file)
CHKDSK <nome unità>CHKDSK <nome file>
OOOpppzzziiiooonnniii:::
/F ricompatta in file i byte frammentatisul disco e recupera le allocazioniperse.
������������������� � ��� ��
DDDIIISSSKKKCCCOOOMMMPPP <<<sssooorrrgggeeennnttteee>>> <<<dddeeessstttiiinnnaaazzziiiooonnneee>>>
Confronta il contenuto di due floppy disk.
C:\> DISKCOMP a: b:
BBBAAACCCKKKUUUPPP <<<pppaaattthhh---sssooorrrggg>>> <<<dddrrriiivvveee---dddeeesssttt>>> [[[<<<ooopppzzziiiooonnniii>>>]]]
Viene utilizzato per il salvataggio di file o insiemi di file esotto directory su dischetto (o su una serie di dischetti).Differisce da COPY e XCOPY perché:
a) la direzione della copia è fissa: da DISCO RIGIDO aDISCHETTO.
b) I file vengono salvati in un formato non leggibile.c) Un comando di backup può coinvolgere più dischetti (se la
quantità di byte da copiare eccede la capacità di undischetto): i file che eccedono lo spazio disponibile sul discovengono spezzati e copiati in parte sul disco “corrente” ed inparte sul successivo.
L’utilizzo tipico di backup è quello di effettuare il salvataggiodi file di grandi dimensioni, o di effettuare il salvataggio delcontenuto dell’intero disco rigido.
OOOpppzzziiiooonnniii:::
/S copia anche le sotto-directory
/A aggiunge sul dischetto di destinazione senzacancellare gli eventuali file pre-esistenti
/M copia solo i file modificati dopo l’ultimobackup.
EEEssseeemmmpppiiiooo:::
C:\> BACKUP c: a: /S
������������������� � ��� ��
RRREEESSSTTTOOORRREEE <<<dddrrriiivvveee---sssooorrrggg...>>> <<<dddeeesssttt>>> [[[<<<ooopppzzziiiooonnniii>>>]]]
Il comando RESTORE è complementare al comandoBACKUP: ripristina i file (e/o i direttori) salvati con unbackup.
OOOpppzzziiiooonnniii:::
/S ripristino di eventuali sotto directory
/M ripristino dei soli file modificati dopoil backup
/N ripristino dei soli file non più esistentisul disco destinazione
EEEssseeemmmpppiiiooo:::
C:\> RESTORE a: C:\DIR2 /S/M
������������������� � ��� ��
CCCooommmaaannndddiii dddiii iiinnnttteeerrraaazzziiiooonnneee cccooonnn iiilll sssiiisssttteeemmmaaa
CCCooommmaaannndddiii dddiii ssstttaaatttooo dddeeelll sssiiisssttteeemmmaaa
Sono i comandi che consentono di ottenere informazionisull’attuale configurazione del sistema, ed, eventualmente,di modificarla.
EEECCCHHHOOO
Consente di attivare (ECHO ON) o disattivare (ECHOOFF) la visualizzazione dei caratteri in ingresso chevengono forniti da console.
CCCLLLSSS
Effettua la pulizia dello schermo, lasciando solo il promptdi MS-DOS.
DDDAAATTTEEE,,, TTTIIIMMMEEE
Consentono la visualizzazione o la modifica della data edell’ora del sistema.
C:\>DATE
La data attuale è 28/2/01
C:\>DATE 30-3-96
(impostazione nuova data)
������������������� � ��� ��
KKKEEEYYYBBB
Consente il caricamento di un particolare programma digestione della tastiera.
C:\>KEYB IT
CCCooommmaaannndddiii dddiii ssstttaaatttooo dddeeeiii dddiiissspppooosssiiitttiiivvviii:::
MMMOOODDDEEE
Il comando MODE, a seconda dei suoi parametri,determina lo stato e la modalità di gestione dei varidispositivi.
C:\> MODE LPT1: 80, 6, B
Specifica che la stampante collegata alla porta parallela 1deve considerare una lunghezza di riga di 80, conspaziatura tra le righe di 6 pollici; l’ultimo parametrospecifica di ritentare le operazioni di scrittura in caso dinon risposta.
������������������� � ��� ��
GGGeeessstttiiiooonnneee dddiii vvvaaarrriiiaaabbbiiillliii dddiii sssiiisssttteeemmmaaa
VVVaaarrriiiaaabbbiiillliii dddiii sssiiisssttteeemmmaaa
In MS-DOS è possibile dichiarare ed utilizzare variabili(“di sistema”).
Le variabili di sistema possono essere riferite soloall’interno di file eseguibili:• COMANDI• FILE COMANDI• PROGRAMMI
Il comando MS-DOS per dichiarare ed utilizzare variabili“di sistema” è:
SSSEEETTT [[[<<<vvvaaarrriiiaaabbbiiillleee>>> === <<<vvvaaalllooorrreee>>>]]]
• L’argomento esprime quale valore assegnare alla variabilespecificata. Il valore è una sequenza di caratteri (stringa).
• Senza argomenti visualizza i valori correnti delle variabilidichiarate.
C:\>SET MIODIR = A:\DIR2
������������������� � ��� ��
☞ In MS-DOS esistono variabili di sistema predefinite:
• PATH rappresenta i cammini preferenziali di ricerca dei fileeseguibili.
• APPEND rappresenta i cammini preferenziali di ricerca deifile di dati;
• PROMPT rappresenta il prompt di sistema operativo
• …
C:\>SET PROMPT=Anna $p $g
Anna C:\>
������������������� � ��� ��
PPPaaattthhh
Se il nome di un programma (o di un comando esterno)viene dato in modo relativo, esso viene ricercato neldirettorio corrente, a meno che non sia definito uncammino di ricerca (variabile di sistema PATH). In talcaso, la ricerca viene estesa anche ai direttori specificatinel path.
PPPAAATTTHHH [[[<<<dddiiirrr 111>>>;;;<<<dddiiirrr 222>>>;;;.........;;;<<<dddiiirrr nnn>>>]]]
È un comando che permette di indirizzareautomaticamente la ricerca di:
• COMANDI• FILE ESEGUIBILI• FILE COMANDI (.BAT)
verso cammini (“path”) preferenziali.Il comando PATH modifica il valore della variabile disistema PATH.
• Se non viene fornito nessun argomento visualizza laimpostazione corrente (cammini di ricerca correntemente inuso).
• Se non viene impostato alcun cammino preferenziale:
PATH = <Directory corrente>
☞ Successivi richiami di PATH determinano la perditadelle impostazioni precedenti.
������������������� � ��� ��
EEEssseeemmmpppiiiooo PPPAAATTTHHH:::
DOS
\
RESTORE.COM
C:\>PATHPATH=\
C:\> RESTORE a: c:"comando o nome file non valido"
C:\> PATH C:\DosC:\> RESTORE a: c:
������������������� � ��� ��
AAAPPPPPPEEENNNDDD [[[<<<dddiiirrr 111>>>;;;<<<dddiiirrr 222>>>;;;.........;;;<<<dddiiirrr nnn>>>]]]
• Permette di indirizzare automaticamente la ricerca di FILEDI DATI verso cammini preferenziali.
• Aggiorna il valore della variabile di sistema APPEND.• Se non viene fornito nessun argomento, visualizza la
impostazione corrente.• Se non viene impostato alcun cammino preferenziale:
APPEND = <Directory corrente>
☞ Successivi richiami di APPEND determinano la perditadelle impostazioni precedenti.
������������������� � ��� ��
EEEssseeemmmpppiiiooo AAAPPPPPPEEENNNDDD:::
DOS
\
RESTORE.COM
DOC
README.DOC
C:\>APPENDAppend=C:\
C:\> TYPE README.DOC"file non trovato"
C:\> APPEND C:\DOS; C:\DOC;(impostazione nuovo cammino)
C:\> TYPE README.DOC"…" (visualizza il file readme.doc)
������������������� � ��� ��
EEEssseeemmmpppiiiooo:::
C:\> SET PATH=C:\DOS
[equivale a C:\> PATH C:\DOS]
C:\> SET APPEND =C:\DOC
[equivale a C:\> APPEND C:\DOC]
C:\> SET PROMPT=$P$GC:\> SET MIODIR=A:\DIR2C:\> SETPATH=C:\DOSAPPEND =C:\DOCPROMPT=$P$GMIODIR=A:\DIR2
������������������� � ��� ��
RRRiiidddiiirrreeezzziiiooonnneee dddeeeiii cccooommmaaannndddiii
CCCooommmaaannndddiii cccooommmeee fffiiillltttrrriii
In generale, ogni comando accetta dati in ingresso input eproduce risultati in output.
• Standard Input: la tastiera• Standard Output: il video
input output COMANDO
RRRiiidddiiirrreeezzziiiooonnneee
È possibile sostituire i canali standard di input e di outputcon file o dispositivi.
IIInnn pppaaarrrtttiiicccooolllaaarrreee
Sono stati introdotti alcuni metacaratteri per esprimere laridirezione dei comandi:• < esprime la ridirezione in ingresso• > esprimere la ridirezione in uscita.• >> esprime la ridirezione in uscita, in modo append:
l’uscita avviene su un file preesistente, senza alterarne ilprecedente contenuto, aggiungendo le nuove informazionidi seguito all’ultimo byte del file.
������������������� � ��� ��
EEEssseeemmmpppiii dddiii rrriiidddiiirrreeezzziiiooonnneee iiinnn uuusssccciiitttaaa:::
C:\> DIR B: > FILE.DAT
il contenuto del direttorio è inserito nel file specificato.
C:\> TYPE PIPPO > LPT1
l’uscita del comando “TYPE PIPPO” (il contenuto diPIPPO) è ridiretta verso la stampante LPT1.Equivale ad un comando di stampa in “foreground” (attesafino al completamento della stampa).
C:\> TYPE PLUTO >> PIPPO
concatena il file PLUTO con PIPPO.
C:\> COMP FILE1.PAS FILE2.PAS >> COMP.DATC:\> COMP FILE3.PAS FILE4.PAS >> COMP.DAT
nel file COMP.DAT sono via via aggiunte le uscite dei duecomandi di confronto.
������������������� � ��� ��
RRRiiidddiiirrreeezzziiiooonnneee iiinnn iiinnngggrrreeessssssooo::: cccooommmaaannndddiii fffiiillltttrrrooo
Un filtro è un comando che accetta input da:• tastiera• file• dispositivi• etc.
I filtri MS-DOS sono SORT, FIND, MORE.
SSSOOORRRTTT <<< <<<iiinnnpppuuuttt>>>
Ordina alfabeticamente le linee di un file ASCII avuto perinput.
C:\> SORT < PIPPO
FFFIIINNNDDD """<<<ssstttrrriiinnngggaaa>>>""" <<< <<<iiinnnpppuuuttt>>>
Ricerca una <stringa> in un file di input; se la <stringa> èpresente, viene visualizzata la linea che la contiene.
C:\> FIND "PATH" < AUTOEXEC.BAT"PATH = c:\DOS;"
ricerca la parola PATH all’interno del fileAUTOEXEC.BAT
MMMOOORRREEE <<< <<<iiinnnpppuuuttt>>>
Esegue una visualizzazione a pagine dell’input.
C:\> MORE < PIPPO
������������������� � ��� ��
EEEssseeemmmpppiii:::
C:\> SORT /R < FILE.SRT > INVFILE.SRT
il file in ingresso è ordinato con ordinamento inverso(grazie all’opzione /R) e posto nel file specificato inuscita.
C:\> FIND "ciao" < FILE.DAT
cerca la stringa “ciao” nel file FILE.DAT: riporta le righeche la contengono.
C:\> MORE < FILE1.PAS
visualizza (una pagina alla volta) il contenuto del filespecificato.
������������������� � ��� ��
PPPiiipppiiinnnggg dddiii cccooommmaaannndddiii
È possibile concatenare sequenzialmente comandi inmodo che l’output del comando che precede coincida conl’input del comando che segue.
• Il concatenamento si indica con il carattere: “|”
• I comandi concatenati in successione devono essere filtri(tranne il primo).
• Il collegamento viene realizzato attraverso file temporaneigestiti dal sistema operativo.
• È una particolare forma di ridirezione.
EEEssseeemmmpppiiiooo:::
C:\> DIR | SORT | MORE
Fornisce una lista di file e direttori del direttorio correntesu C, in ordine alfabetico e per videate successive.
������������������� � ��� ��
EEEssseeemmmpppiii:::
C:\> DIR A: | FIND ".COM" | SORT | MORE
visualizza in ordine alfabetico, fermandosi ad ognivideata, i file di estensione .COM del direttorio correntesul disco A.
Alternativa:usando la sola ridirezione, avremmo dovuto introdurre unaserie di file temporanei:
C:\> DIR A: > temp.datC:\> FIND ".COM" < temp.dat >temp1.datC:\> SORT < temp1.dat > temp2.datC:\> MORE < temp2.datC:\> DEL temp*.dat
☞ Ridirezione e piping possono essere utilizzati insieme:
C:\> TYPE elenco.dat | FIND "Rossi" | SORT > lpt1
• Stampa le linee del file elenco.dat in cui compare lastringa “Rossi” in ordine alfabetico.
C:\>FIND "1993" < iscrizioni.dat |SORT > iscritti.93
• Produce il file iscritti.93 (ordinato alfabeticamente)che contiene le linee del file iscrizioni.dat in cui compare lastringa “1993”.
������������������� � ��� ��
FFFiiillleee cccooommmaaannndddiii
In MS-DOS è possibile mandare in esecuzione sequenzedi comandi memorizzate su file (“BATCH FILE” o filecomandi).• I comandi da eseguire vengono memorizzati in sequenza in
file di nome:
<prefisso>.BAT
• L’estensione “.BAT” rende noto al sistema operativo che ilcontenuto del file è da sottoporre all’interprete comandi.
Es.: TC.BAT per chiamare l’ambiente TurboC
clsecho offcd \TCTCcd \echo on
������������������� � ��� ��
IIInnnvvvooocccaaazzziiiooonnneee dddeeelll fffiiillleee cccooommmaaannndddiii
C:\> TC
oppure
C:\> TC.bat
• L’invocazione di un file comandi produce la esecuzionesequenziale di tutti i comandi costituenti, nell’ordinetestuale.
• I comandi possono contenere ridirezione e piping.
������������������� � ��� ��
FFFiiillleee dddiii CCCooonnnfffiiiggguuurrraaazzziiiooonnneee dddeeelll SSSiiisssttteeemmmaaa
La configurazione standard del sistema può esseremodificata mediante i due file:• AUTOEXEC.BAT• CONFIG.SYS
IIIlll fffiiillleee AAAUUUTTTOOOEEEXXXEEECCC...BBBAAATTT
Il file AUTOEXEC.BAT è un file comandi che contiene lasequenza di comandi da eseguire al termine della fase dibootstrap (tipicamente, sono comandi di configurazione delsistema).
AAAddd eeessseeemmmpppiiiooo:::
AUTOEXEC.BATecho offpath=c:\dos;c:\TCappend c:\dataprompt $p$gdatetimeprint /d:lpt1keyb Itclsecho on
������������������� � ��� ��
IIIlll fffiiillleee CCCOOONNNFFFIIIGGG...SSSYYYSSS
Prima di cercare il file AUTOEXEC.BAT, MS-DOSesegue un gruppo di comandi che caricano i driverinstallabili e riservano dello spazio nella memoria delsistema per l’elaborazione delle informazioni.
L’elenco dei driver da caricare è contenuto nel fileCONFIG.SYS:••• Il file viene letto all’avviamento del sistema: se si modifica
questo file, è necessario riavviare il sistema affinché lemodifiche abbiano effetto.
••• Per modificare la confogurazione, è possibile aggiungerenuove direttive a CONFIG.SYS o modificare quelleesistenti.
Il file CONFIG.SYS varie direttive, tra cui:Device carica un driver installabile nel sistema
operativo.
Buffers imposta la quantità di memoria cheMS-DOS riserva per il trasferimentodelle informazioni tra dischi ememoria centrale.
File Imposta il numero di file che MS-DOSconsente di aprirecontemporaneamente.
EEEssseeemmmpppiiiooo:::
Device = c:/mouse/mouse.sysBuffers = 30Files = 30
������������������� � ��� ��
CCCooommmaaannndddiii dddiii uuutttiiillliiitttààà eee sssvvviiillluuuppppppooodddiii uuunnn ppprrrooogggrrraaammmmmmaaa
Per ottenere un file eseguibile (.EXE o .COM) bisognapassare attraverso le fasi di sviluppo di un programma:• editing• compilazione• linking• loading (loader, RTS)
Se sono stati rilevati errori:• debugging (si utilizza un debugger per verificare la
correttezza del programma).
MS-DOS fornisce programmi di utilità per la prima e leultime due fasi.
EEEDDDLLLIIINNN
È un editor di linea (dalla versione 5.0 è disponibile uneditor full-screen molto più facile da usare e comodo)
DDDEEEBBBUUUGGG
È un debugger non simbolico.Il caricamento di file eseguibili è fornito dal run-timesystem.
������������������� � ��� ��
EEEssseeerrrccciiizzziiiooo:::
Supponendo che il disco A contenga la seguente strutturadi file:
A:\|__PIPPO: a.bat, b.bat||__PLUTO: c.bat, d.bat
indicare la situazione risultante dopo i seguenti comandieseguiti in sequenza:
C:\> MKDIR A:\PIPPO\PAPERINOC:\> CHDIR A:\PIPPO\PAPERINOC:\> COPY A:\PLUTO A:
������������������� � ��� ��
SSSooollluuuzzziiiooonnneee
Il primo comando crea la subdirectory PAPERINO entro ildirettorio PIPPO.Il secondo comando lo rende il direttorio correntesull’unità A (e per questo ciò non è visibile nel prompt,che resta settato sull’unità C, non avendo noiesplictamente mai cambiato unità).Il terzo comando copia tutti i file della directory PLUTOnella directory corrente dell’unità A:, che è\PIPPO\PAPERINO.La situazione finale è la seguente:
A:\|__PIPPO: a.bat, b.bat| || |__PAPERINO: c.bat d.bat||__PLUTO: c.bat, d.bat
������������������� � ��� ��
EEEssseeerrrccciiizzziiiooo:::
Supponendo che il disco C contenga la seguente strutturadi file:
C:\|__LUCIA: es1a.txt, es1b.txt es2a.txt es2b.txt||__LAURA: ex.txt
indicare la situazione risultante dopo i seguenti comandi(eseguiti in sequenza):
C:\> COPY LUCIA\ES?A.TXT LAURAC:\> REN LAURA\ES*.TXT LAURA\*.LUC
Indicare anche, se esiste, un modo più compatto perottenere lo stesso risultato.
SSSooollluuuzzziiiooonnneee
Il primo comando copia i due file ES1A.TXT eES2A.TXT nel direttorio LAURA, il secondo comando lirinomina cambiandone l’estensione in .LUC. Ciò non siapplica al file EX.TXT già esistente nel direttorioLAURA, in quanto non compreso nell’insieme di filereferenziati dalla sintassi “ES*.TXT” del comandoRENAME.
������������������� � ��� ��
La situazione finale è la seguente:
C:\|__LUCIA: es1a.txt, es1b.txt es2a.txt es2b.txt||__LAURA: ex.txt es1a.luc es2a.luc
Comando equivalente:
C:\> COPY LUCIA\ES?A.TXT LAURA\*.LUC
������������������� � ��� ��
EEEssseeerrrccciiizzziiiooo:::
Supponendo che il disco C contenga la seguente strutturadi file:
C:\|__LUCIA: win.com||__LAURA: win.exe won.com
indicare come dev’essere predisposto il PATH affinché,dando il comando “WIN”, venga eseguito il programmasituato nel direttorio LUCIA (e non quello, quasiomonimo, del direttorio LAURA), mentre battendo “WON”venga regolarmente trovato ed eseguito il programmasituato nel direttorio LAURA.
SSSooollluuuzzziiiooonnneee
È chiaro che, per trovare sia WIN nel direttorio LUCIA siaWON nel direttorio LAURA, entrambi questi direttoridovranno essere elencati nel PATH; tuttavia, la necessitàdi selezionare, dei due quasi-omonimi, quello deldirettorio LUCIA, fa sì che quest’ultimo direttorio debbaessere elencato prima dell’altro all’interno dell’elenco delcomando PATH.
Dunque, potrà essere:
C:\> PATH C:\LUCIA;C:\LAURA