Linux Base - Tips, Tricks & Mix
Edizioni ByteMan



Primi passi


La prima schermata

A questo punto Knoppix 3.8 è pronto per lavorare e mostra nella sua schermata iniziale il navigatore Konqueror con il quale è possibile sia esplorare il contenuto dell'albero delle directory sia navigare in Internet (se c'è una connessione attiva).



Per il momento possiamo però chiudere questa finestra ed analizzare invece le modalità base di utilizzo di Linux. Diciamo subito che per padroneggiare questo sistema operativo è necessario imparare ad effettuare le varie operazioni sia in modalità grafica sia in modalità testo.



La modalità grafica

Dalla modalità grafica si opera utilizzando le icone indicate in figura:





La modalità testo

L'altro modo per lavorare in Linux utilizza la modalità testo tramite un terminale non grafico. Occorre allora sapere che un terminale Linux è un luogo dove effettuare l'input ed ottenere l'output del sistema e di solito comprende almeno una tastiera ed un monitor. I sistemi Linux sono configurati in modo da avere un certo numero di console virtuali a cui si accede dal medesimo terminale di console fisico. Queste console sono identificabili tramite i tasti funzione: F1, F2, ..., Fn. Knoppix utilizza la console F7 per lavorare in modalità grafica ed è, appunto, su questa console che ci troviamo subito dopo l'avviamento del sistema.



Quindi le operazioni di avvio avvengono su F1, mentre su F7 viene attivato il server X per lavorare in modalità grafica. Tutte le altre console, dalla F2 alla F6 sono a disposizione per altri lavori. Il passaggio da una console all'altra si effettua con la combinazione di tasti:

Si noti che lavorando con terminali tty o vc si può anche utilizzare la combinazione Alt-Fn.


Si sottolinea che non si tratta di semplici finestre per cui se si blocca il terminale video si perde il controllo del sistema, ma di autentici terminali virtuali. In sostanza, ammesso che si blocchi F7 per una qualsiasi ragione, è possibile riprendere il controllo del sistema da una delle altre console a disposizione, per esempio la F2, digitando Ctrl-Alt-F2 effettuando il login ed intervenendo nella maniera più opportuna, in modalità testo. E' uno dei motivi per cui si raccomanda vivamente di imparare ad operare sia in modalità grafica sia in modalità testuale.



Spegnere il sistema

Questa azione va sempre fatta con la massima attenzione, la si effettua con 2 modalità diverse:

    shutdown -h now                 (spegnere)
    shutdown -r now                 (riavviare)
    Ctrl-Alt-Canc                   (riavviare)








Tips & Tricks - Autocompletamento e storico dei comandi


Autocompletamento

Una delle caratteristiche più belle della shell è l'autocompletamento. Quando occorre scrivere un comando o un nome di un file molto lunghi, si cominciano a scrivere le prime lettere e poi si preme TAB (una o 2 volte).
Se c'è solo un comando (o un file, dipende dal contesto) che inizia con quelle lettere, automaticamente il nome verrà completato.
Se invece ci sono più possibilità e quindi il completamento non è unico, verranno mostrate le varie possibilità, allora specificando qualche ulteriore lettera si toglierà l'ambiguità ed il comando verrà definitivamente completato.
Nota: Non si può ovviamente pretendere che la shell legga nel pensiero. Se si sta creando un nuovo file di nome finchelabarcavalascialaandare non si può sperare di scrivere fin premere TAB ed ottenerne l'autocompletamento!!


Storico

Lo storico dei comandi: usando le frecce in su e in giu si possono scorrere i comandi precedenti.
Mentre il comando history consente di avere una lista,numerata progressivamente, degli ultimi comandi effettuati. Digitando !n seguito da invio si richiede nuovamente il comando corrispondente.

history

!25                      ripete il comando n.25








Help - Aiuto - HowTo

Certamente lo studio e la conoscenza di Linux richiedono un impegno non indifferente e tra le difficoltà, paradossalmente, c'è quella dell'eccesso di informazioni tra cui cercare aiuto e chiarimenti durante il proprio percorso di apprendimento. E' importante quindi avere dei punti di riferimento sicuri, all'interno del proprio sistema, il luogo più comodo dove ricercare documentazione, ma forse proprio per questo meno ovvio e quindi spesso ignorato.



man

man, abbreviazione di manual, e' la forma tradizionale della documentazione in linea per i sistemi operativi Unix e Linux. Le man pages sono file formattati in modo speciale, ne esistono per la maggior parte dei programmi e vengono distribuite assieme al software. Sono scritte originariamente in inglese, ma se la distribuzione in uso ha la localizzazione si possono consultare nella propria lingua. Per l'italiano, in distribuzioni basate su Debian (Knoppix, Kanotix, Mepis, Ubuntu,...) è sufficiente installare il paccheto manpages-it
Come già visto nel seminario 1, digitando man nomecomando verra' visualizzata la pagina del manuale relativa a nomecomando.

Poiche' sono veramente molte, le pagine del manuale vengono raggruppate in sezioni numerate. Questo sistema e' utilizzato da cosi tanto tempo che spesso si incontreranno dei riferimenti con l'indicazione man(1) a significare che il comando è documentato nella sezione 1. Specificare la sezione nella quale man ricerca la pagina da visualizzare e' utile nel caso di argomenti multipli con lo stesso nome.

Sezione 1      comandi utente (soltanto l'introduzione)
Sezione 2      chiamate di sistema
Sezione 3      chiamate delle librerie C
Sezione 4      dispositivi (es.: hd, sd,)
Sezione 5      formati dei file e protocolli (es.: wtmp, /etc/passwd, nfs)
Sezione 6      giochi (introduzione)
Sezione 7      convenzioni, pacchetti macro, etc. (es.: nroff, ascii)
Sezione 8      amministrazione di sistema (soltanto l'introduzione)
Sezione 9      kernel

Oltre che dalla linea di comando, se si utilizza come browser Konqueror, è possibile visualizzare la pagina man di programma scrivendo nella barra degli indirizzi #programma oppure man:/programma. Scrivendo invece solamente # oppure man:/ verrà visualizzato il menu generale delle pagine man, nel quale si potrà navigare, molto più comodamente, seguendo i link tra le varie sottosezioni.





info

Un'altra fonte di informazioni, prevalentemente in lingua inglese, è accessibile dal proprio sistema tramite il comando info nomecomando, dove nomecomando è il nome del programma di cui si vuole visualizzare la pagina info.
Se si utilizza come browser Konqueror, è possibile visualizzare la pagina info di un programma scrivendo nella barra degli indirizzi info:/programma. Scrivendo invece solamente info:/ verrà visualizzato l'elenco principale delle pagine info.



doc

Altra documentazione generica dei programmi installati, solitamente disponibile solo in inglese, la si può trovare in differenti directory a seconda della distribuzione. Generalmente si trova comunque nella directory /usr/share/doc/ oppure in /usr/doc/.



-h    --help

Innumerevoli comandi hanno la possibilità di richiamare un piccolo help integrato nel comando stesso, semplicemente scrivendo il comando seguito da --help o -h.
Ricordiamo che in Linux le opzioni di ciascun comando vengono contrassegnate con un segno - (meno) seguito da una lettera. Con il passare del tempo questo sistema, seppure molto veloce, ha reso piuttosto criptiche alcune righe di comando a causa dell'eccesso di opzioni. Per motivi di chiarezza, non di velocità naturalmente, sono state introdotte le opzioni lunghe contrassegnate da -- (meno meno) seguito da una parola.
Per le applicazioni in ambiene grafico è solitamente previsto un menu chiamato Aiuto o Help che contiene informazioni sul programma in uso. Si noti che se è presente solo la voce Help invece della voce tradotta (Aiuto) è probabile che il programma non sia stato tradotto o che manchi un aiuto in linea in italiano o che non sia presente una corretta localizzazione italiana del sistema.



HOWTO

Si tratta di guide monografiche riguardanti vari aspetti del sistema GNU/Linux, del Software Libero e dell'informatica in generale. A seconda della distribuzione utilizzata è possibile trovarli in posizioni diverse del proprio filesystem, in inglese, ma spesso anche in italiano se è stato installato il pacchetto opportuno e se il documento è stato tradotto. Per Debian e distribuzioni basate su Debian esistono i pacchetti doc-linux-it, in formato HTML tradotti in italiano, e doc-linux-it-text, in formato testo.
Una volta installati tali pacchetti, le traduzioni italiane degli HOWTO saranno disponibili rispettivamente nelle directory /usr/share/doc/HOWTO/it-html/ e /usr/share/doc/HOWTO/it-txt/; se invece si installa la versione inglese degli HOWTO, in HTML attraverso il pacchetto doc-linux-html o in testo semplice attraverso il pacchetto doc-linux-text, questi saranno disponibili rispettivamente nelle directory /usr/share/doc/HOWTO/en-html/ e /usr/share/doc/HOWTO/en-txt/.



whatis

Cerca la parola chiave (keyword) specificata all'interno del database whatis. Produce una descrizione molto breve dei comandi di sistema, una sorta di guida di riferimento tascabile per i comandi.
Equivalente a man -f

whatis nasm
nasm (1)             - the Netwide Assembler - portable 80x86 assembler

man -f nasm
nasm (1)             - the Netwide Assembler - portable 80x86 assembler



apropos

Analogo a whatis, ma cerca stringhe e non parole complete, di conseguenza può dare risultati più articolati.
Equivalente a man -k

apropos asm
nasm (1)             - the Netwide Assembler - portable 80x86 assembler
ndisasm (1)          - the Netwide Disassembler - 80x86 binary file disassembler

man -k asm
nasm (1)             - the Netwide Assembler - portable 80x86 assembler
ndisasm (1)          - the Netwide Disassembler - 80x86 binary file disassembler



help

Brevi informazioni sui comandi interni, in lingua inglese, possono essere ottenute tramite il comando help. Digitato senza parametri fornisce una lista dei comandi interni, aggiungendovi il nome del comando desiderato ne illustra brevemente la funzione.

help              Lista dei comandi interni
help alias        Informazioni sul comando interno alias

Il secondo comando produce in output quanto segue:

alias: alias [-p] [name[=value] ... ]
    `alias' with no arguments or with the -p option prints the list
    of aliases in the form alias NAME=VALUE on standard output.
    Otherwise, an alias is defined for each NAME whose VALUE is given.
    A trailing space in VALUE causes the next word to be checked for
    alias substitution when the alias is expanded.  Alias returns
    true unless a NAME is given for which no alias has been defined.








Linux/Windows



Grazie a Linux e al progetto GNU è possibile utilizzare produttivamente il proprio computer senza spendere un euro in licenze. La maggior parte dei più diffusi programmi Windows ha una propria controparte gratuita in GNU/Linux, inoltre quando si procede all'installazione del sistema operativo spesso si installano automaticamente tutti i programmi applicativi presenti nella distribuzione.
Ecco una prova comparativa dei programmi disponibili sulle due piattaforme Linux e Windows che mette in risalto il costo delle licenze; i prezzi visualizzati sono stati tratti da un noto catalogo di prodotti informatici (catalogo on line Misco dicembre 2005), e sono stati visualizzati in euro comprensivi di IVA.


 LinuxWindows ClientWindows Server
Sistema Operativo Mandriva Linux 10.1
(Kernel 2.6)
0 €
MS Windows XP
Home Edition w/SP2
286,80 €
MS Windows Server 2003
Standard Edition w/SP1
1438,80 €
Suite ufficio Open Office 2.0
0 €
MS Office OneNote 2003
122,40 €
MS Office InfoPath 2003
270 €
Elaborazione immagini The GIMP
0 €
MS Office Publisher 2003
214,80 €
Adobe Photoshop CS2 9.0
1.066,80 €
Browser Web Mozilla Navigator
0 €
MS Internet Explorer 6
0 €
MS Internet Explorer 6
0 €
Web Editor Quanta Plus 3.4
0 €
MS Office FrontPage 2003
138,00 €
MS Office FrontPage 2003
138,00 €
Posta Elettronica Mozilla Mail
0 €
MS Outlook Express
0 €
MS Outlook Express
0 €
Web Server Apache
0 €
  MS IIS (incluso in 2003 Server)
0 €
Data Base Server MySQL
0 €
MS Office Access 2003
310,80 €
MS Office Access 2003
310,80 €
TOTALE:
0 €
1072.80 €
3224,80 €


Come è evidente dal totale, un tipico sistema Windows con Office ed i principali programmi di produzione per la grafica ed il Web, viene a costare, di solo software, a seconda delle configurazioni (Client/Server)

oltre 1.000 Euro  oppure  oltre 3.000 Euro

a meno di non volere rischiare di infrangere le rigidissime leggi sulla pirateria del software.

Viceversa su piattaforma GNU/Linux le licenze sono tutte gratuite, l'unico costo è quello del supporto, ovvero i CD contenenti la cosiddetta distribuzione, che possono essere tranquillamente copiati da quelli di un amico senza infrangere nessuna licenza (in base alla GPL) o acquistati in edicola insieme ad una rivista, o scaricati da internet.
























Altri Editor

Giunti a questo punto del corso base Linux, ci si è ormai resi conto che i file di testo costituiscono la vera ossatura per l'amministrazione del sistema. Uno dei problemi maggiori che incontra chi si avvicina a un sistema Unix è la difficoltà nell'uso dei programmi tradizionali per la creazione e la modifica di file di testo. Questi richiedono la conoscenza di comandi espressi attraverso combinazioni di tasti, senza avere a disposizione un menu e senza poter usare, spesso, i tasti funzionali.

Abbiamo già visto, all'inizio del corso, un paio di editor di testo: kwrite che funziona in ambiente grafico, e vim che, pur funzionando a dovere in ambiente non grafico, non gode però della simpatia di molti utenti novizi o provenienti dal mondo Dos/Windos. Vogliamo quindi occuparci di altri editor, alternativi e semplici, che possano comunque ben assolvere il loro compito anche in situazioni in cui la grafica non è presente.
Evitiamo di parlare di emacs in quanto oltre ad essere ben documentato in tutto internet non è certamente un piccolo strumento e quindi esula dal nostro interesse.
Ne abbiamo scelto tre, tra i tantissimi: joe, nano, mcedit.

Per impostare il proprio editor di default assicurarsi che la variabile d'ambiente EDITOR sia impostata correttamente, per esempio con una di queste righe:

export EDITOR=vim
export EDITOR=emacs
export EDITOR=joe
export EDITOR=mcedit
export EDITOR=nano

Ciascun comando potrebbe essere dato anche in due tempi:

EDITOR=xyz
export EDITOR

Attenzione alle stringhe "EDITOR=xyz", NON devono contenere spazi !

Verificare l'esito dell'impostazione con il comando:

echo $EDITOR

si otterrà in risposta il nome dell'editor che è stato impostato.

La funzione export rende permanente l'assegnazione che altrimenti varrebbe per la sola sessione in corso.



joe

Nel corso di una delle mie prime installazioni di Linux ho avuto modo di imbattermi in questo piccolo editor, molto simile a Wordstar (presente anche in TurboPascal), e la cosa mi è sembrata importante perchè mi avrebbe subito reso operativo, dal momento che i primi approcci con vim non sono stati tra i più esaltanti.

Joe è poi diventato il mio editor preferito. Semplice, comodo per molti usi, e per certi aspetti anche abbastanza potente. Quando non lo trovo all'interno delle varie distribuzioni Debian, che utilizzo di preferenza, lo installo semplicemente con:

apt-get install joe

Con l'installazione viene pure aggiunta la pagina di manuale relativa ed è quindi possibile, soprattutto se si è provveduto alla localizzazione italiana, consultare comodamente tutte le informazioni e le opzioni previste per il programma, semplicemente con il comando:

man joe

L'aspetto della schermata è, al solito, molto spartana e si presenta come in figura:



Per ottenere un minimo di help mentre si lavora è disponibile la combinazione di tasti Ctrl-K-H che funziona sia per accedere alla schermata di help sia per uscire. Inoltre si ricordi che è possibile abbandonare l'editor con la combinazione Ctrl-C.
Altre informazioni sono reperibili cliccando sulla voce del menù Editor Joe nella sezione Schede & Guide di questa stessa pagina.



nano

E' la versione avanzata del più famoso Pico, semplice ma potente è adatto a coloro che vogliono scrivere codice dalla shell, senza entrare nell'ambiente grafico; è uno degli editor non grafici migliori disponibili per Linux e vale la pena di usarlo se si vuole semplicità e velocità.
Si installa, sotto Debian, alla solita maniera:

apt-get install nano

Purtroppo ancora la pagina di manuale è rimasta in inglese ed allora questa brevissima guida è stata scritta per insegnarvi le operazioni basilari di nano, ed è stata pensata per essere molto concisa. Per avere più informazioni (in inglese) si può consultare o il sito http://www.nano-editor.org oppure la pagina di manuale:

man nano

Ecco l'aspetto della schermata iniziale:



Per aprire/creare un file basta digitare:

nano filename

Nano è un editor che funziona senza modalità (modeless), a differenza di vim, e quindi si può iniziare subito a digitare per inserire il testo.
Ma attenzione, con file molto importanti, è meglio avviarlo con l'opzione -w che serve ad inibire il cosiddetto wrapping; cioè le righe non verranno spezzate sul bordo destro dello schermo; questo potrebbe rivelarsi pericoloso per l'integrità del file stesso. Per esempio nel caso di /etc/fstab si dovrebbe digitare:

nano -w /etc/fstab


Per salvare le modifiche apportate al testo, pigiare Ctrl-O. Nel caso si vogliano annullare le modifiche appena confermate digitare Ctrl-C quando viene richiesto il nome del file.

Per uscire dall'editor digitare Ctrl-X, nel caso ci siano delle modifiche non salvate verrà emesso un avviso per consentire il recupero del salvataggio in maniera interattiva.

Per tagliare una singola linea premere Ctrl-K. Ovvero tenere premuto il tasto Ctrl mentre si digita il tasto k. La linea verrà eliminata dal video e conservata in un buffer. Per incollarla altrove muovere semplicemente il cursore dove desiderato e premere Ctrl-U.
Per spostare più linee cancellarle una per una e quindi incollarle con un unico Ctrl-U dove desiderato.

Se serve un controllo più preciso occorre preselezionare il testo. Posizionare il cursore all'inizio del testo da tagliare, pigiare Ctrl-^ (a seconda delle tastiere il carattere ^ potrebbe trovarsi o sul tasto 6 o sul tasto è). Ora muovere il cursore alla fine del testo da tagliare, il testo desiderato dovrebbe essere evidenziato. Se si volesse disattivare l'evidenziazione, pigiare di nuovo Ctrl-^, oppure premere Ctrl-K per tagliarlo/cancellarlo e successivamente usare Ctrl-U per incollarlo.


Per cercare una stringa premere Ctrl-W e scrivere la stringa da cercare.


Per altre opzioni è meglio consultare il manualetto on-line. Un'ultima cosa, è anche possibile configurare nano, tramite il file/etc/nanorc.



mcedit

Si tratta dell'editor contenuto all'interno di Midnight Commander, file manager molto noto tra gli esperti Linux, e che si installa con il nome di mc. Tramite un link simbolico si può avviare soltanto la parte editor di testo con il comando mcedit. La schermata che si presenta è simile alla seguente, a seconda della lingua utilizzata:



mcedit offre un funzionamento intuitivo per l'utente che proviene dall'esperienza Dos, quando si ha a disposizione un terminale adeguatamente raffinato, come una console virtuale di GNU/Linux, ma può funzionare anche se si utilizza un terminale poco dotato, in tal caso però si ritorna a dover usare le solite combinazioni di tasti che annoiano alcuni utenti.
Nella parte inferiore della schermata si notano alcuni riferimenti a tasti funzionali, ad esempio F1 Aiuto, F2 Salva, e così via come indicato in figura.
Più articolata diventa invece l'interpretazione della prima riga in alto, detta anche riga di stato, dalla quale si conosce il nome del file aperto, lo stato del file, la colonna su cui si trova il cursore, il numero della prima riga che appare sullo schermo, il numero della riga relativa allo schermo, la riga assoluta in cui si trova il cursore, il numero totale di righe del file, e altre informazioni che si interpretano con l'aiuto della figura:

al-04201.sgml       [BMRO] 27:50184+14=50198/133060 - *1890086/5033862b= 10
 |                   ||||  |   |    |   |     |         |       |        | 
 |   ----------------++++  |   |    |   |     |         |       |    codice
 |   stato:                |   |    |   |   dimensione  |       |    del
 |   B blocco evidenziato  |   |    |   |   totale in   |       |    carattere
 |   M file modificato     |   |    |   |   righe       |       |
 |   R registratore macro  |   |    |   |               |       dimensione
 |   O sovrascrittura      |   |    |   riga corrente   |       in byte
 |                         |   |    |                   |
 |                         |   |    riga del cursore    posizione del
nome del file              |   |    sullo schermo       cursore in byte
                           |   |
         colonna del cursore   prima riga sullo schermo


La riga di stato è un elemento bistabile, tramite la pressione del tasto F9 fornisce un classico menù a tendina per operare più comodamente e in modo semplice ed intuitivo, la pressione del tasto Esc (due volte) ripristina invece la riga di stato.



mcedit dovrebbe essere intuitivo, in quanto si può usare senza dovere ricordare delle combinazioni di tasti. Quando serve qualcosa di più basta chiamare il menu e cercare tra le varie voci disponibili. Tuttavia, quando si utilizza attraverso un terminale non sufficientemente raffinato, si rischia di perdere l'uso di alcuni tasti di uso comune, per cui si deve ripiegare sul solito sistema di combinazioni. La tabella seguente mostra l'elenco di alcuni comandi utili per lo spostamento del cursore e per la modifica del testo.


Comando Alternativa Descrizione
Meta+Esc Esc Esc Termina l'attività sul file
Caratteri normali Inseriscono il testo corrispondente
Tab Ctrl+i A seconda della configurazione, inserisce una tabulazione
Tasti freccia Spostano il cursore nella direzione della freccia
Tasti pagina Spostano il cursore di una schermata in avanti o indietro
Ctrl+pagina-su Sposta il cursore all'inizio del file
Ctrl+pagina-giù Sposta il cursore alla fine del file
Backspace Ctrl+h Cancella il carattere a sinistra del cursore
Canc Ctrl+d Cancella il carattere in corrispondenza del cursore
Invio Ctrl+j Inserisce un'interruzione di riga
Ctrl+y Elimina la riga su cui si trova il cursore
Ctrl+l Ridisegna lo schermo
Ins Scambia tra sovrascrittura e inserimento del testo digitato
Ctrl+u Annulla l'ultimo comando (compresa la singola digitazione)
Shift+frecce F3 ... F3 Delimita un blocco di testo
F5 Incolla una copia del testo evidenziato
F6 Sposta il blocco evidenziato in corrispondenza del cursore
F8 Cancella il blocco evidenziato
Ctrl+Ins Copia la zona evidenziata nella clipboard, liberando il blocco evidenziato
Shift+Canc Copia la zona evidenziata nella clipboard, cancellando il blocco dal testo
Shift+Ins Incolla il contenuto della clipboard nella posizione del cursore


Queste semplici note non vogliono costituire un manuale, ma servono semplicemente ad un primo orientamento nell'uso di questo editor che, tra le altre cose, consente la predisposizione di macro e la formattazione del testo. Maggiori informazioni possono essere acquisite attraverso gli ormai soliti canali: le pagine man ed i siti internet.