Il 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-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-DOS Ogni volta che il sistema è pronto ad accettare un comando vi sarà il cursore lampeggiante prompt di sistema cursore lampeggiante C:\DOS>_ MS-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-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-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 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 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 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 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 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 Esempi PIPPO.TXT PLUTO RADICE.C I 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 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 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 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 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 GIOCHI FISICA DATI.TXT PROVA.C TENNIS SCACCHI SUONO MUSICA.WAV Le 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 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 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 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 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 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 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 GIOCHI FISICA DATI.TXT MUSICA.WAV PROVA.C TENNIS SCACCHI SUONO MUSICA.WAV Unita’ 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’ logiche Quando si hanno più dischi, per identificare univocamente un file è necessario indicare anche in quale disco si trova il file system Esempio Supponendo 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’ 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 “:” Esempio Per raggiungere il disco C basta digitare C: (seguito da INVIO) Unita’ 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 Esempio C:\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 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 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 at COPY *.?at destinazione Comando 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.TXT ATTRIB -H HIDDEN.DAT Comando 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 CD CD \MSDOS\UTIL ..\PIPPO .. (passa alla directory padre, di quella attuale) Comando CLS Nome comando: CLS Funzione: cancella lo schermo Sintassi: CLS Nota: restituisce il prompt di sistema in alto a sinistra Comando 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 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 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 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 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 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 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 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 FORMAT A: B: /F:720 Comando 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 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 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 MD C:\CORSI\FONDINFO CORSI Comando MORE Nome comando: MORE Funzione: permette di visualizzare l’uscita di un comando una schermata per volta Sintassi: comando | MORE Esempi: DIR C:\CORSI | MORE TYPE DATI.TXT | MORE Comando 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:\*.* MOVE LUCIDI C:\BACKUP SLIDE Comando 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 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 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 REN TABELLA1.TXT DATI2.TXT TAB.DAT Comando TREE Nome comando: TREE Funzione: permette di visualizzare graficamente una struttura di file e sotto-directory Sintassi: TREE [unità][path][dir o unità disco] Nota il comando visualizza anche i file quando è specificata l’opzione /F Esempi: TREE C:\WINDOWS TREE C:\MSDOS /F Comando 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 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 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 Esercizi Sia data la seguente configurazione di file e directory: C:\ APPUNTI TEMP DATI.TXT COPIA1.TXT SCUOLA GAME COPIA2.TXT DOOM F1.EXE ALLIEVI.TXT COMPITI.DAT F1 SOUND Esercizio 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 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 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 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\*.* .