DI RECENTE ACCOMAZZI...
CERCA
» Ricerca avanzata
MAILING LIST

Se vuoi iscriverti alla mailing list di Luca Accomazzi inserisci qui la tua mail:

Vuoi ricevere i messaggi immediatamente (50 invii / giorno) o in differita e in gruppo
(due invii / giorno)?

» Vuoi saperne di più?

I file messi in fila

Il Terminale di Mac OS X è uno strumento che, come abbiamo visto nei mesi scorsi, racchiude molti strumenti anche preziosi. Il campo di applicazione più fertile però è certamente quello che ha a che fare con i documenti. In questo articolo ci concentreremo specialmente sulle istruzioni che hanno senso per documenti testuali, ma vedremo anche comandi di utilizzo generico.


L’ABC

Aprite il Terminale, che troverete nella cartella Utility del vostro disco. Quando la finestra con la scritta di benvenuto è apparsa potete cominciare a digitare comandi. Ce ne sono due che dobbiamo imparare a usare prima di cominciare: ls e cd. Il primo serve a LiStare i contenuti di una cartellina (o directory, se preferite). Provate a scrivere ls e vedrete apparire un elenco dei contenuti del vostro “inizio” (la cartella che ci apre quando cliccare l’icona della casetta nelle finestre di Finder). Scrivendo ls -al (LiSt All in Long format, cioè lista tutti i file in formato lungo) il Terminale ci mostra anche i documenti invisibili che normalmente Finder ci nasconde. Per esempio, uno dei documenti invisibili di cui scoprirete l’esistenza si chiama “.CFUserTextEncoding” e registra le vostre preferenze linguistiche. Se lo aprite con un programma che permette di selezionare i file invisibili ci troverete probabilmente dentro la scritta “0:4”. Zero rappresenta l’alfabeto latino e 4 la lingua italiana.
Il comando cd si utilizza per Cambiare la Directory in cui ci troviamo, cioè spostarci altrove. Provate a scrivere “cd Desktop” e subito dopo a impartire di nuovo il comando ls -al: questa volta vedrete listati a video tutti i documenti che tenete sulla scrivania. Se utilizzando il comando cd vi perdete nei meandri del vostro disco rigido tenete presente un altro utile comando: pwd e cioè Print Working Directory (per chi non pratica l’inglese, significa “stampa il nome della cartella corrente”).


Dimmi tutto di te

Quando usiamo il comando ls -al vediamo apparire molte informazioni su ogni singolo documento. Alla sinistra ci sono i cosiddetti flag, cioè l’indicazione di chi è autorizzato a leggere e scrivere il documento. È la medesima informazione che Finder ci restituisce quando chiediamo le Informazioni su un file premendo Mela-I, nella sezione “Proprietario e Permessi”. Confrontate la finestra del Terminale e quella del Finder per capirne l’esatta corrispondenza. Il Terminale, però, ne sa una più del Finder: ci arriveremo tra un attimo.
Il comando ls può anche darci informazioni su un singolo documento: basta indicarlo di seguito. Su un Macintosh, questa indicazione si può ottenere semplicemente trascinando l’icona del documento che ci interessa. Per esempio: digitate “ls -alT “. Non copiate anche le virgolette e state molto attenti alla spaziatura: c’è uno spazio bianco tra ls e -lT e un altro spazio dopo la T maiuscola. A questo punto cliccate su un documento (o una cartella) qualsiasi e trascinatelo sopra la finestra del Terminale, poi lasciatelo andare. Vedrete apparire il suo nome completo, preceduto dall’indicazione delle cartelle che lo contengono. A questo punto premete in tasto di Invio sulla tastiera.
Vedrete apparire una riga di indicazioni a proposito del documento.
Notate: l’ora di modifica appare completa di secondi, mentre Finder mostra solo ore e minuti. C’è di più: riprovate scrivendo stavolta “ls -alTu ” (c’è in più una “u”, che sta per “usato”). Il Terminale risponde comunicandovi la data e l’ora in cui il documento è stato aperto per l’ultima volta. Si tratta di una informazione che Finder non sa mostrare.


Trovate la differenza

Vediamo adesso un bel mucchio di comandi utili quando lavoriamo con documenti di testo ma di qualche utilità anche con gli altri tipi di file. Il comando cmp (contrazione di “compare”) può venire utilizzato per paragonare due documenti. Per utilizzarlo si scrive “cmp “ (non dimenticate lo spazio bianco in fondo), poi si trascina un documento, un altro spazio bianco, il secondo documento, Invio. Se i documenti sono identici a video non appare nulla. Se sono differenti invece appare una riga di testo che spiega in quale posizione c’è la differenza (questa informazione è utile, appunto, lavorando con documenti di testo puro).
Si può fare anche di meglio usando il comando diff -u (contrazione di “differenza”). L’utilizzo è identico a quello di cmp: al comando diff -u vanno fatti seguire due documenti separati da spazio. Diff risponde con un elenco di tutte le differenze. Per esempio, diff potrebbe rispondere alla nostra richiesta mostrando un pezzetto di documento dove ci sono differenze, etichettando con un segno meno i punti aggiunti nel primo documento e con il segno più il testo aggiunto solo nel secondo.
C’è una opzione che è particolarmente utile quando paragoniamo tra loro due versioni di una pagina web: scrivendo diff -bB ordiniamo al Terminale di ignorare le differenze insignificanti, e cioè gli spazi bianchi e le andate a capo. Un’altra opzione interessante è --ignore-case (attenzione: prima della parola “ignore” ci sono due segni “meno” consecutivi) che ordinano al Terminale di ignorare le differenze tra lettere minuscole e maiuscole. Infine, aggiungendo --side-by-side i due documenti vengono stampati affiancati (allargate a tutto schermo la finestra del Terminale per vederli bene).


Programmi speciali per momenti speciali

Vi hanno infilato un AS/400 in azienda in un momento in cui non potevate aprire bocca? Il comando “cut” può aiutarvi a trattare quegli assurdi documenti che il grosso calcolatore IBM e i suoi contemporanei producono con facilità, dividendoli per colonne e separando la porzione che vi serve di più. Per la sintassi, scrivete “man cut” nel Terminale.
Avete di fronte un enorme documento di testo perché un qualche programma continua ad aggiungere informazioni in coda? Succede spesso, per esempio quando abbiamo un calcolatore che contiene il nostro sito web. Il comando tail può venire usato per vedere le ultime righe aggiunte in coda a quel documento. Per esempio provate a scrivere “tail /private/var/log/httpd/access_log” e vedrete le ultime dieci pagine (o immagini) che il vostro Mac OS X ha inviato sul Web. Naturalmente, se tenete spenta la Condivisione web in Preferenze di sistema / Condivisione il risultato non sarà per nulla interessante...
Infine, un comando utile per i curiosoni. Nel Terminale scrivete strings, uno spazio, e poi trascinate sulla finestra l’icona di una grande applicazione, come per esempio Microsoft Excel, oppure un grande documento. Vedrete apparire tutte le scritte che il programmatore ha inserito nel corpo del programma o che la applicazione creatrice ha inserito nel documento.


Unix senza Terminale

Sin qui noi abbiamo sempre utilizzato il Terminale per impartire ordini alle fondamenta Unix del sistema operativo Mac OS X. Ci sono però numerose altre applicazioni che consentono di ottenere lo stesso effetto e che qualcuno potrebbe trovare più interessanti.
Per la maggior parte si tratta di sostituti del Terminale fornito da Apple, che aggiungono alcune funzionalità. È questo, per esempio, il caso di iTerm (scaricabile gratuitamente dal sito iterm.sourceforge.net), un progetto Open Source.
In alcuni casi però si tratta di applicazioni genuinamente differenti che permettono applicazioni nuove e originali. Per esempio: BBEdit è una applicazione giustamente famosa per chi vuole editare testo puro, senza formattazione, come è il caso di programmatori, degli autori di HTML, dei sistemisti e di alcune altre categorie specializzate. L’ultima versione di BBEdit permette di creare documenti in cui i comandi Unix vengono interpretati e il loro risultato appare dentro la finestra corrente.
Un’altra fonte di applicazioni personalizzate molto interessante è AppleScript, che può venire utilizzato per pilotare il Terminale o BBEdit. Infine, ricordiamo che un documento di testo che contiene una istruzione comprensibile per il Terminale verrà automaticamente eseguito se il suo nome termina con la estensione “.command”: una possibilità potente e flessibile di cui però qualche malintenzionato potrebbe approfittarsi (le possibilità del Terminale sono vaste, come sappiamo): sarà dunque prudente non aprire mai un documento “.command” che ci viene spedito per posta elettronica.


Questo articolo fa parte di uno dei miei percorsi. Se vuoi saperne di più su questo argomento, visita il resto del percorso cliccando qui.