Note dalle esercitazioni di Informatica

Documenti analoghi
Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

CdL in Medicina Veterinaria - STPA AA

Licenza per sito Manuale dell amministratore

Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Terza lezione: Directory e File system di Linux

SERVIZIO TELEMATICO ENTRATEL. Applicazione Autentica-Apri Multifile

CONFIGURAZIONE E GESTIONE DEI DATABASE (rev. 1.1)

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

FPf per Windows 3.1. Guida all uso

Il sistema operativo: interazione con l utente

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Alcune estensioni comuni Tipo del file Estensione corrispondente..wav,.mid,.voc Grafica.bmp,.jpg,.gif,.tif Documenti web.htm,.html

INFORMAZIONI IMPORTANTI e MOLTO UTILI

Istruzioni operative instal azione FirmaVerifica3.0 Pag.1 di 27

Il Software. Il software del PC. Il BIOS

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Editor vi. Editor vi

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

SERVIZIO TELEMATICO ENTRATEL. Applicazione Invia Multifile

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Esercitazione 1 primi passi e uso dei file

INTERAZIONE CON L UTENTEL

Il Sistema Operativo: il File System

TERMINALE. Creazione e gestione di una postazione terminale di Eureka

Cosa è un foglio elettronico

Come produrre un file PDF da SAP facendo in modo che venga salvato in automatico in una cartella di rete

Corso di Informatica

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Presentation Draw. Guida dell utilizzatore

Protezione. Protezione. Protezione. Obiettivi della protezione

Il sistema operativo

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Corso basi di dati Installazione e gestione di PWS

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Come usare P-touch Transfer Manager

Installazione del Software. per lo Sviluppo di Applicazioni Java

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

CMS ERMES INFORMATICA

Manuale NetSupport v Liceo G. Cotta Marco Bolzon

Impostare il browser per navigare in sicurezza Opzioni di protezione

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

NOZIONI BASE PER ESERCITAZIONI

PROCEDURE GENERALI ATTIVAZIONE MACRO

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

GUIDA UTENTE PRIMA NOTA SEMPLICE

Manuale LiveBox APPLICAZIONE ANDROID.

Word per iniziare: aprire il programma

HORIZON SQL CONFIGURAZIONE DI RETE

Uso del Computer e Gestione dei File. Uso del Computer e Gestione dei File. Federica Ricca

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

DINAMIC: gestione assistenza tecnica

A G DL P. I permessi NTFS e di condivisione. Il File System NTFS. Il File System NTFS. La strategia A G DL P. Il File System NTFS. Il File System NTFS

Manuale d'installazione del programma. Copyright Team System Ancona srl

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Esercitazione n. 10: HTML e primo sito web

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

GUIDA ALLE SOLUZIONI

Il web server Apache Lezione n. 3. Introduzione

Le Interfacce Grafiche

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

developed by Emanuele De Carlo

Manuale d'installazione del programma. Copyright 2010 PrivacyXP - w w w.logprivacy.it

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

COMANDI MS-DOS. Per ulteriori informazioni su uno specifico comando, digitare HELP nome comando

Hub-PA Versione Manuale utente

Alla scoperta della nuova interfaccia di Office 2010

Corso di Amministrazione di Reti A.A. 2002/2003

SOMMARIO... 3 INTRODUZIONE...

Il calcolatore - Applicazioni

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005

Acronis License Server. Manuale utente

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Le Infrastrutture Software ed il Sistema Operativo

MANUALE UTENTE. P.I.S.A. Progetto Informatico Sindaci Asl

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e

IBM SPSS Statistics - Essentials for Python- Istruzioni di installazione per Windows

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il Programma... 3 I moduli... 3 Installazione... 3 La finestra di Login... 4 La suite dei programmi... 6 Pannello voci... 10

On-line Corsi d Informatica sul web

GUIDA UTENTE MONEY TRANSFER MANAGER

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

Manuale LiveBox APPLICAZIONE ANDROID.

Registratori di Cassa

Word prima lezione. Prof. Raffaele Palladino

Programma applicativo di protezione LOCK Manuale per l utente V2.22-T05

Comandi di Outlook Express Messaggi in partenza Comando Comandopulsante scelta rapida

DESKTOP. Uso del sistema operativo Windows XP e gestione dei file. Vediamo in dettaglio queste parti.

MANUALE INSTALLAZIONE E CONFIGURAZIONE

Modifiche in ELCAD/AUCOPLAN Service Pack 4

Sistemi operativi: interfacce

Introduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma

MANUALE UTENTE UTILIZZO MODULO FILE-STORAGE DI ACS - CANALE AMBIENTE PROVINCIA DI TORINO

Transcript:

NotedalleesercitazionidiInformatica PerilcorsodiIngegneriaGestionaledelProf.P.Foglia AcuradiT.Cucinotta Versione1.4

Indicegenerale IlfilesystemdellepiattaformeMicrosoft...4 Premessa...4 Informazionigestitedaunfilesystem...5 Filesystemmultiutenteeautorizzazioni...5 Specificarepercorsidifileecartelle...7 Percorsiassoluti...7 Percorsirelativi...8 Percorsiconunità...9 Condivisionedifileecartelleinrete...9 L'interpretedeicomandi...12 Comandieparametri...13 Nomidipercorsiconspazi...14 Comandidell'interprete...15 ComandoHELP...15 ComandoDIR...15 ComandoCHDIR...17 ComandoECHO...17 Variabilid'ambiente...18 VariabilePATH...19 ComandoSET...20 ComandoMKDIR...20 ComandoRMDIR...21 ComandoERASE...21 ComandoRENAME...21 ComandoMORE...21 ComandoSORT...22 ComandoCOPY...22 Procedureautomatiche...22 ComandoREM...23 Gestionedeglierrori...23 Passaggiodiparametri...24 Ingressoeuscitastandarddeiprogrammi...24 Redirezionedeiflussidicaratteri...25 L'ambientedisviluppodiSUNperJava...27 Utilizzodilibrerieesterne...29 LavariabileCLASSPATH...30 Impostazioneautomaticadellevariabiliall'avviodicmd...30 L'ambienteintegratoperlosviluppo"Eclipse"...32 InstallazioneelanciodellapiattaformaEclipse...32 Progetti(Project)...33 Creazionediunnuovoprogetto...33 Utilizzodilibrerieesterneall'internodiunprogetto...34 Strumentidilavoroesotto finestre(view)...34 Prospettive(Perspective)...35

ResourcePerspective...35 JavaPerspective...37 DebugPerspective...38

IlfilesystemdellepiattaformeMicrosoft Premessa Unfilesystempermettediorganizzareidatidelsistemaoperativo, delleapplicazioniedegliutenti,incontenitoriseparati,dettifile, chepossonoesserestrutturatiinmanieragerarchicaincartellee sottocartelle(detteanche folder o directory),inunastrutturaad albero.adesempio,la Figura1 evidenziache,nellacartella di radice delvolume HD (unità C:),sonopresentidiversecartelle, alcune delle quali sono tipiche di molti sistemi operativi di Microsoft: lacartella DocumentsandSettings contiene,perogni utente del sistema, una sottocartella con il nome dell'utente, all'interno della quale sono contenuti tutti i documenti, file applicativiediconfigurazionerelativiaquell'utente; all'interno della sottocartella di nome Tommaso relativa all'utentetommaso,adesempio,lasottocartella Desktop contieneilcontenutodeldesktopdell'utente,lasottocartella Documentièilpercorsopredefinitoperlamemorizzazione di nuovi documenti da parte di molti applicativi, e la Figura1.Cartelleesottocartelle sottocartella Menu Avvio può essere utilizzata per strutturateadalberoinun personalizzare le voci di menù disponibili per l'utente a filesystem. partiredalmenùstart; unacartellaspecialeèquelladinomeallusers,checontienedatiefilediconfigurazione comuniatuttigliutenti.adesempio,creandouncollegamentoall'internodellasottocartella DesktopdiAllUsers,talecollegamentocompariràsuldesktopdituttigliutenti; lacartellaprogrammicontiene,perogniprogrammainstallatosull'elaboratore,unasottocartella conilnomedelprogrammacontenenteilprogrammastesso,insiemeamoltialtrifilenecessari perl'esecuzionecorrettadelprogramma(adesempiolibreriedinamiche,icone,filesonori,filedi esempioedidocumentazione); lacartelladinome WINNT (Windows suisistemi Windows95,98,ME)contieneilsistema operativoveroeproprio,insiemeatuttiqueifilechesononecessarialsuofunzionamento,comei driver delle periferiche, le librerie dinamiche, i file di configurazione del sistema, i tipi di carattere (font) di sistema, l'interprete dei comandi e moltissimi altri programmi di gestione indispensabilialsistemaoperativo. Sinoticheneifilesystemutilizzaticomunementenellepiattaformedi Microsoft inominonsono distinti in base alla loro "maiuscolatura", cioè un file di nome Program.java può essere indifferentementeidentificatoancheconinomi program.java o PROGRAM.JAVA,equesto vale anche per i nomi di cartelle. Si noti anche che altri tipi di filesystem non hanno questa caratteristica. Ad esempio, quelli tipici delle piattaforme UNIX e derivati (Solaris, Linux, BSD, ecc...) distinguono i nomi di file e cartelle anche in base alla loro "maiuscolatura". Su tali piattaforme, sarebbepossibileadesempio averetrefiledistinti, inunastessacartella, di nomi Program.java,program.javaePROGRAM.JAVA. 4

Informazionigestitedaunfilesystem Ilfilesystemnonsolopermettealsistemaoperativoealleapplicazionidimemorizzareegestiredati infileecartelle,magestisceautomaticamenteunaseriediinformazioniaggiuntivesuifileele cartelle che vengono utilizzate di frequente da altre componenti del sistema operativo, dalle applicazioni,eanchedagliutentifinali.inparticolare,adognifileecartellapresentesulfilesystem, vengonoassociateegestiteautomaticamentedelleinformazioni,chiamateancheattributidelfileo cartella, che variano a seconda del tipo di filesystem, ma solitamente comprendono almeno i seguentiattributi: nomedelfileocartella dataeoradicreazionedelfileocartella dataeoradiultimamodificadelfileocartella dimensione(soloperifile) inunfilesystemmultiutente,proprietariodelfileocartellaerelatividirittidiaccesso Ad esempio, la Figura 2 evidenzia come, su di un filesystem NTFS per Windows 2000, tali informazionivenganoresevisibiliall'utentemediantel'utilizzoprogrammawindowsexplorer per lanavigazionedelfilesystem. Filesystemmultiutenteeautorizzazioni Inunsistemaoperativomultiutentevienesolitamenteutilizzatounfilesystemingradodiassociare ad ogni elemento autorizzazioni differenti per i vari utenti del sistema. Questo viene fatto solitamentesiaperproteggereifiledelsistemaoperativodaeventualiazionipericolose(voluteo accidentalichesiano)dapartedegliutenti,siaperproteggereidatideivariutentiegarantirnela privacy. Figura2.VisualizzazionedelproprietarioassociatoaglielementidiunfilesystemNTFS. Ciò viene ottenuto associando ad ogni elemento del filesystem il nome dell'utente che ne è il proprietario (owner),inizialmente coincidenteconil nomedell'utentechehacreatoil file o la cartella. Soltanto l'utente proprietario di un elemento può decidere quali altri utenti possono accedereaquell'elemento,esecondoqualimodalità.taliinformazioni,notecomeimpostazionidi protezione o di sicurezza dell'elemento, vengono memorizzate, elemento per elemento, nel 5

filesystemstesso,evengonoutilizzateogniqualvoltaunprogrammatentadieffettuareunaccesso all'elementostesso.ilfilesystemnewtechnologyfilesystem(ntfs),comparsoinizialmentesulle piattaforme Windows NT, ma presente anche sui sistemi Windows 200x, permette di associare informazioni di protezione ad ogni elemento del filesystem. Ad esempio, in Figura 2 è stato evidenziatoilproprietarioassociatoadognicartellautentediunsistemaconfilesystemntfs. Nelcasopiùsemplice,unutentepuònegarecompletamentel'accessoadunfileocartelladapartedi qualsiasialtroutente,permantenerequell'oggettoassolutamenteprivato.inalternativa,unutente puòpermetterel'accessoinsolaletturaadunelemento,cioènonconsentendoaglialtriutentidi apportaremodificheall'elemento.quest'ultimoèsolitamenteilcasodeifilediprogramma(chesi trovano di norma nella cartella C:\Programmi sui sistemi Microsoft), di norma di proprietà dell'amministratore di sistema (Administrator), che in un sistema multiutente devono essere eseguibilidatuttigliutentimanondevonoesseremodificabilidaloro,inmododaproteggerele applicazionicondivisefragliutentidaazionipotenzialmentepericolose,ancheaccidentali,diutenti nonesperti. Neicasipiùcomplessi,ilfilesystempermettediassociarepermessidiversiadiversigruppidiutenti delsistema,oancheautentisingoli,epermetteanchedirestringereleoperazioniconcesseallo stesso proprietario. Questo può essere utile, ad esempio, per evitare che un utente cancelli accidentalmentelasuacartellaprincipaledilavoroetuttelesottocartelleacausadiun'unicaazione errata. Oltrecheperlagestionedeidirittidiaccessoaglielementidelfilesystem,unsistemaoperativo multiutente utilizzaleimpostazioni diutenti egruppidelsistemaancheper vietarel'accesso a perifericheparticolariogruppidiapplicatividapartediutentimenoprivilegiati.adesempio,sudi unsistemamultiutente,èpossibiledefinirequaliutentiogruppidiutentisonoautorizzatiomenoad utilizzareunmasterizzatoreounoscanner,attivareconnessionidirete,ocambiareleimpostazioni didataeoradelsistema. SinotiinfinechequantodettononsiapplicaaifilesystemditipoFAT32tradizionalmentepresenti suisistemioperativiwindows9xeme,chesonofondamentalmentesistemimonoutente.iltipodi filesystem in uso su di un volume può essere evidenziato dalla finestra di dialogo Proprietà dell'unità,richiamabile,adesempio,aprendolafinestra Risorse del Computer,cliccandoconil tastodestrodelmousesull'unitàdicuisivuolconoscereiltipodifilesystem,escegliendolavocedi menùproprietà,comeillustratoinfigura3. 6

Figura3.Visualizzazionedeltipodifilesystemdell'unitàC. Specificarepercorsidifileecartelle Un percorso (path o pathname ininglese)èunastringatestualeche,all'internodiunfilesystem gerarchico,permettediindividuareunivocamenteunfileounacartella(elemento,daquiinpoi).su alcunisistemioperativicomequellibasatisu UNIX,ipercorsiall'internodelfilesystemvengono anche utilizzati per identificare dispositivi. Ogni volta che ci si vuol riferire ad un elemento all'internodiunfilesystem,ènecessarioutilizzareunpercorsocheindividual'elemento,secondo unaprecisasintassi.adesempio,perpassareunnomedifileocartellacomeparametroadun comandodell'interpretedeicomandi,ènecessariospecificareunpercorsodifileocartellacome parametrodiingressoaquelcomando. Generalmente,ognisistemaoperativopermetteduemodalitàfondamentaliperlaspecificadiun percorsocheidentifichiunelementoall'internodiunfilesystem: percorsoassoluto:l'elementovieneidentificatoinmanieraunivoca,edindipendentementedalla posizioneincuisitroval'interpretedeicomandinelmomentoincuiaccedeall'elemento; percorsorelativo:l'elementovieneidentificatoconunnomechevainterpretatorelativamentealla posizioneincuisitroval'interpretedeicomandinelmomentoincuiaccedeall'elemento. Percorsiassoluti Unpercorsoassolutoidentificaunelementosempreapartiredallacartelladiradicedelfilesystem,e scendendomanmanonellecartelleesottocartelle,finoadidentificarel'elementovoluto,eviene specificatoseguendoleseguentiregolesintattiche: 7

ilpercorso\(barrarovesciata)identificalacartelladiradicedelfilesystem; ilpercorso \<Nome> identifical'elemento(fileocartella)dinome <Nome>,contenutonella cartelladiradicedelfilesystem; se <Percorso> èunpercorsoassolutocheidentificaunacartellacontenenteunelementodi nome <Nome>, allora <Percorso>\<Nome> è il percorso assoluto che identifica tale elemento. Adesempio,inFigura1,relativamentealfilesystemsulvolumeHD(unitàC:),lacartelladiradice èidentificatadalpercorsoassoluto\.lacartelladocumentsandsettingsivicontenutaè invece identificata dal percorso assoluto \Documents and Settings. Infine, la cartella Tommaso evidenziata in figura è identificata dal percorso assoluto \Documents and Settings\Tommaso. Indefinitiva,ilpercorsoassolutodiunelementoècostituitodallagiustapposizioneinsequenzadei nomi delle cartelle e sottocartelle che si incontrano navigando il filesystem dalla radice verso l'elementoinquestione.talinomivannoseparatidauncaratteredibarrarovesciata(\),cheva ancheaggiuntoall'iniziodelnomedipercorsoassoluto. Percorsirelativi Identificareunelementodelfilesystemmedianteilsuopercorsoassolutorisulta,ilpiùdellevolte, estremamentescomodo,perlanecessità diriferirsisempreallaradicedelfilesystem.e'spesso moltopiùcomodoidentificareunelementorelativamenteallaposizionedovesistalavorandoinun dato istante, detta cartella o percorso corrente (current path). Questo può essere il percorso correntedell'interpretedeicomandio,comesivedràinseguito,ilpercorsocorrenteassociatoadun generico programma in esecuzione sull'elaboratore. Un percorso relativo permette di fare esattamentequesto,esicostruiscesecondoleseguentiregole: ilcarattere.(punto)identificalacartellacorrente; lasequenzadicaratteri..(duevoltepunto)identificalacartellacontenentelacartellacorrente, dettaanchecartellapadredellacartellacorrente; unnome<nome>chenoniniziacon(nècontiene)ilcarattere\identifical'elementoconquel nomeall'internodellacartellacorrentedell'interpretedeicomandi; se <Percorso> èilpercorsorelativocheidentificaunacartellacontenenteunelementodi nome<nome>,allora<percorso>\<nome>identificataleelemento. Adesempio,unfilenellacartellacorrentepuòessereidentificatosemplicementeconilsuonome. Adesempio,seadundatoistantel'interpretedeicomandisitrovanellacartelladipercorsoassoluto \WINNT,alloralasottocartelladipercorsoassoluto \WINNT\System32puòessereidentificata con il più comodo percorso relativo System32, ed il file di percorso assoluto \WINNT\System32\cmd.exe può essere identificato con il più comodo percorso relativo System32\cmd.exe. Comeulterioreesempio,sel'interpretesitrovanellacartelladipercorsoassoluto \Documents and Settings\Tommaso, la cartella padre (di percorso assoluto \Documents and Settings) può essere identificata comodamente con il percorso relativo.., e la cartella di profilorelativaall'utenteadministratorconilpercorsorelativo..\administrator. Si noti che, dato un percorso relativo <Relativo> di un elemento, e la cartella corrente <Percorso>cuisiriferisce,ilpercorsoassolutodellostessoelementoècostituitosempredalla giustapposizionedelleduecomponenti:<percorso>\<relativo>. 8

Percorsiconunità Inunpercorsodeitipiappenavisti,ilfilesystemdaconsiderareèimplicitamenteidentificato.Infatti adogniprogrammainesecuzioneall'internodiunsistemaoperativoèassociata,adogniistante, oltrealpercorsocorrente,ancheun'unitàcorrente,cheidentificailfilesystemcuisiriferisconotutti ipercorsiutilizzatiperl'accessoalfilesystem.inalcunicasisihalanecessitàdiriferirsiadun filesystempotenzialmentediversodaquelloimplicitamenteidentificatodall'unitàcorrente.questoè possibileaggiungendo,davantialnomedipercorso(senzaspaziinterposti),ilnomedell'unitàcuiil percorso si riferisce, seguito dal carattere : (due punti). Ad esempio, il percorso assoluto D:\ identificaunivocamentelacartellaradicedelfilesystemsull'unitàd,indipendentementedall'unitàin cui l'interprete si trova quando utilizza tale nome di percorso. Come ulteriore esempio, per identificarelacartellalavorodelladirectoryprincipaledeldischettoinseritonelprimodrivesul sistema,sipuòutilizzareilpercorsoa:\lavoro,indipendentementedall'unitàepercorsocorrenti dell'interpretedeicomandi.quandosispecificailpercorsodiunelementosudiunfilesystem identificatomediantelarelativaletteradiunità,èsempreopportunoutilizzarepathnameassoluti, cioècomincianticonunabarrarovesciatasubitodopolaletterad'unitàeilduepunti. Condivisionedifileecartelleinrete Quandodueopiùelaboratorisonoconnessifraloromedianteuncollegamentodirete,essiformano una rete locate (Local Area Network, LAN). Le piattaforme di Microsoft sono predisposte per permetteremoltofacilmentela condivisione difileecartellefrapiùcalcolatori(dettianche host) all'internodiunaretelocale,inmodochesiapossibileaccedereallecartelleefilecondivisidiun elaboratoredaunoqualsiasideglialtrielaboratoriconnessi.intalcaso,l'elaboratoredacuiun utenteoperafisicamenteèdefinitol'elaboratore locale all'utente,mentrel'elaboratoreaicuifilee cartellecondivisil'utenteaccedeinundatoistanteèdefinitoelaboratoreremoto.lacondivisione dellerisorsediuncalcolatoreall'internodiunaretelocaleèpotenzialmentepericolosapermotividi sicurezzadeidatiedelsistemaoperativo,quindi,inunalan,nessunarisorsavienecondivisaeresa visibileadaltricalcolatori,amenochel'utentenonabbiarichiestodifarlo. Precisamente,lepiattaformeMicrosoftprevedonolapossibilità,perunelaboratoreconnessoinrete, dispecificareunaopiùcartelledelfilesystemdell'elaboratoredacondividereinrete.e'possibile specificareilnomeconcuilacartellasaràvisibiledaglialtrielaboratoridellarete,elamodalitàdi condivisione, cioè le autorizzazioni che si vuol concedere agli utenti che da altri elaboratori accedonoallacartellacondivisa.neicasipiùsemplici(piattaformewindows9x,me,xphome)la sceltadellamodalitàdiaccessosiriduceallasceltafraduealternative: accessoinsolalettura,concuidaglialtrielaboratorièsolopossibilenavigarelecartelleeleggere ifile; accessoinletturaescrittura,concuidaglialtrielaboratorièanchepossibilecreare,cancellaree modificarefile. La condivisione di una cartella può essere predisposta semplicemente utilizzando Windows Explorer,facendoclickconiltastodestrodelmousesullacartella,eselezionandolavocedimenù Condivisione e protezione. L'operazione è illustrata in Figura 4, in cui la cartella di nome C:\Documentsandsettings\tommasovienecondivisainreteconilnometom,insola lettura. 9

Figura4.CondivisionediunacartellasuunsistemaWindows2000. Unpercorsodireteèunospecialenomedipercorsoche,invecediindividuareunacartellasudiun filesystemlocaleadunelaboratore,individuaunacartellacheèstatacondivisasudiunfilesystem remoto.inparticolare,unavoltachesudiuncalcolatoredinome<computername>unacartella èstatacondivisainreteconilnome<foldername>,glialtrielaboratoridellastessaretepossono accedervimedianteilpercorsodirete\\<computername>\<foldername>. Se, ad esempio, la cartella C:\Documents andsettings\tommaso(vederefigura4) è stata condivisa con il nome tom su di un elaboratoredinome Spiderman,daunaltro computercollegatoinreteèpossibileaccedere a tale cartella digitando, nella barra dell'indirizzodi WindowsExplorer,ilpercorso direte\\spiderman\tom,comeevidenziato in Figura 5. E' anche possibile utilizzare percorsi di rete sulla riga di comando dell'interprete cmd.exe per passare nomi di file e cartelle remoti come parametri ai comandi.adesempio,èpossibilevisualizzare ilcontenutodellacartellacondivisaconilnome tom sull'elaboratore remoto di nome Spidermandigitando: Figura5.Accessoadunacartellacondivisadaun elaboratoreremoto. 10

C:\DocumentsandSettings\Tommaso>dir\\Spiderman\tom Ilvolumenell'unità\\Spiderman\tomèHD Numerodiseriedelvolume:54D1 D801 Directorydi\\Spiderman\tom 24/03/200420.55<DIR>. 24/03/200420.55<DIR>.. 16/03/200420.40<DIR>ApplicationData 29/03/200400.24<DIR>Desktop [...] Sinotiche,normalmente,l'interpretedeicomandinonaccettadiimpostareilvaloredellacartella correnteadunpercorsodirete,comeevidenziatoin: C:\DocumentsandSettings\Tommaso>cd\\Spiderman\tom "\\Spiderman\tom"èunpercorsodidirectorycorrentenonvalido.Ipercorsi UNCnonsonosupportati. E'quindipossibilevisualizzareemodificareilcontenutodiunacartellaremotadigitandoognivolta arigadicomandoilpercorsodiretecomprensivodelnomedell'elaboratoresucuisivuollavorare (comeparametroaicomandimkdir,rmdirededit,adesempio),manonèpossibileportarsi nella cartella remota e lavorare solamente con i pathname relativi. Su alcune piattaforme di Microsoft,comunque,questapossibilitàesiste,maciòvaaldifuoridegliargomentitrattatiinqueste note. 11

L'interpretedeicomandi Unprogrammafondamentalepresente in tutti i sistemi operativi è l'interpretedeicomandi,chepermette ad un utente, tramite una semplice interfaccia testuale, di navigare interattivamente sul file system dell'elaboratore,diinteragireconesso per creare, rimuovere, spostare o copiare file e cartelle, e di lanciare programmi. Sui sistemi operativi Windows NT, 2000 e XP, tale programmasichiama cmd.exe esi trova usualmente nella cartella C:\WINNT\System (sui sistemi Figura6.Lanciodell'interpretedeicomandi precedenti,comewindows95e98,il nome del programma è C:\Windows\command.com). L'interprete è solitamente accessibile attraversolavocedimenù Start>Programmi>Accessori>Promptdeicomandi,odirettamentedal percorsodimenùstart>eseguidigitandocmd,comeevidenziatoinfigura6. Figura7.Terminaledell'interpretedeicomandi Unavoltalanciato,l'interpreteapreunafinestraditerminale(sivedalaFigura7),cioèunafinestra adattaallavisualizzazionedisolotestoeallaricezionediinputtestualedirettamentedatastiera,in cuiprimadituttocomunicaall'utentequalèlaversionedelsistemaoperativoinuso,comenelledue primerighedellafigura.quindil'interpretevisualizzalaposizionesulfilesystemincuicisitrova, cioèlacartellacorrente(nellafigurac:\documentsandsettings\tommaso),seguitoda unsegnodiseparazione(>),einfinedalcursorelampeggiante,cheevidenzial'attesa,dapartedel programma,diuncomandodatastieradapartedell'utente. 12

Figura8.ContenutodellacartellaC:\DocumentsandSettings\Tommaso, comevisualizzatograficamentedawindowsexplorer. InFigura7èancheillustratocome,impartendoall'interpreteilcomandodir,sipossavisualizzare ilcontenutodellacartellacorrenteinformatotestuale.lestesseinformazionisonovisualizzabili graficamentetramiteilpiùcomunementeutilizzatowindowsexplorer,comeillustratoinfigura8. Dopol'esecuzionediognicomando,l'interpretevisualizzasemprelacartellacorrente,ilseparatore, ediseguitoponeilcursorelampeggiante,rimanendoinattesadelprossimocomando. Comandieparametri Icomandiimpartibiliall'interpretedeicomandi cmd.exe tramitelafinestraditerminaledevono esseredigitatidall'utenteutilizzandolatastiera,epremendoinvioalterminediognicomando.un comandovieneeseguitodigitandoneilnomeepremendoinvio,comeadesempioin: C:\DocumentsandSettings\Tommaso>dir Ilvolumenell'unitàCèHD Numerodiseriedelvolume:54D1 D801 [...] Analogamenteaquantoavvieneperinomidifilesulfilesystemdelsistema,inomideicomandi possono indifferentemente essere digitati in maiuscolo, minuscolo, o misto. Per l'interprete, la digitazione delle righe di comando dir, DIR, o Dir sono assolutamente equivalenti. Tutte invocanolostessocomando. Quasituttiicomandiaccettanoalcuni parametridiingresso (dettiancheargomenti),concuiè possibilealterareilcomportamentodelcomandostesso.iparametripossibilivarianodacomandoa comando,comeanchelemodalitàelasintassiprecisaconcuitalicomandivannodigitatisullariga dicomandodell'interprete.ingenerale,sipuòdirecheuncomandopuòessereeseguitocondei parametriiningressofacendoseguirealnomedelcomandolasequenzadeiparametrichesivuole aggiungere, utilizzando un carattere di spaziatura per separare sia il nome del comando dai parametri,cheivariparametrifradiloro.e'adesempiopossibilevisualizzareilcontenutodella cartellaa:\fornendoilpercorsoa:\comeunicoparametroalcomandodir,comein: C:\DocumentsandSettings\Tommaso>dirA:\ Perifericanonpronta. Spessosonodisponibilialcuniparametrichenoncambianocosailprogrammafa,masolocomelo fa. Questi parametri sono detti opzioni del comando,e tipicamenteil loro nome inizia con un simbolo / o.adesempio,percambiarel'ordinedivisualizzazionedelcontenutodellacartella 13

corrente,èpossibileaggiungerel'opzione/o:d,comein: C:\DocumentsandSettings\Tommaso>dir/O:D Ilvolumenell'unitàCèHD Numerodiseriedelvolume:54D1 D801 [...] Spessoquandosispecificaun'opzione,ènecessariocaratterizzareulteriormentecomequell'opzione dovràalterareilcomportamentodelcomandochesistalanciando.adesempio,l'opzione /O del comando dir stabilisce che l'output dovrà essere ordinato, ma è necessaria un'ulteriore informazioneperstabiliresecondoqualecampo(ades.nome,data,tipo,ecc...)l'ordinamentoavrà luogo. Quest'ulteriore specifica è a sua volta un parametro dell'opzione, e viene solitamente specificatoaggiungendounsegno:all'opzione,seguitodallaspecifica,comein/o:d,chechiede diordinareperdataeora,oin/o:n,chechiedediordinarepernomedifile. In alcuni comandi che si lanciano dalla riga di comando, il comportamento dell'opzione viene specificatoaggiungendounulterioreparametroaseguiresullarigadicomando,subitodopoilnome dell'opzione.e'questoadesempioilcasodelcompilatorejavajavac(sivedapiùavanti),incui l'opzione classpathsiusainunarigadicomandodeltipo javac classpathc:\fiji.jar;.helloworld.java Intalcaso,laspecificadiopzionecompletaè" classpathc:\fiji.jar;.". Nomidipercorsiconspazi Bisognanotareche,cercandodipassareaduncomandounparametroconsistenteinunpathname contenente uno o più spazi, il più delle volte il comando interpreta ogni sequenza di caratteri consecutivasenzaspaziditalepathnamecomeunparametroasèstante(un'eccezioneaquesta regolaèilcomandocd).adesempio,cercandodicreareunacartelladinomeprogettijava conilcomandomkdir(sivedapiùavanti) C:\Procedure>mkdirProgettiJava C:\Procedure>dir [...] 24/03/200415.31<DIR>Progetti 24/03/200415.31<DIR>Java sifinirebbepercreareinrealtàduecartelle,unadinomeprogettiedunadinomejava.questo avvieneperchèilcomando MKDIR interpretaleduecomponentidelpathnamefornitocomedue parametri,quindicreaduecartelle.perconvincerel'interpretedeicomandichestiamopassandoun unicoparametroalcomando,enondueparametri,bastaracchiudereilpathnamefraduecaratteri "(virgolette),comein: C:\Procedure>mkdir"ProgettiJava" C:\Procedure>dir [...] 24/03/200415.35<DIR>ProgettiJava E'ancorapossibilefornireparametrimultiplialcomando,sempreconl'accortezzadiracchiuderefra virgolette ogni pathname contenente spazi, in modo che venga considerato come un unico parametro.ecco,adesempio,comesipossonocrearelecartelle ProgettiJava, Progetti C++,eAppunti,inununicocomandomkdirnonambiguo: 14

C:\Procedure>mkdirAppunti"ProgettiJava""ProgettiC++" C:\Procedure>dir [...] 24/03/200415.39<DIR>Appunti 24/03/200415.39<DIR>ProgettiJava 24/03/200415.39<DIR>ProgettiC++ Comandidell'interprete Segueunapanoramicavelocedeicomandiimpartibiliall'interpretevistiduranteleesercitazioniin aula.sinotichetuttiicomandiaccettanol'opzionespeciale/?chevisualizzaunapaginadiaiuto perl'utilizzodelcomando,contenenteunabrevedescrizionedelcomando,lasintassidarispettare nellasuainvocazioneedunabrevedescrizionedelleopzionidisponibili. Comando HELP Ilcomandohelp,seguitodalnomediuncomandodell'interpretedeicomandi,nevisualizzauna schermatadiaiutoconunabrevedescrizionedelcomando,lasintassieleopzionidisponibili.per quasituttiicomandidisponibilinell'interprete,ladigitazionedi help<comando> equivalea digitare<comando>/?.adesempio: C:\DocumentsandSettings\Tommaso>helpecho Visualizzamessaggi,oppureattiva/disattivalaripetizionedeicomandi. ECHO[ON OFF] ECHO[messaggio] DigitareECHOsenzaparametripervisualizzarel'impostazionecorrente. Comando DIR IlcomandoDIR(DIRectory)visualizzailcontenutodiunaopiùcartelle.Invocatosenzaparametri, ilcomandovisualizzailcontenutodellacartellacorrente,quellaevidenziatasolitamentesullarigadi comandoprimadelcursoreperl'immissionedeicomandi.intalcasoleinformazionivisualizzate, perognielementocontenutonellacartellacorrente,sono(vederefigura7),rispettivamente:datae oradiultimamodifica,dimensione(soloperifile),enome.lecartellesonocontrassegnatedalla stringa<dir>alpostodelladimensione.ilcomandovisualizzainoltre,incimaall'elenco,ilnome dell'unitàedelvolumerelativoallacartellailcuicontenutosistavisualizzando,eilnumerodiserie delvolume.infondoall'elenco,invece,sonovisualizzatiunconteggiodelnumerodeifileecartelle visualizzati,delladimensionetotaledeifilevisualizzati,elamemoriatotaledisponibilesulvolume. Sinotiche,visualizzandotuttoilcontenutodiunaqualsiasicartella,sonosemprepresentiidue elementispeciali.e..cheidentificano,rispettivamente,lacartellacorrente,equellapadre. Nella modalità d'uso più semplice, fornendo al comando un percorso di cartella come unico parametrodiingresso,sirichiedelavisualizzazionediquellacartella,invecechediquellacorrente, comein: 15

C:\DocumentsandSettings\Tommaso>dirE:\Graphics Ilvolumenell'unitàEèDATA Numerodiseriedelvolume:3E20 802F DirectorydiE:\Graphics 25/07/200310.57<DIR>. 25/07/200310.57<DIR>.. 13/11/200119.122.623.952allicons.zip 22/11/200113.373.097.410Sfondi.zip 22/11/200113.362.519.140Icons.zip 3File8.240.502byte 2Directory58.712.064bytedisponibili Traleopzionipiùcomunementeutilizzate,l'opzione/Opermettediordinareglielementisecondo varicriteri: /ONo/Ovisualizzaglielementiinordinealfabetico; /ODvisualizzaglielementiinordinedidataeora; /OSvisualizzaglielementiinordinedidimensione; Nelseguenteesempio,ifilecompaionoinordinealfabetico: C:\DocumentsandSettings\Tommaso>dirE:\Graphics/ON Ilvolumenell'unitàEèDATA Numerodiseriedelvolume:3E20 802F DirectorydiE:\Graphics 25/07/200310.57<DIR>. 25/07/200310.57<DIR>.. 13/11/200119.122.623.952allicons.zip 22/11/200113.362.519.140Icons.zip 22/11/200113.373.097.410Sfondi.zip 3File8.240.502byte 2Directory58.712.064bytedisponibili L'opzione /S permette di visualizzarericorsivamenteil contenutodi tutte le sottocartelle della cartellachesispecifica,comeancheladimensionetotaledeifilecontenutivi.adesempio: C:\>dirC:\Documenti/S Ilvolumenell'unitàCèHD Numerodiseriedelvolume:54D1 D801 DirectorydiC:\Documenti 22/03/200400.19<DIR>. 22/03/200400.19<DIR>.. 22/03/200400.1936Documento.txt 22/03/200400.20<DIR>Immagini 1File36byte DirectorydiC:\Documenti\Immagini 22/03/200400.20<DIR>. 22/03/200400.20<DIR>.. 22/12/199923.00153.720setup.bmp 1File153.720byte Totalefileelencati: 2File153.756byte 5Directory7.375.105.024bytedisponibili Taleopzionepuòancheessereutilizzatapertrovareunfileounacartellanellesottocartelledella cartellacorrente,seseneconosceilnomemanonlaposizioneesatta,comenell'esempiochesegue: 16

C:\Documenti>dirsetup.bmp/S Ilvolumenell'unitàCèHD Numerodiseriedelvolume:54D1 D801 DirectorydiC:\Documenti\Immagini 22/12/199923.00153.720setup.bmp 1File153.720byte Totalefileelencati: 1File153.720byte 0Directory7.375.105.024bytedisponibili Comando CHDIR Ilcomando CHDIR o CD (ChangeDirectory),invocatosenzaparametri,visualizzaladirectory corrente,comein C:\Documenti>cd C:\Documenti Seguitodaununicoparametrocostituitodaunnomedipercorso,invece,ilcomandocambiail percorsocorrenteassegnandogliilpercorsospecificato.ilpercorsopuòesserespecificatosiaconla modalitàrelativa,comenelseguenteesempio,incuicisispostanelladirectorypadre C:\DocumentsandSettings\Tommaso>cd.. C:\DocumentsandSettings>_ checonquellaassoluta,comenelseguenteesempio,incuisicompielastessaazione: C:\DocumentsandSettings\Tommaso>cd\DocumentsandSettings C:\DocumentsandSettings>_ Ilcambiodell'unitàcorrente,invece,puòessereeffettuatoaggiungendol'opzione/Dalcomandocd especificandounpercorsocomprensivodellaletteradiunità,comein: C:\DocumentsandSettings\Tommaso>cd/DE:\Work E:\Work> oppure digitando direttamente il nome della nuova unità, seguito dal carattere :, sulla riga di comando,comein: C:\DocumentsandSettings>D: D:\>_ Si noti che l'interpreteassociaadogni unità unpercorsocorrente,quindisenellospostarsi da un'unitàall'altranonsispecificaalcunpercorso(conilcomandocd/doppuredigitandolalettera diunitàe :)l'interpretesiportanell'ultimacartellacorrenteutilizzatasuquell'unità.ilseguente esempioevidenziaquestocomportamento: C:\DocumentsandSettings\Tommaso>E: E:\>cdWork E:\Work>C: C:\DocumentsandSettings\Tommaso>cd/DE: E:\Work> Comando ECHO IlcomandoECHOèutilizzatoperstampareavideomessaggiditesto.E'ancheutilepervisualizzare il contenuto di una variabile d'ambiente dell'interprete, come nell'esempio che segue, in cui la sequenza speciale %HOMEPATH% viene rimpiazzata dal contenuto della variabile d'ambiente HOMEPATH,nelmessaggiovisualizzato: 17

C:\>echoLamiacartelladilavoroè%HOMEPATH% Lamiacartelladilavoroè\DocumentsandSettings\Tommaso All'interno dei file batch (procedure automatiche, si veda più avanti) dell'interprete, i comandi echoonedechooff,rispettivamente,attivanoedisattivanolavisualizzazioneautomaticadei comandidapartedell'interpreteprimadellaloroesecuzione. Variabilid'ambiente L'interpretedeicomandigestisce,durantelasuaesecuzione,uninsiemedivariabili,dettevariabili d'ambiente, il cui contenuto può variare dinamicamente (in particolare in conseguenza dell'esecuzionediuncomandoset sivedapiùavanti).levariabilid'ambientesonomantenutein memoriaedilorovalorivengonopersiallachiusuradell'interprerte.inoltre,sesonoinesecuzione contemporaneamentepiùistanze(finestre)dell'interprete,ognunodiessimantieneegestisceuna suacopiadivariabilid'ambiente,indipendentementedaglialtriinterpreti. Nelloscrivereunarigadicomandoperl'esecuzionedapartedell'interpretedeicomandi,èpossibile utilizzare la notazione %<Nome>% perriferirsialcontenutodellavariabiled'ambientedinome <Nome>,almomentodell'esecuzionedelcomando.Intalcasol'interprete,primadell'esecuzione delcomandodato,effettualacosiddettaespansionedellevariabili,consistentenellasostituzionedi ognisequenzadellaforma%<nome>%conilcontenutodellavariabile.adesempio,selavariabile dinome SystemRoot contieneilvalore C:\WINNT,èpossibilevisualizzareilcontenutodella cartelladisistemasenzaconoscerneilnomeesatto,utilizzandolavariabileappenacitata,comein: C:\>echo%SystemRoot% C:\WINNT C:\>dir%SystemRoot% Ilvolumenell'unitàCèHD Numerodiseriedelvolume:54D1 D801 DirectorydiC:\WINNT 21/03/200411.07<DIR>. 21/03/200411.07<DIR>.. 12/03/200422.219.078ActiveSetupLog.txt 11/03/200422.57<DIR>addins 12/03/200400.274AErroru3.dat 12/03/200413.18<DIR>AppPatch 30/11/199917.1726.624artcomm.dll [...] Adogniistante,èpossibileconoscerelalistadellevariabilid'ambienteattualmentedefinite,eil rispettivocontenuto,digitandoilcomandosetsenzaalcunparametroaggiuntivo,comein: C:\DocumentsandSettings\Tommaso>SET COMPUTERNAME=SPIDERMAN USERNAME=Tommaso USERPROFILE=C:\DocumentsandSettings\Tommaso HOMEDRIVE=C: HOMEPATH=\DocumentsandSettings\Tommaso Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Programmi\Resource ;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\PROGRA~1\ULTRAEDT PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH ProgramFiles=C:\Programmi SystemDrive=C: SystemRoot=C:\WINNT TEMP=C:\DOCUME~2\Tommaso\IMPOST~1\Temp Eccounabrevedescrizionedialcunedellevariabilid'ambientecomunementedefinitesudiun sistemawindows2000oxp: 18

COMPUTERNAMEmemorizzailnomedelcomputerinuso USERNAMEmemorizzailnomedell'utentechehainvocatol'interprete USERPROFILE memorizza il percorso assoluto della cartella di profilo (detta anche home) dell'utente,comprensivadiletteradiunità;lastessainformazioneèpresentenelleduevariabili HOMEDRIVE,checontienesololaletteradiunità,eHOMEPATH,checontienesoloilpercorso; PATHcontienel'elencodeipercorsi,separatida;,dovel'interpretecercaicomandi,inaggiunta allacartellacorrente PATHEXTcontienel'elencodelleestensionichel'interpreteaggiungeautomaticamentealnomedi uncomandodigitato,durantelaricercadiuncomando TEMP contiene il nome di un percorso che può essere utilizzato dalle applicazioni per memorizzarefiletemporanei; Variabile PATH L'interpretedeicomandi cmd.exe,oltreaicomandiinternamentedefiniti,alcunideiqualisono statiappenadescritti,èingradodiutilizzareancheprogrammiesternicomecomandichel'utente puòinvocaredigitandoneilnomearigadicomando.e'questoilcasodell'editorditestiedit,che èdisponibilenelsistemacomeprogrammaesternoall'interprete,eprecisamente,supiattaforme WindowsNTe200xnelfileC:\WINNT\System32\edit.com,esupiattaformeWindows9x, XPeMEnelfileC:\Windows\System32\edit.com.Perinvocareunprogrammaesterno,si puòdigitaresullarigadicomandodirettamenteilpercorsocompleto(orelativooassoluto)che individuailprogrammasulfilesystem,comein: C:\DocumentsandSettings\Tommaso>C:\WINNT\System32\edit.com/? EditordiMS DOSVersione2.0.026Copyright(c)MicrosoftCorp1995. [...] Talemodalitàrisultascomodadautilizzarsiseilprogrammavainvocatomoltevolte.Perquesto esisteunmeccanismoconcui,digitandosemplicementeilnomedelprogramma,l'interpreteèin gradoditrovareautomaticamentedoveilprogrammasitrova,eloesegue,comein: C:\DocumentsandSettings\Tommaso>edit.com/? EditordiMS DOSVersione2.0.026Copyright(c)MicrosoftCorp1995. [...] Intalcaso,l'interprete,nonriconoscendolastringaedit.comcomecomandointerno,scandiscela listadicartellememorizzatenellavariabilepath(separatedauncarattere;),enonappenatrova unacartellacontenenteunfileconilnomespecificatosullarigadicomando,loesegue.infatti, stampandoilcontenutodellavariabilepathsiottiene: C:\>echo%PATH% C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Programmi\Resource Kit;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\PROGRA~1\ULTRAEDT Quindi, nell'esempio appena visto di invocazione del programma edit.com battendone semplicemente il nome, l'interprete prova, una ad una, le cartelle C:\WINNT\system32, C:\WINNT,ecc...,finoatrovarelacartellacontenenteilfileinquestione.Sinotichel'interprete cercaicomandichevengonodigitatisenzapercorsoprimadituttonellacartellacorrente,poinelle cartellespecificatedallavariabilepath.talevariabilecontienequindiunalistadicartelle,separate dauncarattere;(puntoevirgola),incuil'interpretecercaicomandidaeseguirequandononsono comandiinternidell'interprete,enonvengonotrovatinellacartellacorrente. Sinotichel'interpretedeicomandièancheingradodiaggiungereautomaticamentel'estensionedel filediprogrammacontenenteuncomandoesterno.adesempio,digitandosemplicementeilnome 19

delcomandoeditsenzaestensione,comein: C:\DocumentsandSettings\Tommaso>edit/? EditordiMS DOSVersione2.0.026Copyright(c)MicrosoftCorp1995. [...] l'interpreteèancoraingradoditrovareilprogramma,ilcuinomecompletocomprendel'estensione.com. Questo avviene utilizzando la variabile d'ambiente PATHEXT nel seguente modo: tale variabilecontieneunalistadiestensionidaprovare,separatedauncarattere;(puntoevirgola): C:\>echo%PATHEXT%.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH Quandosullarigadicomandovienedigitatouncomandoprivodipercorsoediestensione,comead esempioedit,l'interpretecerca,inognunadellecartelleenumerateinpath,unoqualsiasideifile ottenutiaggiungendo,unaallavolta,leestensionienumerateinpathext.nonappenal'interprete trovaunfilecorrispondente,provaalanciarlocomeprogramma. Comando SET IlcomandoSETvieneutilizzatopermanipolarelevariabilid'ambientedell'interpretedeicomandi. Invocato senza parametri, il comando visualizza il contenuto di tutte le variabili d'ambiente attualmentedefinite.altrimenti,aggiungendounparametrodellaforma <Nome>=<Valore>,si ottienel'impostazionedellavariabiledinome <Nome> allastringaspecificatacome <Valore>, comenell'esempio: C:\>setJAVA_HOME=C:\j2sdk C:\>echo%JAVA_HOME% C:\j2sdk Insorge spesso l'esigenza di utilizzare un insieme di programmi esterni, in aggiunta a quelli preconfiguratisulsistemainuso,tipicamentedisponibiliinunacartellaseparata.ilcomandoset puòessereutilizzatoperaggiungeretalepercorso,sia<percorso>ilpathnamecheloidentifica, alla lista dei percorsi di ricerca contenuti nella variabile d'ambiente PATH, in cui i comandi dell'interpretevengonoricercati.uncomandodelgenerehalaforma SETPATH=%PATH%;<Percorso> Nell'esempiochesegue,lacartellaC:\Tommaso\MieiBatchcontieneleprocedureautomatiche createdall'utente(adesempiopotrebbeesservicontenutalaproceduraeseguibackup.bat),che possonoessereresedisponibilidirettamentedall'interpretedigitandoneilnome,indipendentemente dallaposizionecorrentenelfilesystem: C:\>EseguiBackup "EseguiBackup"nonèriconosciutocomecomandointernooesterno, unprogrammaeseguibileounfilebatch. C:\>setPATH=%PATH%;C:\Tommaso\MieiBatch C:\>EseguiBackup Backupeseguitocorrettamente. FileutentearchiviatiinA:\Archivio 2004 Mar 01.zip. Comando MKDIR Ilcomando MKDIR o MD puòessereutilizzatopercrearecartelledall'interpretedeicomandi.va invocatoconununicoparametro,consistentenelnomedellacartellachesivuolcreare,riferitao comepathnameassoluto,ocomepathnamerelativoallaposizionecorrente.adesempio: 20

C:\DocumentsandSettings\tommaso\Desktop\Lavoro>mkdirNuovaCartella C:\DocumentsandSettings\tommaso\Desktop\Lavoro>dir [...] 24/03/200410.46257progLettore.java 24/03/200411.35788progLettore.class 24/03/200411.43<DIR>NuovaCartella 4File2.972byte 3Directory5.600.124.928bytedisponibili Comando RMDIR Ilcomando RMDIR,seguitodaununicoparametroconsistenteinunnomedicartella,rimuove quellacartelladalfilesystem,seèvuota.adesempio: C:\DocumentsandSettings\tommaso\Desktop\Lavoro>rdNuovaCartella Selacartellanonèvuota,eventualisottocartelleall'internopossonoessererimossealorovolta utilizzandormdir,mentreeventualifileall'internopossonoessererimossiutilizzandoilcomando ERASE.Inalternativa,fornendol'opzione /S alcomando RMDIR,èpossibileeliminareconun unicocomandolacartellafornitacomeparametro,piùtuttelesottocartelleefilecontenutiinessa. Adesempio: C:\DocumentsandSettings\tommaso\Desktop\Lavoro>rd/SNuovaCartella NuovaCartella,Procedereconl'operazione(S/N)?S Ilcomando RMDIR conopzione/s èfraicomandipiùpotenzialmentedisastrosichesipossono impartiredallarigadicomandodell'interprete,ebisognasempreporremoltissimaattenzioneprima dieseguireuncomandodiquestotipo.sonofrequentiicasidiutentiche,conuncomandodiquesto tipo,cancellanopersbagliotuttiiproprifiledilavoro,rendendosenecontosoloacancellazione avvenuta.perquestomotivo,comel'esempioevidenzia,quandosiusal'opzione /S ilcomando RMDIRchiedeconfermaall'utenteprimadiprocedere. Comando ERASE IlcomandoERASEoDEL,seguitodaununicoparametroconsistentenelnomediunfile,cancella ilfiledalfilesystem. Comando RENAME IlcomandoRENAMEoREN,invocatocomeREN<VecchioNome><NuovoNome>,cambiail nomealfileocartellaspecificatocomeprimoparametro,impostandoloalvalorespecificatocome secondoparametro.adesempio,senellacartellacorrenteesisteunfiledinomepippo.java,che sirinominarecomepluto.java,èpossibileutilizzareilcomando: C:\DocumentsandSettings\tommaso>RENPippo.javaPluto.java Seilfiledarinominarenonsitrovanellacartellacorrente,sipuòspecificare,nelprimoparametro, ilpercorsocompletocheloindividua,assolutoorelativoallaposizionecorrente,edeventualmente comprensivo di lettera di unità per identificare il volume su cui l'operazione va condotta. Ad esempio: E:\Work>RENC:\DocumentsandSettings\tommaso\Pippo.javaPluto.java Comando MORE Ilcomando MORE,invocatofornendocomeunicoparametrounnomedifileditesto,puòessere utilizzatopervisualizzareilcontenutodelfileunaschermataallavolta. 21

Comando SORT Ilcomando SORT,invocatofornendocomeunicoparametrounnomedifileditesto,puòessere utilizzatopervisualizzareilcontenutodelfileconlerigheriordinatealfabeticamentefraloro(il contenutodiciascunarigavienevisualizzatoinalterato,malerighesonopermutateinmododa risultareinordinealfabetico).siimmaginidiapplicareilcomandoadunfileditestocontenente datirelativiadunalistadipersone,doveognirigacominciaconilnomedellapersonacuiidatiche seguonosonorelativi. Comando COPY Il comando COPY, invocato come COPY <Sorgente> <Destinazione>, dove <Sorgente>èunnomedipercorsocheidentificaunfilenelfilesystem,copiailfilenelpercorso specificatoda<destinazione>.sequest'ultimoèunnomedicartella,ilfilecopiavienecreato all'internodiquestacartella,conlostessonomedelfilesorgente.nelcasopiùsemplice,entrambii parametri specificano un nome di file relativo alla cartella corrente dell'interprete, come nel comando C:\DocumentsandSettings\tommaso>copyPippo.javaPluto.java Che crea il file Pluto.java nella cartella C:\Documents and Settings\tommaso copiandoilfilepippo.java.utilizzandoinomicompletidipercorsoèpossibilecopiareunfile daunacartellainun'altra,comein C:\Lavoro>mkdirEsempio2 C:\Lavoro>copyEsempio1\Pippo.javaEsempio2 checopiailfilepippo.javadallasottocartellaesempio1nellasottocartellaesempio2,dopo averlacreata. Procedureautomatiche Finora si è visto come impartire comandi all'interprete cmd.exe in maniera interattiva, direttamentedatastiera.spessoc'èlanecessitàdieseguirepiùepiùvolteoperazionimoltosimili, senonidentiche,consistentinell'utilizzodidueopiùcomandidell'interprete.adesempio,questo accadetipicamenteinun'operazionechecreaunbackupdeipropridatisudischetto.ripetereogni volta l'insieme dei comandi risulta estremamente scomodo per l'utente, che rischia anche di compiere degli errori. E' conveniente, in tali casi, ricorrere alla scrittura di una procedura automatica(ofilebatch,ofilescript)dell'interpretedeicomandi.questoconsisteinunfileditesto conestensione.bat,contenentelalistadeicomandichevannoeseguitiinmanieraripetuta.su ognirigadelfileditestosiscriveuncomandodaeseguire.adesempio,sipotrebbecreare,conun editorditesti,ilseguentefileeseguibackup.bat,adesempionellacartellac:\procedure: setsource=c:\documentsandsettings\tommaso\desktop\lavoro setdest=d:\backup copy%source%\*.java%dest% echoisorgentijava%source%\*.javasonostatiarchiviatiin%dest%. Unavoltasalvatoilfilein C:\Procedure\EseguiBackup.bat,questopuòesserelanciato digitandoneilnomecompletosullarigadicomando, C:\Procedure\EseguiBackup.bat indipendentementedallacartellacorrentedell'interprete,oppure(perquantovistonellasezionesulle variabilid'ambiente)spostandosinellacartellaincuiilfilesitrovaedigitandoilnomeprivodi estensione,comein: C:\DocumentsandSettings\tommaso>cd\Procedure C:\Procedure>EseguiBackup Sinoteràchel'interpretedeicomandivisualizzaavideoognirigadelfilebatch,primadieseguirla, 22

quindi ad esempio i comandi echo risultano visualizzati due volte. Per disabilitare questo comportamento(comunquemoltoutiledurantelascritturainizialedellaprocedura),èsufficiente anteporreadognicomandochenonsivuolvedereripetutoavideouncarattere@(chiocciola).intal caso,loscriptdicuisoprarisulterebbescrittocome: @setsource=c:\documentsandsettings\tommaso\desktop\lavoro @setdest=d:\backup @copy%source%\*.java%dest% @echoisorgentijava%source%\*.javasonostatiarchiviatiin%dest%. Selaproceduraèmoltolunga,risultapiùconvenientedisattivarelaripetizioneavideodeicomandi unavoltapertutte,all'internodelloscript,ciòchepuòesserefattoconilcomandoechooff, postoall'iniziodellaprocedura.intalcaso,laprocedurapuòesserescrittacome: @echooff setsource=c:\documentsandsettings\tommaso\desktop\lavoro setdest=d:\backup copy"%source%\*.java""%dest%" echoisorgentijava%source%\*.javasonostatiarchiviatiin%dest%. Comando REM All'internodiunaprocedurabatchèpossibileinseriredeicommentitestualivicinoaicomandi,in mododatenertracciadicosaognicomandofaodicomelofa.questoèpossibiledigitando,sudi unariga,ilcomandoremseguitodauntestoarbitrario.unavoltalettoilcomandorem,l'interprete deicomandiignorailrestodellarigafinoall'andataacapo,passandoallarigasuccessiva. Gestionedeglierrori In entrambi gli ultimi due esempi, l'unico output della procedura automatica consisterà nel messaggioditestoimpartitoconilcomando echo sull'ultimariga,setuttiicomandivengono eseguiti correttamente. Se invece si verificano degli errori durante l'esecuzione di uno o più comandidellaprocedura,perognicomandochegeneraunerrore,l'erroreverràriportatoavideo, malaproceduraandràavanticonicomandisullerighesuccessive. Spessosivorrebbecheunasequenzadicomandifosseeseguitasolamentesenonsiverificanodegli errori,enonappenaunodeicomandidellasequenzafallisce,sivorrebbechel'esecuzionedella sequenza fosse abortita. E' possibile ottenere questo comportamento scrivendo la sequenza di comandituttisudiunastessariga,unodiseguitoall'altroeseparatisolamentedaduecaratteridie commerciale:&&.siconsideriadesempiolasequenzadicomandiall'internodiunoscript copy%source%\*.java%dest% del%source%\*.java il cui scopo sarebbe quello di copiare i file sorgenti Java da una cartella ad un'altra, per poi cancellaretalifiledallacartelladiorigine.sesiverificasseunerroredurantel'operazionedicopia, adesempioacausadelfattocheilvolumesucuisistaoperandoèpieno,l'interpreteriporterebbe taleerroresullafinestradelterminale,maandrebbecomunqueavanticonlasecondaoperazione, cancellandoifilediorigine.l'utentesiaccorgerebbetroppotardidelfattocheisuoisorgentijava sonoappenastaticompletamentecancellati,invecechespostati. Utilizzandol'operatore &&,sipuòporrerimedioaquestoproblema,riformulandoiduecomandi comesequenza: copy%source%\*.java%dest%&&del%source%\*.java Intalcaso,soloseilprimocomandoterminaconsuccessoesenzaerrori,l'interpreteprocedeconil secondo comando. Altrimenti la sequenza viene abortita, e l'interprete prosegue con la riga 23

successivadelfilebatch. Passaggiodiparametri Leprocedureautomatichecomevistefinorahannouncomportamentoprefissatoedimmutabile.E' invecepossibile,nelmomentoincuisiinvocaunaprocedura,specificaredeiparametridiingresso alla procedura stessa, in modo che il suo comportamento possa variare di volta in volta, specificandoparametridiingressodifferenti.taliparametrivenonoaggiuntisullarigadicomando dopoilnomedellaprocedura,comein: <NomeProcedura><Param1><Param2>... All'interno della procedura è quindi possibile riferirsi ai parametri specificati di volta in volta mediantelevariabilispeciali%1,%2,...,%9. Atitolodiesempio,sisuppongadivolercreareunaprocedurachecreatrecartelleconnomida specificarearigadicomandocomeparametri,all'internodellanostracartellapredefinitadilavoro. Sivorrebbeinvocarelaproceduracome: creacartellehelloworldeserciziolettoreesercizioapplet QuindiloscriptcreaCartelle.batpotrebbeesserescrittocome: @echooff setwork=c:\documentsandsettings\tommaso\desktop\lavoro mkdir"%work%\%1" mkdir"%work%\%2" mkdir"%work%\%3" echolecartelle%1,%2e%3sonostatecreatein%work%. Comesivededall'esempio,ilcodicedelloscriptnonconoscei3nomidicartellecheverranno forniti dall'utente a riga di comando quando invocherà lo script, ma può riferirsi a tali nomi mediantelevariabilispeciali%1,%2e%3.l'interprete,primadieseguireuncomandocontenente unaditalivariabili,sostituiscealnomedellavariabilespecialeilparametrofornitosullarigadi comando,ottenendol'effettodesiderato: C:\Procedure>creaCartelleHelloWorldEsercitazioniJavaEsercizioApplet LecartelleHelloWorld,EsercitazioniJavaeEsercizioAppletsonostatecreate inc:\documentsandsettings\tommaso\desktop\lavoro. Ingressoeuscitastandarddeiprogrammi Ogniprogrammachevienelanciatodall'interpretedeicomandièlegatoallafinestraditerminalein cuil'interpretestagirando,perilfattochetalefinestraèilmezzodiinterazioneprimarioconcuiil programma può interagire con l'utente. Infatti la modalità più semplice di comunicazione dal programmaversol'utenteèlastampadimessaggiditestocheappaionosullafinestraditerminale, mentrenelladirezioneinversal'inputtestualechel'utentedigitadatastierapuòesserealtrettanto semplicementelettodalprogrammaedutilizzatoperrealizzarecomportamentiinterattivi.questa situazioneèriassumibilenelfattocheilprogramma,durantelasuaesecuzione,haadisposizione dueflussidi caratteri,unodiingresso(detto ingressostandard)edunodiuscita(detto uscita standard),chesonolegati,rispettivamente,all'inputdatastieranellafinestraditerminaledacuiil programmaèstatolanciato,eall'output,sottoformadimessaggitestuali,nellastessafinestradi terminale.lasituazioneèillustratainfigura9. Mediantequestomeccanismoicomandidell'interpretevistifinora,comedir,riesconoascrivere sullafinestraditerminale. 24

Redirezionedeiflussidicaratteri L'interprete dei comandi ha la possibilità di redirezionare l'ingresso standard, l'uscita standard o entrambi i flussi di caratteri, quando invoca un programma. L'uscita standard può essereredirezionatamediantel'operatore > (caratteremaggiore) che,postoalterminediuncomando,eseguitodalnomediun file,fainmodochetuttociòcheilcomandoscrivesulflussodi caratterirelativoall'uscitastandard(adesempio,unprogramma Javacheutilizza System.out.println)vengariversatonel fileconilnomeindicato.adesempio,ilcomando C:\[...]\Desktop>dir>lista.txt Tastiera Schermo Finestraditerminale Flussodi ingresso nonvisualizzal'elencodeifileaschermo,maloriversanelfile lista.txt.seilfilegiàesiste,vienesovrascritto. Flussodi uscita Programma L'ingresso standard, invece, può essere redirezionato mediante Figura9.Ilprogrammainteragisce l'operatore < (carattere minore) che, posto al termine di un conl'utentemedianteiflussidi comando,eseguitodalnomediunfile,fainmodocheognivolta caratteridiingressoediuscita gestitidalterminale. cheilcomandocercadileggerecaratteridall'ingressostandard (ad esempio, un programma Java che utilizza System.in o Lettore.in.leggiInt),invecedibloccarsiinattesadiinputdatastiera,ilcomandolegge manmanocaratteridalfileindicato.se,adesempio,ilfile somma.class contieneilbytecode compilatodelprogrammajavacheleggedueinteridatastieraenestampalasomma,edilfile numeri.txthailseguentecontenuto: 5 7 alloral'esecuzionedelprogrammaconinputredirezionatodatalefilerisultain: C:\DocumentsandSettings\tommaso\Desktop>javasomma<numeri.txt Inserisciunnumerointero Inserisciunnumerointero Lasommadeinumeriinseritie'12. Come l'esempio evidenzia, il programma continua a stampare sul terminale i messaggi originariamentepredispostiperinvitarel'utenteadigitareiduenumeridatastiera,ma,invecedi bloccarsiinattesadiinputdatastiera,ilprogrammaleggeiduenumeridalfilenumeri.txt. Unaterzapossibilitàconsistenellanciareduecomandicontemporaneamente,facendoinmodoche l'uscitastandarddelprimosia"connessa"all'ingressostandarddell'altro,cosicchètuttociòcheil primocomandoscrivesulflussodiuscitastandard,vengaresodisponibileinletturadalflussodi ingressostandarddelsecondocomando.questotipodiredirezionepuòessereeffettuatamediante l'operatore (barraverticale,dettooperatoredipipe),chevieneinterposto,sudiunastessarigadi comando,fraduecomandi,comein: C:\DocumentsandSettings\tommaso\Desktop>dirC:\ more dovel'elencodeifileecartelleprodottoinoutputdalcomandodirc:\vieneredirettoiningresso alcomandomoreche,invocatosenzaparametri,silimitaaleggeredall'ingressostandardcaratteri ripetendolisull'uscitastandard,fermandosiadognischermatainattesadellapressionediuntasto. Intalmodo,ancheseunprogrammaproduceunoutputconsistentedimolterighe,essopuòessere visionatounapaginaallavoltaaggiungendolasequenza" more"infondoallarigadicomando. Un utilizzo interessante dell'operatore " " si ha in combinazione con il comando sort che, invocato senza opzioni, legge righe dall'ingresso standard, e le ristampa sull'uscita standard, 25