Il sistema operativo più semplice: MS-DOSIl sistema operativo più semplice: MS-DOS
Il PC ha bisogno di un programma che gli consenta di “comunicare” con l’utente per ricevere i comandi da eseguire e per presentare i risultati prodotti: questo è quanto è percepito dall’utente
In realtà il S.O. deve essere in grado di gestire tutte le parti del PC e di renderle disponibili per eseguire gli altri programmi, deve anche essere in grado di lanciare un programma
Il sistema operativo è, in generale, il software che si incarica di fare da “interprete” tra uomo e calcolatore
MS-DOS è un sistema operativo per Personal Computer La sigla sta per Microsoft-Disk Operating System
MS-DOSMS-DOS
Non esistono praticamente in commercio PC che installino DOS, però Windows conserva la console (che si lancia con cmd.exe) che permette di interagire direttamente con l’interprete dei comandi. Però esistono SO che si basano fortemente sull’interazione con la console (Linux)
Il DOS mette a disposizione dell’utente una serie di comandi I comandi sono, in generale, introdotti usando la tastiera Prima di poter eseguire un nuovo comando è necessario aspettare la
terminazione del precedente Per segnalare all’utente che è pronto ad accettare un comando, il
sistema operativo presenta quello che viene chiamato PROMPT di sistema
Tutto ciò è utile a capire il fatto che i SO, e il software in genere è un sistema a cipolla
MS-DOSMS-DOS
Ogni volta che il sistema è pronto ad accettare un comando vi sarà il cursore lampeggianteprompt di sistema cursore lampeggiante
C:\DOS>_
MS-DOSMS-DOS La sintassi generale di un comando DOS è:
COMANDO parametri [opzioni] Non tutti i comandi hanno parametri; ad esempio il
comando di cancellazione dello schermo CLS è senza parametri
Non tutti i comandi hanno delle opzioni; queste possono anche essere omesse. Le parentesi [ ] (da non digitare nel comando) racchiudono le opzioni
L’interprete in genere è abbastanza robusto: es. se inseriamo un comando che non esiste ‘pippo’, ci sarà un messaggio d’errore: “pippo” non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch.
MS-DOSMS-DOS
Osservazioni:
Un comando DOS viene eseguito, cioè è inviato al PC, solo dopo aver battuto il tasto di INVIO (altrimenti detto ENTER o RETURN o )
Il DOS non fa distinzione tra lettere maiuscole e minuscole (si dice che: non è case sensitive)
Dopo ogni comando DOS, prima dei parametri e opzioni, si deve lasciare almeno uno spazio (blank)
MS-DOSMS-DOS
Il DOS offriva all’utente una interfaccia puramente testuale (ossia a caratteri), Windows vi aggiunge una interfaccia grafica (diciamo che tutte le funzionalità che sono disponibili a riga di comando, sono arricchite di una GUI, che è maggiormente user friendly)
Il DOS, oltre a mettere a disposizione una serie di comandi, “predispone” il PC affinché possano essere eseguiti anche altri programmi non appartenenti al sistema operativo stesso, ad es. programmi commerciali programmi creati dall’utente
I fileI file
L’unità elementare di informazione che il calcolatore è in grado di comprendere è il bit (0|1)
Tutti i dati vengono trasformati in sequenze ordinate di bit
Per memorizzare più sequenze di bit in un disco è necessario che queste non si mescolino
Le sequenze vengono raggruppate in appositi “contenitori” detti file
Non tutti i file sono uguali I file si dividono in due categorie:
file di testo file binari
I fileI file I file di testo sono quelli composti che possono
essere interpretati usando la codifica ASCII I file di testo possono essere letti e scritti con un
qualunque editor (ad esempio EDIT di DOS) I file binari sono invece memorizzati con una
codifica che è diversa a seconda del programma che ha generato il file
I file binari non possono essere né letti né modificati con un normale editor (non è vero, ma è meglio non farlo)
I fileI file
Il comando TYPE del DOS serve per visualizzare il contenuto di un file di testo
Se si cerca di leggere un file binario come se fosse un file di testo, le informazioni in esso contenute sarebbero interpretate come in codice ASCII pur non essendo tali
Il risultato di tale operazione sarebbe impredicibile, in quanto apparirebbero caratteri strani senza alcun significato apparente (se uno è fortunato trova anche i caratteri che fanno partire l’altoparlante di sistema e sente qualche bip)
I fileI file Ad ogni file viene associato un nome per distinguerlo
dagli altri In DOS ‘puro’ i nomi dei file possono essere lunghi da 1
a 8 caratteri, seguiti da un punto e da una estenzione di al massimo 3 caratteri (il famoso 8+3) i caratteri possono essere alfa-numerici più alcuni caratteri
“speciali”: £, $, %, &, _ , etc. N.B. Non essendo il DOS case sensisitive è indifferente
specificare il nome del file scrivendolo in maiuscolo o in minuscolo
In Windows non c’è spazio alla fantasia (si possono mettere anche gli spazi), ci sono solo alcuni caratteri proibiti: \/:*?<>| (per ragioni storiche)
I file I file
Per aumentare le possibilità di diversificare i nomi dei file, e soprattutto per indicare in modo omogeneo gli stessi tipi di file, è possibile specificare una estensione
In DOS l’estensione del file può essere lunga al più tre caratteri ed è separata dal nome dal carattere “.”
Un file deve sempre avere un nome mentre può non avere un’estensione
EsempiPIPPO.TXTPLUTORADICE.C
I fileI file Alcune estensioni tipiche:
.txt file di testo
.doc file del programma MS-Word
.c file di codice in linguaggio C
.xls file contenente una tabella del programma MS-Excel
I file che possono essere mandati in esecuzione (in gergo “lanciati”) devono avere una di queste tre estensioni (anche in Windows):.COM
.EXE
.BAT
I fileI file
I file con estensione .BAT sono dei file di testo contenenti i nomi di comandi da eseguire in sequenza, tali file sono detti file batch
Invece di digitare tutte le volte la sequenza di comandi da tastiera, si possono elencare i nomi dei comandi da eseguire in un file batch e poi solo questo viene mandato in esecuzione (questo lancia tutti gli altri nell’ordine indicato)
Le directoryLe directory Per catalogare più
efficientemente le informazioni, si possono raggruppare i file in qualche modo correlati tra loro
I file possono essere raggruppati (collocati) in “contenitori” chiamati directory (nell’analogia con lo schedario sono i cassetti)
Directory
File
Le directoryLe directory Una directory ha un nome (max 8 caratteri e un’estensione
opzionale - stesse regole viste per i file). In Windows ovviamente vale tutto quanto detto prima. E’ simpatico notare però come lanciando un comando edit (p.e.) da una directory con nome lungo, al ritorno si abbia il nome in formato ridotto con all’interno alcune tilde ~.
Le directory possono a loro volta contenere altre directory (subdirectory): la struttura gerarchica che si viene a creare ha la forma di un albero
rovesciato (che è come si rappresentano in informatica gli alberi) la radice dell’albero (root), che in MS-DOS si indica con il simbolo \
(back slash), è una directory creata alla formattazione (preparazione) del disco
La struttura delle directory e i file costituiscono quello che viene chiamato file system
Le directoryLe directory Teoricamente non esistono limiti per i livelli di
annidamento, ma in pratica il limite è imposto dai dispositivi fisici (non è facilmente raggiungibile)
Esempio di albero di directory e file (file system)
\
APPUNTI
DATI.TXTFISICA
GIOCHI
SCACCHITENNIS
SUONO
MUSICA.WAV
PROVA.C
Le directoryLe directory
Quando viene creata una nuova directory, automaticamente vengono generate due directory speciali:
.. è un semplice riferimento alla directory padre (cioè quella al livello immediatamente superiore)
. è un semplice riferimento alla directory stessa
Osservazione: La directory .. non è definita per la directory radice
Il pathnameIl pathname
Per poter identificare un file in un file system non è quindi sufficiente specificare solo il suo nome e la sua estensione:bisogna anche indicare in quale directory si trova
Per specificare univocamente la directory dove si trova il file bisogna indicare tutta la sequenza di directory dalla radice del file system fino alla directory contenente il file stesso
Il pathname assolutoIl pathname assoluto
La sequenza di directory che parte dalla radice del file system viene chiamata pathname assoluto
E’ possibile “percorrere” l’albero delle directory La directory dove ci si trova in un dato momento
è detta directory corrente (o di lavoro)
Il pathname relativoIl pathname relativo
Un pathname è relativo quando invece di partire dalla radice del file system, si riferisce alla directory corrente (il corrispondente pathname assoluto viene calcolato dal sistema)
Il pathnameIl pathname In DOS i nomi delle directory che compongono un
pathname sono separati gli uni dagli altri dal carattere “\”. In Windows funziona sia \che /
I pathname assoluti iniziano sempre con il carattere “\” (che identifica la radice del file system)
Esempio (riferito alla struttura ad albero mostrata in precedenza)Il file MUSICA.WAV viene specificato in modo assoluto così:
\GIOCHI\TENNIS\SUONO\MUSICA.WAV
Il pathnameIl pathname
Esempi (riferito alla struttura ad albero mostrata in precedenza)a) Si supponga che la directory corrente sia SCACCHI, il file MUSICA.WAV viene specificato in modo relativo come:
..\TENNIS\SUONO\MUSICA.WAV la parte iniziale ..\ indica che dalla directory SCACCHI
si risale di un livello (la directory padre, qui è GIOCHI)
b) Si supponga che la directory corrente sia TENNIS, il file MUSICA.WAV viene specificato in modo relativo come:
SUONO\MUSICA.WAV
Il pathnameIl pathname Due file possono avere lo stesso nome purché
non siano contenuti nella stessa directory Due directory possono avere lo stesso nome
purché non abbiano la stessa directory padre\
APPUNTI
DATI.TXTFISICA
GIOCHI
SCACCHITENNIS
SUONO
MUSICA.WAV
PROVA.C
MUSICA.WAV
Unita’ logicheUnita’ logiche
Il DOS utilizza più file system: ad ogni unità logica (disco) corrisponde un file system
Le unità logiche sono specificate con lettere (non importa se maiuscole o minuscole) seguite dal carattere “:” Il lettore di floppy ha associata la lettera A: il secondo lettore di floppy (probabilmente si può vedere a
bordo di qualche vecchia macchina), se presente, la lettera B: le altre unità logiche le lettere a partire dalla C: in avanti D: il secondo HD, o in sua mancanza il lettore CD|DVD
Unita’ logicheUnita’ logiche
Quando si hanno più dischi, per identificare univocamente un file è necessario indicare anche in quale disco si trova il file system
EsempioSupponendo che il file system visto in precedenza si trovi nel disco identificato dalla lettera C:, allora il file MUSICA.WAV viene specificato (qui in modo assoluto) in questo modo:
C:\GIOCHI\TENNIS\SUONO\MUSICA.WAV
Unita’ logicheUnita’ logiche
In realtà un singolo hard disk può contenere più di un file system: il disco viene suddiviso (partizionato) in più parti e ogni parte viene trattata come un disco indipendente
A cosa serve partizionare? Per cambiare il disco corrente (ossia passare da una
unità logica ad un’altra) si digita al prompt la lettera dell’unità che si desidera raggiungere seguita da “:”
EsempioPer raggiungere il disco C basta digitare
C: (seguito da INVIO)
Unita’ logicheUnita’ logiche
Il prompt standard indica l’unità corrente seguita dalla directory corrente; in questo modo l’utente ha sempre l’indicazione della sua posizione nel file system
EsempioC:\GIOCHI\SCACCHI>
Nel caso venga specificata un’unità non esistente il sistema operativo risponde con un messaggio di errore segnalando che l’unità prescelta è inesistente e chiedendo una nuova unità valida
Caratteri jollyCaratteri jolly
I caratteri jolly possono essere usati per indicare più file contemporaneamente
Sostituiscono delle parti di nome o di estensione comuni a un gruppo di file il carattere ‘*’ sostituisce una stringa (sequenza di caratteri) di
lunghezza qualunque (anche nulla) a partire dalla posizione in cui è inserito
il carattere ‘?’ sostituisce esattamente un carattere in corrispondenza della posizione in cui è inserito
In Windows, nelle versioni più recenti (a partire da XP) c’è la completion automatica del comando
Caratteri jollyCaratteri jolly
Si supponga di avere tre file: conti.bat paghe.dat prezzi.dat
Con il comando COPY si vogliono copiare tutti i file che iniziano con la lettera P e con qualunque estensione:
COPY P*.* destinazione Si vogliono copiare tutti i file che hanno nome
qualunque ed estensione che termina con atCOPY *.?at destinazione
Comando ATTRIBComando ATTRIB
Nome comando:ATTRIB
Funzione:permette di visualizzare e modificare gli attributi di uno o più file
Sintassi:ATTRIB [+R|-R][+A|-A][+H|-H][+S|-S]
[unità][path]nomi_file Note:R= sola lettura; A= archivio; H= nascosto; S= file di sistema
Esempi:ATTRIB *.*ATTRIB +R DATI.TXTATTRIB -H HIDDEN.DAT
Comando CDComando CD
Nome comando:CD o CHDIR
Funzione:cambia la directory di lavoro;
senza parametri visualizza il nome della directory corrente
Sintassi:CD [path]
Nota: il cammino specificato (path) può essere assoluto o relativo (ma solo in riferimento all’unità corrente)
Esempi:CD \MSDOS\UTILCD ..\PIPPOCD .. (passa alla directory padre, di quella attuale)
Comando CLSComando CLS
Nome comando:CLS
Funzione:cancella lo schermo
Sintassi:CLS
Nota:restituisce il prompt di sistema in alto a sinistra
Comando COPYComando COPY
Nome comando:COPY
Funzione:copia uno o più file in un’altra posizione o concatena una lista di file
Sintassi:COPY origine destinazione
COPY file1 + file2 +… + file-n tuttoqui
Nota: nel caso venga usato per concatenare due o più file (+), COPY restituisce il nome dei file uniti mentre procede nella concatenazione
Comando COPYComando COPY
Esempi:
copy c:\game\dati.txt c:\copia.txt
copy ..\..\fax.doc fax.doc
copy a:\*.* c:\backup
copy c:\compiti.* a:\dati\scuola
copy c:\autoexec.b?t .
copy dati1.txt+dati2.txt dati12.txt
Comando DELComando DEL
Nome comando:DEL o ERASE
Funzione:cancella i file specificati come parametro
Sintassi:DEL [unità][path]nome_file
ERASE [unità][path]nome_file
Nota: con l’opzione /P il comando DEL chiede conferma per la cancellazione
Esempi:DEL c:\dati\cifre.dat
DEL ..\lucidi.ppt
DEL program.bat
Comando DELTREEComando DELTREE Nome comando:
DELTREE
Funzione:cancella la directory specificata e tutte le sue sotto directory
Sintassi:DELTREE [unità][path]nome_dir
Nota:con l’opzione /Y non chiede conferma per la cancellazione
Esempi:DELTREE C:\DATI\
DELTREE ..\LUCIDI
DELTREE PROGRAM
Comando DIRComando DIR Nome comando:
DIR
Funzione:visualizza il contenuto della directory specificata
Sintassi:DIR [unità][path][nome_dir]
Note:con l’opzione /P visualizza una schermata alla volta; con /W visualizza fino a 5 nomi per riga
Esempi:DIR C:\DATI\ /P
DIR /W
DIR ..\..\COMPITI
Comando DISKCOPYComando DISKCOPY Nome comando:
DISKCOPY Funzione:
copia il contenuto di un floppy dall’unità di partenza a quella di destinazione
Sintassi:DISKCOPY [unità1 [unità2] ]
Note: il floppy di destinazione può anche non essere formattato (viene formattato al momento); eventuali dati presenti sull’unità di destinazione verranno persi
Esempi:DISKCOPY A: B:DISKCOPY A: A:
Comando EDITComando EDIT
Nome comando:EDIT
Funzione:attiva un editor di file testuali
Sintassi:EDIT [unità][path][nome_file]
Nota:EDIT può aprire fino a 9 file contemporaneamente; si passa da un file all’altro con la combinazione ALT <numero>
Esempi:EDIT C:\SCUOLA\COMPITO.TXT
EDIT PROVA.FOR
EDIT FILE1.TXT FILE2.TXT
Comando FORMATComando FORMAT Nome comando:
FORMAT
Funzione:predispone il disco nell’unità specificata per “accettare” file di MS-DOS
Sintassi:FORMAT unità
Note: l’opzione /F:dimensione permette di selezionare la capacità del disco da formattare. L’opzione /S permette di formattare un floppy di sistema operativo
Esempi:FORMAT A:
FORMAT B: /F:720
Comando HELPComando HELP
Nome comando:HELP
Funzione:accede ad una guida on-line dei comandi di MS-DOS
Sintassi:HELP [comando]
Nota: non specificando un comando presenta la lista di tutti gli argomenti disponibili
Esempi:HELP
HELP COPY
Comando KEYBComando KEYB Nome comando:
KEYB
Funzione:permette di configurare la tastiera a seconda della lingua scelta
Sintassi:KEYB [parametro]
Nota:non specificando un parametro visualizza il tipo di tastiera corrente
Esempi:KEYB IT configura la tastiera italiana
N.B. questo comando non è più abilitato in Windows
Comando MDComando MD Nome comando:
MD o MKDIR Funzione:
crea una directory dal nome specificato Sintassi:
MD [unità][path]nome_directory Nota:
se si cerca di creare una directory già esistente questo viene segnalato con un messaggio di errore
Esempi:MD C:\CORSI\FONDINFOMD CORSI
Comando MOREComando MORE Nome comando:
MORE Funzione:
permette di visualizzare l’uscita di un comando una schermata per volta
Sintassi:comando | MORE
Esempi:DIR C:\CORSI | MORETYPE DATI.TXT | MORE
Comando MOVEComando MOVE
Nome comando:MOVE
Funzione:permette di spostare uno o più file nella posizione specificata
Sintassi:MOVE [unità][path]origine [unità]
[path]destinazione Note:
può anche essere usato per cambiare nome alle directory; non era presente nelle vecchie versioni del DOS
Esempi: MOVE A:\*.* C:\BACKUP MOVE LUCIDI SLIDE
Comando PRINTComando PRINT
Nome comando:PRINT
Funzione:permette di stampare dei file
Sintassi:PRINT [/D:device] [drive:][path]filename[...]]
Esempi: PRINT LPR: c:\dati.txt
N.B. Questo funziona ancora, ma è un reperto
Comando RDComando RD Nome comando:
RD o RMDIR
Funzione:permette di eliminare una directory specificata
Sintassi:RD [unità][path]nome_directory
Nota:la directory specificata non può essere eliminata se non vuota
Esempi: RD APPUNTI RMDIR C:\UTIL\DATI RD ..\..\SLIDE
Comando RENComando REN Nome comando:
REN o RENAME
Funzione:permette di cambiare nome ad un file specificato
Sintassi:REN [unità][path]nome1 nome2
RENAME [unità][path]nome1 nome2
Nota:il comando non può essere utilizzato per spostare i file
Esempi:REN C:\DATI1.TXT DATI2.TXT
REN TABELLA1.TXT TAB.DAT
Comando TREEComando TREE
Nome comando:TREE
Funzione:permette di visualizzare graficamente una struttura di file e sotto-directory
Sintassi:TREE [unità][path][dir o unità disco]
Notail comando visualizza anche i file quando è specificata l’opzione /F
Esempi:TREE C:\WINDOWS
TREE C:\MSDOS /F
Comando TYPEComando TYPE Nome comando:
TYPE
Funzione:permette di visualizzare il contenuto di un file testuale
Sintassi:TYPE [unità][path]nome_file
Nota:TYPE non permette di modificare il file visualizzato
Esempi:TYPE C:\COMPITO.TXT
TYPE PROVA.FOR
TYPE A:\FILE1.TXT
Comando UNDELETEComando UNDELETE Nome comando:
UNDELETE Funzione:
permette di recuperare i file cancellati in precedenza con DEL, quelli cancellati con erase dovrebbero essere irrimediabilmente persi
Sintassi:UNDELETE [unità][path]nomi_file
Nota:il ripristino dei file non è sempre possibile e, comunque, dovrebbe essere tentato il prima possibile
Esempi:UNDELETE *.*UNDELETE C:\MSDOS\*.FOR
Comando XCOPYComando XCOPY
Nome comando:XCOPY
Funzione:permette di copiare tutti i file di una directory più le sotto directory
Sintassi:XCOPY origine destinazione
Nota:per copiare anche le sotto-directory bisogna usare l’opzione /S altrimenti si comporta come COPY
Esempi:XCOPY A:\BIN C:\BIN /S
EserciziEsercizi Sia data la seguente configurazione di file e
directory:C:\
APPUNTI
DATI.TXT
SCUOLA
ALLIEVI.TXT
COMPITI.DAT
GAME
F1
F1.EXEDOOM
SOUND
TEMP
COPIA2.TXTCOPIA1.TXT
Esercizio 1Esercizio 1
Si scriva una sequenza di comandi DOS per creare sul disco C la struttura del file system presentata sul lucido precedente. Per ogni comando si indichi anche il prompt di DOS.
Esercizio 2Esercizio 2
Supponendo di trovarsi nella directory <TEMP>, senza spostarsi dalla directory, copiare il file ALLIEVI.TXT nella directory <F1> L’esercizio può essere risolto usando riferimenti
assoluti:COPY \APPUNTI\SCUOLA\ALLIEVI.TXT \GAME\F1
oppure relativi:COPY ..\APPUNTI\SCUOLA\ALLIEVI.TXT ..\GAME\F1
Attenzione Ad essere precisi, dopo F1 bisognerebbe aggiungere il carattere \ in quanto se la directory F1 non esistesse, verrebbe creato un file di nome F1, copia di ALLIEVI.TXT
Esercizio 3Esercizio 3
Indipendentemente dalla propria posizione nel file system, con un solo comando, cancellare il file DATI.TXT In questo caso bisogna usare un riferimento
assoluto, in quanto non è nota la posizione corrente all’interno del file system
DEL C:\APPUNTI\DATI.TXT
Esercizio 4Esercizio 4
Supponendo di essere nella directory <SOUND>, spostare tutti i file da <TEMP> alla directory in cui ci si trova Si possono adottare due diverse soluzioni:COPY C:\TEMP\*.* .
DEL C:\TEMP\*.*
oppure:MOVE C:\TEMP\*.* .