Guida introduttiva a Cygwin | NEXT chapters | ||||
Cygwin è un software per i sistemi operativi Microsoft Windows, che simula l'ambiente dei sistemi operativi Unix-like ( Unix, GNU/Linux ) e che è composto da una serie di utility e programmi, tipicamente installati sui sistemi Unix-like. In ambiente Linux, Linux rappresenta il vero sistema operativo, la kernel: quella parte di software che si interfaccia direttamente con l'hardware. L'utente non è in grado di interagire direttamente con la kernel, mentre le applicazioni sì. Le applicazioni si interfacciano con la kernel attraverso l'utilizzo di una serie di funzioni che la kernel mette a disposizione del programmatore. Se nel vostro computer fosse installata solo la kernel, non sareste in grado di fare granchè con la vostra macchina. Una kernel deve essere affiancata da una serie di programmi ed applicazioni che svolgano il ruolo di interfaccia tra l'utente e la kernel.
Se l'utente invia un comando, un programma deve essere in grado di catturare quel comando, per inviarlo, poi, alla kernel ( per poi attendere il risultato dalla kernel ed inviare quel risultato all'utente ). GNU, acronimo per GNU non è UNIX, è un insieme di applicazioni, programmi, librerie, di questo tipo. Ecco perchè il sistema operativo viene chiamato GNU/Linux. Ebbene, Cygwin permette di eseguire i programmi, le applicazioni e le librerie GNU su un sistema operativo ( kernel ) Microsoft Windows. Quindi, Cygwin permette l'esecuzione di molte applicazioni ( non tutte quelle esistenti ) Linux sui sistemi Microsoft Windows. Un utente, con una qualche competenza nella programmazione, è in grado, grazie a Cygwin, di trasportare un programma GNU sulla piattaforma Windows, spesso solo con qualche lieve modifica. L'ambiente di sviluppo, naturalmente, è già compreso nella installazione standard di Cygwin.
Le funzioni di interfaccia tra il sistema GNU ed il sistema Microsoft Windows sono contenute all'interno della libreria La risposta più corretta a questa domanda dovrebbe essere: sì e no. Mi spiego: la guida ufficiale Cygwin si trova nel sito Cygwin. Nel sito PuntoBit, inoltre, esiste una traduzione italiana di buona parte della guida ufficiale. Ma, questa guida è più utile a coloro che vogliono programmare in ambiente Cygwin, poichè spiega in quale modo siano state risolte alcune incompatibilità tra i sistemi GNU/Linux ed i sistemi Windows, oltre ad illustrare la configurazione di Cygwin in ambiente Windows. Questa guida, quindi, presuppone una buona conoscenza dei sistemi GNU/Linux. Per quanto riguarda una guida utente dedicata a tutti coloro che si avvicinano per la prima volta al mondo GNU/Linux, questa guida non esiste e, probabilmente, non potrebbe esistere, visto che il sistema operativo GNU è una vastissima raccolta di applicazioni e utility, ciascuna delle quali è accompagnata dal suo bravo manuale utente. Ci sono alcuni aspetti di Cygwin e dei sistemi GNU, però, che un utente deve conoscere, al fine di ottimizzare la sua esperienza. Usare Cygwin significa usare due funzionalità precise:
Per installare Cygwin, è sufficiente effettuare il download del file
Ogni volta che desidererete verificare l'esistenza di nuovi package, aggiornare quelli già installati, installarne di nuovi o cancellare uno dei package già installati, dovrete semplicemente eseguire il file I componenti essenziali di Cygwin sono:
Per lavorare in Cygwin è necessario aprire una shell. Se avete creato l'icona sul desktop ( fase 9 dell'installazione ), cliccate sull'icona Cygwin. E' possibile aprire una shell anche da una finestra DOS ( emulatore di terminale Windows ). E' sufficiente spostarsi nella cartella Windows scelta come cartella "root" di Cygwin (
Da questo momento, vi troverete in un ambiente Unix-like. La shell attende solo i vostri input, cioè i vostri comandi. La shell vi presenta sempre, a video, il nome del vostro account, seguito da una chiocciola, seguita dal nome del sistema:
Il tutto, seguito dal percorso della directory in cui vi trovate. Appena entrati, vi troverete sempre nella cartella:
dove il simbolo
I sistemi GNU/Linux, infatti, creano una directory per ogni utente registrato nel sistema. Se il vostro nome utente è Utente1, il simbolo
Ma, qual'è il nome utente utilizzato da Cygwin? Ovviamente, visto che Cygwin non è un vero sistema operativo, Cygwin utilizza le informazioni del sistema operativo sottostante: Windows. Quindi, il vostro nome utente sarà quello utilizzato per l'accesso al sistema Windows. Stesso discorso vale per i permessi legati al nome utente: Cygwin utilizzerà le impostazioni di Windows.
Se, normalmente, accedete al vostro sistema Windows senza aver mai creato un account utente ( senza inserire nome utente e password ), per esempio, Cygwin userà il nome utilizzato, solitamente, dai sistemi Windows per l'account di default:
Che il sistema Cygwin non sia un reale sistema operativo e che si appoggi completamente sul sistema sottostante, Windows, è un punto essenziale da ricordare, soprattutto per tutti gli utenti che, abituati all'ambiente reale GNU/Linux, si aspettano un identico ambiente in Cygwin. Provate a leggere il file:
nel quale il sistema GNU/Linux inserisce tutte le informazioni relative a tutti gli account utente presenti nel sistema.
Il comando
dove la voce "Administrator" è riservata all'amministratore locale. In ambiente GNU/Linux, l'utente "Administrator" corrisponde all'utente "root". I campi che compongono ciascuna riga del file
Come ben spiegato nella guida ufficiale Cygwin, Using Windows security in Cygwin ( traduzione italiana: Cygwin User's Guide Parte 2: utenti, gruppi, permessi ), le informazioni contenute nel campo
Ora, l'utente Cygwin "root" agirà, all'interno del sistema Cygwin, con le stesse prerogative dell'utente Windows "Administrator", dominio o macchina FOO. Un'ultima considerazione: il file
il quale, se eseguito senza ulteriori parametri, stampa a video l'elenco degli account presenti nel sistema, anche se non riportati nel file
Per sapere di quali gruppi siete membri, eseguite il comando:
Se volete sapere il vostro nome utente, il vostro UID ( UserID ), il GID ( Group ID ) ed il nome del vostro gruppo primario, i GID ed i nomi di tutti i gruppi di cui siete membri, digitate il comando:
La directory "root" ( radice ) di un sistema GNU è:
In Cygwin, questa directory, che conterrà tutte le directory ed i file Cygwin, corrisponde, solitamente, alla directory Windows:
impostata alla fase 2 del processo di installazione. La directory root di Windows (
dove vengono montate tutte le eventuali partizioni. Questo significa che, se vi spostate nella cartella Cygwin
e chiedete un listato del suo contenuto, utilizzando il comando
troverete la cartella
e ne chiediamo il contenuto:
troveremo l'intero contenuto del disco Windows, compresa la directory
L'output che dovreste ricevere è il seguente:
Il comando
dove
Con questo comando, stiamo chiedendo a Cygwin di estrarre e stampare a video il manuale per il comando
Questa semplice schermata richiede già molte spiegazioni. Innanzitutto: il comando
che ci mostrerebbe il contenuto del file, pagina per pagina. Il reindirizzamento, invece, è un potente meccanismo che permette all'utente di inviare un flusso di dati ad un terminale diverso da quello previsto. Mi spiego: il comando appena digitato:
apre il file contenente la pagina del manuale dedicata al comando
dove la barra verticale ( pipe ) esegue esattamente l'operazione appena descritta: preleva l'OUTPUT del comando
Quei due punti significano: scrivi cosa vuoi fare adesso. Vuoi vedere la pagina successiva del manuale? Premi la barra spaziatrice. Vuoi avanzare di una sola riga? Premi il tasto Enter. Vuoi avanzare di 3 righe? Scrivi:
Vuoi indietreggiare di una schermata ( tornare alla pagina precedente )? Scrivi:
Vuoi indietreggiare di una sola riga? Scrivi:
Vuoi indietreggiare di 6 righe? Scrivi:
Vuoi cercare ( da questo punto in avanti ) una stringa particolare ( pattern ) all'interno dell'output? Scrivi:
dove "pattern" è una stringa o una espressione regolare. Vuoi cercare ( da questo punto all'indietro ) una stringa particolare ( pattern ) all'interno dell'output? Scrivi:
dove "pattern" è una stringa o una espressione regolare. Vuoi trovare le successive occorrenze di "pattern"?
Vuoi che l'output venga scritto in un file, invece che sullo schermo? Scrivi:
Vuoi uscire dal programma? Scrivi:
In realtà, il comando
Torniamo, ora, all'output del nostro comando
Questa è la sezione NAME, in cui viene descritta la funzione svolta dal comando: "display a line of text" ( mostra una riga di testo ).
Questa è la sezione SYNOPSIS, nella quale viene riportata la sintassi esatta da usare, nell'inviare quel comando alla shell. Nella sezione successiva ( DESCRIPTION ), vengono spiegate le opzioni disponibili ( SHORT-OPTION e LONG-OPTION ). Il comando
Il manuale è diviso, infatti nelle seguenti sezioni:
Quindi, il testo:
che trovate all'inizio dell'output del comando
e molti altri. Per conoscere l'ubicazione di un programma e tutte le DLL Windows che utilizza, usate il comando
Il comando
Il manuale della stessa shell, bash, restituisce moltissime utili informazioni:
Una volta aperta la prima pagina, potete scorrere tutte le pagine, oppure selezionare una singola sezione, utilizzando il comando di espressione regolare, visto in precedenza:
per avere la lista completa dei comandi built-in.
per avere una lista delle variabili di shell disponibili. Ricordate che per stampare il valore di una variabile di shell, è sufficiente usare il comando
Attenzione: ricordate sempre che GNU è "case sensitive", cioè sensibile alle maiuscole ed alle minuscole. Quindi, se nella vostra pagina di manuale, la sezione delle variabili viene intitolata con caratteri diversi, del tipo:
dovrete eseguire l'espressione regolare con il pattern corretto. Per coloro che hanno una minima dimestichezza con i comandi DOS, vediamo qualche corrispondenza tra questi ultimi ed i comandi di shell Bash, iniziando dai comandi più comuni ( il primo è il comando DOS, il secondo il comando Cygwin - GNU/Linux ):
Per avere una lista dei package installati, possiamo utilizzare, ancora una volta, il comando
Questo comando restituirà una lista di package ( comandi ) e librerie, installate in Cygwin. E' possibile far eseguire, da Cygwin, una verifica dello stato di installazione di tutti questi package:
Se venisse rilevato un qualche errore, è possibile reinstallare il package risultato incompleto. Per reinstallare un package, è necessario eseguire il file
Naturalmente, se non desiderate applicare alcuna azione, lasciate il valore "Default". L'azione impostata sul selettore di categoria, si applica a tutti i package contenuti nella categoria. E' possibile trovare un package in più categorie. Se desiderate, invece, installare singoli package, entrate nella categoria di appartenenza, cliccando sul segno +, alla sinistra del nome della categoria. Una volta aperta una categoria, vedrete la lista di package disponibili. Per ciascun package, ci sono 7 colonne, ciascuna delle quali contenente una specifica informazione sul package:
Quando selezionate un package nuovo da installare, è possibile che Cygwin selezioni automaticamente anche uno o più package addizionali: si tratta delle eventuali dipendenze: package di cui il package selezionato si serve e deve, quindi, trovare già installati. Fate attenzione a non deselezionarli. La finestra per la gestione dei package, permette anche di selezionare l'ordine in cui si desidera visualizzare i package. Di default, i package vengono presentati suddivisi per categorie. Per modificare l'ordine di visualizzazione, è sufficiente cliccare sul bottone ( selettore ) "View", in alto, sulla vostra destra. Questo selettore permette quattro modalità di visualizzazione:
Non esiste una procedura automatica per disinstallare Cygwin. Prima di procedere alla disinstallazione, è necessario chiudere tutte le applicazioni Cygwin in esecuzione in background ( service ). I service Cygwin sono applicazioni Cygwin eseguite come applicazioni Windows, vale a dire eseguite, da Windows, all'apertura del sistema operativo ( Windows ), in modalità "service" o "daemon" ( applicazioni che restano in esecuzione, in background, in attesa di un qualche comando ). Per eseguire service o daemon, in Cygwin, è necessario installare il package
per poi interrompere l'esecuzione di ciascuno dei servizi in esecuzione:
e, infine, rimuovere definitivamente il servizio:
Verificate che non siano in esecuzione
Per verificare i processi attivi, in Cygwin, usate il comando:
che elenca tutti i processi (
|
|||||
Guida introduttiva a Cygwin | The .bit guides: original contents |