Articolo pubblicato sul n. 58 di MCmicrocomputer (Edizioni Technimedia Srl - Roma) nel dicembre 1986
Amighevole: Come già anticipato lo scorso mese, all'interno di AmigaDOS esiste un editor a tutto schermo per creare e/o modificare file di testo. Abbiamo già visto come ci si accede, come sia possibile effettuare semplici modifiche al testo, nonché, ovviamente, come si esce da questo, salvando il testo creato o modificato. Ma le feature di questo strumento non finiscono di certo qui: troviamo istruzioni per spostare blocchi di testo, ricerche e sostituzioni, settare i margini sinistro e destro, una semplice tabulazione e qualcos'altro. Quindi un quasi-word-processor, meglio se usato per le piccole cose di tutti i giorni, lettera all'amico compresa. In questo stesso numero, inoltre, vi sveleremo qualche altro comando dell'AmigaDOS (ebbene sì, non sono finiti, e ne avremo ancora per un po'), e aggiungeremo qualcosa anche ai comandi visti nei numeri passati.
ED
Generalmente, per editare un file di testo, occorre innanzitutto distinguere tra l'editare un file già esistente o crearne uno nuovo: in AmigaDOS tale distinzione viene fatta automaticamente, semplicemente controllando se il file che vogliamo editare esiste già sul dischetto oppure no. In entrambi i casi, infatti, per far partire l'editor basterà digitare:
ED NomeFile
dove NomeFile è il nome del file esistente o quello che intendiamo creare. Naturalmente, in questo secondo caso, il sistema ci avvisarà con un apposito messaggio in basso allo schermo che il file non è stato trovato e quindi lo stiamo creando. Come già visto sempre lo scorso mese, per uscire dall'editor è sufficiente digitare i due tasti <ESC> X tramite i quali prima di ritornare al sistema operativo il file, se modificato, è salvato su disco col nome dato all'inizio. Se serve di editare un file molto grande, lo spazio riservato dal sistema per questo potrebbe non bastare: usando la chiave SIZE è possibile aumentare lo spazio a disposizione, ad esempio:
ED NomeFile SIZE 60000
Controllo cursore
Essendo l'editor ED a tutto schermo, possiamo muoverci all'interno del testo come natura crea ovvero coi normalissimi tasti cursore giù, su, destra e sinistra. Tra l'altro, dato che possiamo settare i margini anche per larghezze superiori a 80 caratteri gli stessi tasti cursore saranno usati per muoverci all'interno del testo, con lo schermo che diventa una finestra sull'intera pagina.
Oltre a questi, sono disponibili naturalmente backspace e delete per cancellare il carattere a sinistra o sotto il cursore, e il tasto tab per tabulazioni a spaziatura costante ma settabile dall'utente, come vedremo. C'è da dire, inoltre, che quando si digita qualcosa si è sempre in modo insert, return compreso, che ha quindi l'effetto di spezzare una linea di testo in due se dato tra due caratteri contigui.
Immediate commands
Esiste una prima manciata di operazioni direttamente eseguibili alle quali si accede facendo precedere un determinato tasto dal tasto CTRL (control). Ad esempio, se vogliamo inserire una linea basta la sequenza CTRL A, analogamente per delet-arla useremo CTRL B. Per far scrollare rapidamente il testo in giù o in su esistono le sequenze CTRL D e CTRL U, mentre un rapido balzo al primo carattere dello schermo o all'ultimo si ottiene con la sequenza CTRL E. In maniera analoga è possibile schizzare a inizio o fine riga con CTRL ]. Il movimento cursore a passi di una parola alla volta, avviene con CTRL R e CTRL T e per cancellare dal cursore fino al termine della linea o la sola prossima parola sono sufficiente rispettivamente CTRL Y e CTRL O. Sono rimasti CTRL F, CTRL V e CTRL G i quali servono, nell'ordine, a scambiare minuscole con maiuscole e viceversa, a fare un verify dello schermo (se abbiamo fatto un po' di cose sporche) e infine a ripetere l'ultimo comando esteso impartito.
Extended Commands
Oltre ai comandi appena mostrati, l'editor ED dispone di un ulteriore insieme di comandi estesi, che possono essere invocati tramite il tasto <ESC>. Fra questi troviamo ad esempio la possibilità di copiare blocchi di linee in vari punti del nostro testo. Per farlo occorre innanzitutto definire il blocco, posizionando il cursore sulla prima linea e digitando <ESC> BS (block start) per poi posizionarci sull'ultima e premere i tasti <ESC> BE (block end). Fatto questo, per copiare il blocco così definito in un altro punto sarà sufficiente andare lì col cursore e digitare <ESC> IB (insert block). Se invece vogliamo cancellare un blocco di linee di testo, dopo averlo definito come sopra, basterà digitare <ESC> DB (delete block). Analogamente possiamo salvare un blocco di linee col comando:
<ESC> WB/nomefile/
dove WB sta appunto per write block e di seguito a questo è indicato tra due slash il nome che intendiamo dare al file creato su disco.
Esistono poi alcuni comandi estesi per effettuare operazioni di ricerca e/o sostituzioni di stringhe. Ad esempio il comando per la ricerca è :
<ESC> F/stringa/
dove F sta per find e stringa (sempre tra slash) è la stringa da cercare a partire dalla posizione del cursore fino a fine testo. Esiste anche la possibilità opposta di cercare dal cursore a salire sino a inizio testo con la sequenza:
<ESC> BF/stringa/
(BF sta per backwards find). Si noti che nell'operazione di ricerca, per default viene notata la differenza tra maiuscole e minuscole: per ovviare a questo, qualora non fosse desiderabile, è disponibile il comando <ESC> UC da far precedere all'operazione di find o backwards find. Per ripristinare la distinzione sarà sufficiente digitare <ESC> LC. Per le operazioni di sostituzione stringa abbiamo due possibilità: <ESC> E e <ESC> EQ : la seconda chiede conferma prima di sostituire. In tutt'e due i casi la sintassi è assai semplice:
<ESC> E/stringa1/stringa2/
(analoga per EQ) dove stringa1 è la stringa da cercare nel testo e stringa2 è la nuova da sostituire.
Per tutt'e quattro i comandi visti ora, F, BF, E, EQ, la ricerca e/o sostituzione riguarda solo la prima occorrenza trovata: per agire invece su tutte le occorrenze esistono due modi, manuale e automatico. Manualmente si procede digitando, dopo aver dato return al comando esteso, CTRL-G ogni volta che si desidera, avendo detto che tale sequenza ripete l'ultimo comando impartito. Se invece desideriamo sostituzioni fino a fine testo (con o senza conferma) possiamo usare il prefisso RP (repeat command) che ripete automaticamente il comando fino a quando non si verifica un errore, nel nostro caso non vi sono più occorrenze della stringa data. Scriveremo dunque:
<ESC> RP E/stringa1/stringa2/
oppure:
<ESC> RP EQ/stringa1/stringa2/
Per quanto riguarda tutti gli altri extended commands non essendoci particolari da sottolineare, vi rimandiamo alla tabella 2 mostrata a pagina___.
Tornando all'AmigaDOS
Questo mese vedremo ben 9 nuovi comandi AmigaDOS e daremo un po' di note di aggiornamento circa i comandi visti sui numeri scorsi: nuove opzioni, varianti, formati diversi. Abbiamo già detto che tramite il comando RUN è possibile richiedere multitasking al livello di AmigaDOS: basta infatti digitare "RUN programma" per avere l'effetto di lanciare il programma indicato parallelamente al CLI che dunque resta libero per accettare nuovi comandi. Esiste anche un altro modo: richiamare direttamente un altro CLI e disporre di una nuova finestra per farci ciò che ci pare. Per farlo è disponibile il comando NEWCLI (foto 1) che apre una finestra di piccole dimensioni a circa metà schermo. Possiamo ora clickare su questa, modificarne le dimensioni, la posizione o la priorità, proprio come faremmo da workbench. Si noti il prompt 2> che sta appunto a indicare che è attivo il task 2. A questo punto possiamo impartire comandi sia nella prima che nella seconda finestra ricordandoci di clickare sempre sulla finestra interessata per renderla attiva per l'input. E possiamo anche divertirci un po': ad esempio si può richiedere in una finestra la directory del disco 0 e nell'altra quella del disco 1. Magari velocemente in modo da vedere lo scroll parallelo nelle due finestre. Se poi vogliamo tentare Amiga con prodezza ancor più complesse, possiamo provare a chiedere (relativamente allo stesso drive!!!) ad esempio la directory di tutto il disco e magari una subdirectory di questa o il Type (vedi dopo) di un file di caratteri. è proprio il massimo: anche i drive sono gestiti secondo modalità di multitasking. Più processi (vedi appunti di informatica di qualche MC fa) fanno richiesta di risorsa (il drive) e un processo gestore di questa accontenta un po' tutti, senza far aspettare nessuno più di tanto. A Informatica queste cose le vediamo solo sui libri e sulle lavagne dei prof e, scusate se è poco, vedendo una cosa simile sulla mia scrivania mi si è accapponata la pelle. Ma andiamo oltre. Un comando assai utile è TYPE (foto 2 e 3) e, come abbiamo già accennato, serve per accedere ad un file da disco e leggerne il contenuto su video, in forma di caratteri se di caratteri si tratta o direttamente in valori esadecimali selezionando l'opzione h (sta per hex). Quindi scriveremo:
TYPE NomeFile
oppure:
TYPE NomeFile OPT H
Oltre al comando DIR, per vedere cosa contiene un dischetto, è disponibile il comando LIST (foto 4) che mostra oltre ai nomi dei file anche alcune informazioni riguardanti questi. Ad esempio la lunghezza in byte, la data e l'ora dell'ultima modifica effettuata, lo stato dei diritti d'accesso a quel file e... basta. Per quanto riguarda ora e data, se si vuole usufruire di questa informazione con l'uso di LIST, occorre naturalmente settarla ogni volta che si inizia una sessione di lavoro. Per fare questo da CLI esiste l'apposito comando DATE che accetta giorno mese e anno nel formato classico GG-MMM-AA (per il mese le prime tre lettere del nome inglese = JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC) e l'ora nel formato HH:MM. Quindi scriveremo ad esempio:
DATE 10-dec-86 DATE 11:30
o direttamente:
DATE 10-dec-86 11:30
E' importante notare che è possibile anche inserire la data indicando il giorno della settimana (sempre in inglese) o addirittura indicando le parole inglesi Tomorrow per domani Yesterday per ieri e Today per oggi. Tutto ciò ovviamente ha senso se abbiamo settato la data per l'ultima volta non più di 6 giorni fa meglio se il giorno prima, in modo da scrivere direttamente "DATE tomorrow" e non pensarci più. Se desideriamo inserire un commento a un file possiamo usare il comando FILENOTE (foto 5) nella sintassi:
FILENOTE NomeFile COMMENT "commento massimo 80 car."
Quando chiederemo il LIST (foto 6) vedremo tale commento di seguito al file indicato con NomeFile. Qualcuno, senz'altro affascinato da tutte queste amighevoli feature, si sarà anche chiesto come fare per formattare un disco: la risposta è semplice, basta il comando FORMAT. Per l'uso non vi sono problemi, se ad esmpio vogliamo formattare un disco posto nel drive esterno e vogliamo dare a questo il nome Pippo, scriveremo:
FORMAT DRIVE DF1: NAME "Pippo"
per formattare un disco nel drive interno basterà cambiare DF1 con DF0 e il gioco è fatto. Terminiamo la nostra carrellata con tre comandi un po' più potenti: procediamo in ordine crescente. Il primo, JOIN, serve per congiungere file. Si indicano i file da unire (fino 15 in un solo colpo) più il file distinazione che conterrà la loro unione. Quindi se dobbiamo congiungere file1, file2, file3 e file4 e il nuovo file fi chiama Pippo, scriveremo:
JOIN file1,file2,file3,file4 TO Pippo
Col comando SEARCH possiamo ricercare una qualsiasi stringa in tutto il dischetto, file per file. Possiamo inoltre scegliere se limitare la ricerca alla directory corrente, escludento ovvero i file raggruppati in subdirectory o appartenenti a directory padre di quella corrente. Esempi:
SEARCH FROM Documenti "lettera"
ricerca nella directory Documenti la stringa "lettera"
SEARCH FROM Documenti "lettera" ALL
estende la ricerca anche a tutte le subdirectory della directory Documenti.
SEARCH DF0: "gatto" ALL
Ricerca in tutto il dischetto la parola "gatto".
Il comando SORT
Con questo comando è possibile ordinare alfabeticamente un file di testo, i cui elementi sono separati da un Return. Ad esempio un file preparato con l'editor ED. Tra le limitazioni il fatto che il sort avviene in memoria (quindi ci deve "stare") e che non è possibile riordinare un file e dare a questo lo stesso nome del sorgente. Unica grazia concessa da mamma Commodore il fatto di poter indicare da quale carattere iniziare i confronti, registrazione per registrazione. Se abbiamo su disco il file Nomi, contenente una manciata di nominativi e relativo telefono, tutti separati da un return, possiamo ordinarli alfabeticamente col comando:
SORT Nomi TO NomiInOrdine
il sistema creerà il file NomiInOrdine nel quale scaricherà i nomi ordinati alfabeticamente. Se invece, sempre ad esempio, vogliamo ordinare per numero telefonico, e nelle nostre registrazioni tale informazione si trova a partire dal ventesimo carattere, scriveremo:
SORT Nomi TO NomiInOrdine COLSTART 20
Note di aggiornamento
Dedicheremo quest'ultimo paragrafo ai comandi visti sui numeri scorsi, aggiornandoli circa tutto quanto non abbiamo potuto dire per ragioni di spazio (bugia: è stata pura distrazione, ndr). Il comando DIR, ad esempio, oltre al modo di funzionamento classico (io batto dir e "lui" mi dice cosa c'è sul disco) dispone di tre opzioni: interactive, all e interactive-all. Per selezionarla basta aggiungere la parola chiave OPT seguita rispettivamente da I, A o AI. Ovvero scriveremo:
DIR OPT I oppure DIR OPT A oppure DIR OPT AI
La prima opzione mostra il nome di un file (o di una directory) alla volta seguita da un punto interrogativo. Se si tratta di una directory possiamo battere E per esplorarla, sempre in modo interattivo. Oppure, se si tratta di un file di caratteri, possiamo battere T per vedere scorrere sullo schermo il suo contenuto. Ancora, possiamo concellarlo scrivendo DEL (tre caratteri per non sbagliare) o battere B per tornare alla directory padre. Battendo, di contro, return e basta, si ha l'effetto di passare al file successivo. Infine battendo Q si esce dal comando, ritornando al prompt dell'AmigaDOS. Il comando DELETE, oltre alla specifica ALL che permette di cancellare una intera subdirectory, permette anche di indicare la parola chiave QUIET con la quale avremo l'effetto di non vedere la lista dei file cancellati man mano che vengono fatti "fuori". Inoltre, se si tratta di cancellare un insieme di file e questi non costituiscono una directory, è possibile indicarli tutti insieme di seguito al comando DELETE semplicemente lasciando uno spazio come delimitatore. Se ad esempio vogliamo cancellare i file A1, B3, SQ, e E3S scriveremo direttamente:
DELETE A1 B3 SQ ES3
Anche per il comando RUN, possiamo indicare una lista di programmi da mandare in esecuzione. Stranamente in modo sequenziale: quando è terminato il primo si passa al secondo e così via. Per separare i vari nomi di programma si sua la coppia +Return (ovvero il tasto "più" e il tasto "return") mentre dopo l'ultimo nome batteremo semplicemente return. Immaginiamo di non aver cancellato i file di sopra e che questi siano file eseguibili. Volendoli mandare in esecuzione come sopra, scriveremo:
RUN A1 + [return] B3 + [return] SQ + [return] ES3 [return]
Per il comando FAULT visto lo scorso mese, vale quanto detto di DELETE: possiamo direttamente chiedere una lista di errori, ad esempio:
FAULT 103 105 111 121
Del comando CD è stato omesso il fatto che la directory radice di ogni disco può essere chiamata, per brevità, semplicemente col carattere ":" (duepunti) così, per tornare in un sol colpo alla radice possiamo scrivere: CD :
analogamente se siamo sperduti in qualche ramo e vogliamo catapultarci nella directory C della radice, scriveremo:
CD :C
Infine, per quanto riguarda il comando PROMPT, possiamo fare riferimento al numero CLI attivo in quel momento e digitare:
PROMPT %N>
in modo che se stiamo nel CLI 1 avremo prompt 1>, se siamo nel CLI 2 avremo 2> e così via. In parole povere, %N sta appunto per numero task. Arrivederci. Impaginato originale... Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui |