Elementi di base della console
Prima di tutto bisogna aprire una console. Ci sono almeno due modalità che ci permettono di avere a disposizione lo stesso tipo di console, ma con un aspetto grafico diverso:
- Modalità testo;
- Modalità grafica, usando il sistema X-Window.
La prima modalità è quella decisamente più spartana, ma che permette l’utilizzo del sistema anche in assenza di una interfaccia grafica. La seconda, invece, è quella maggiormente utilizzata per le normali operazioni di tutti i giorni.
Aprire una console in modalità testo
Il terminale in modalità testuale si presenta automaticamente in assenza di interfaccia grafica, quindi, se è questo il vostro caso, siete già pronti ad entrare in azione. Se invece siete all’interno di una sessione grafica, dovete premere la combinazione di tasti [CTRL] + [ALT] + [Fn], in cui n è un numero qualsiasi da 1 a 9 e la combinazione Fn rappresenta uno dei 9 tasti funzione presenti nella parte alta della tastiera. Generalmente si comincia aprendo la console numero 1, quindi premete [CTRL] + [ALT] + [F1].
Dopo un probabile leggero sfarfallio dello schermo, vedete la schermata per il login. Normalmente, nelle prime righe, ci sono alcune caratteristiche del sistema, come il nome della distribuzione Linux che state usando, la versione del kernel e il nome del calcolatore su cui state lavorando. Sul nostro sistema abbiamo:
Ubuntu 8.04.1 backintime-vm tty1
backintime-vm login:
Immettete il vostro username e la password per accedere al sistema. Dopo aver effettuato l’accesso, vi trovate davanti con un messaggio di benvenuto e il prompt dei comandi. Sul nostro sistema abbiamo:
Linux backintime-vm 2.6.24-19-generic #1 SMP Wed Aug 20 22:56:21 UTC 2008 i686
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
paolo@backintime-vm:~$
Il messaggio di benvenuto varia da sistema a sistema, questo è quello predefinito di Ubuntu 8.04. All’ultima riga si vede il prompt, cioè la porzione della console delegata a ricevere l’input dall’utente. Un prompt standard generalmente include:
- nome utente: nel nostro caso paolo;
- nome del computer su cui si lavora: nel nostro caso backintime-vm;
- posizione corrente all’interno del file system: qui ci viene presentato il carattere ~ (tilde), che rappresenta il percorso nel file system della nostra cartella home; è un metodo molto efficiente per risparmiare caratteri sulla console, in quanto altrimenti il sistema avrebbe dovuto scrivere /home/paolo; possiamo usare questa abbreviazione ogni volta che dobbiamo riferirci alla nostra cartella home; per scrivere il carattere tilde usando una tastiera italiana, dobbiamo usare la combinazione di tasti [ALT GR] + [ì];
- indicazione sui diritti di amministrazione dell’utente: viene visualizzato un $ quando abbiamo fatto il login con un normale utente, # quando abbiamo effettuato l’accesso con l’utente root, amministratore di sistema.
Il formato del prompt è personalizzabile tramite un apposito file di configurazione, quindi a queste informazioni se ne possono aggiungere altre, o eventualmente toglierne rendendolo più essenziale.
A questo punto, siete pronti per scrivere i primi comandi.
Aprire una console in modalità grafica
Il terminale in modalità grafica è decisamente più immediato da aprire: lo si trova come collegamento nel menu delle Applicazioni selezionando Accessori e quindi Terminale.

Figura 1: il terminale nel menu Applicazioni
In questa modalità la console si presenta subito con il prompt dei comandi, senza messaggi di benvenuto. Questo perché il login è già stato effettuato per via grafica, quindi non c’è necessità di ripeterlo nella console. Il prompt si presenta esattamente come nella modalità testuale, in quanto va a leggere lo stesso file di configurazione.
Scorciatoie da tastiera
La console, come la maggioranza degli strumenti in ambiente Unix/Linux, consente scorciatoie da tastiera per le operazioni più comuni. Vediamo le più usate:
| Combinazione di tasti |
Descrizione |
| [MAIUSC] + [PAG↑] |
Scorre indietro di una schermata. Utile nel caso in cui un comando restituisca un output su più schermate.
|
| [MAIUSC] + [PAG↓] |
Scorre avanti di una schermata. Ovviamente si usa in abbinamento col comando precedente.
|
| [CTRL] + [a] oppure [INIZIO] |
Sposta il cursore all’inizio della riga di comando.
|
| [CTRL] + [e] oppure [FINE] |
Sposta il cursore alla fine della riga di comando.
|
| [CTRL] + [k] |
Elimina, tagliandolo, tutto il contenuto della riga di comando, dal cursore in avanti. |
| [CTRL] + [y] |
Recupera, incollandolo, il testo tagliato il precedenza. |
| [CTRL] + [l] |
Svuota il contenuto del terminale.
|
Ripetizione dei comandi e completamento
La console bash è progettata per ottimizzare il lavoro di chi la usa, quindi possiede molte caratteristiche che possono velocizzare la nostra digitazione dei comandi.
Spesso capita che dobbiamo ripetere un comando digitato in precedenza: se questo era breve non ci sono problemi, ma se era lungo la sua riscrittura può essere brigosa. In questo caso, la ripetizione dei comandi viene in nostro aiuto. Tramite le frecce direzionali [↑] e [↓], possiamo scorrere tutta la cronologia di quello che abbiamo digitato al prompt.
Se la nostra cronologia dei comandi è troppo affollata, bash ci permette di cercare un particolare comando attraverso una ricerca, con la combinazione di tasti [CTRL] + [r].
Un’altra funzione per ottimizzare la digitazione dei comandi è il completamento: ogni comando o percorso del filesystem può essere completato in automatico con la pressione di [TAB]. Per esempio:
paolo@backintime-vm:~$ fir [TAB]
Viene completato come:
paolo@backintime-vm:~$ firefox
Se alla pressione di [TAB] il comando non viene completato, significa che c’è una parziale omonimia: premendo nuovamente [TAB] ci vengono presentate le varie alternative. Ad esempio:
paolo@backintime-vm:~$ fi [TAB]
fi find findsmb fix_bs_and_del
file find2perl finger
filefrag findaffix firefox
file-roller findfs firefox-3.0
Ridirezione input / output
La shell gestisce il testo in input e output in stream, cioè in flussi, che possono essere diretti a piacimento, in entrata o in uscita ai comandi che lanciamo dal prompt. Se non specifichiamo nessun tipo di ridirezionamento, la console bash utilizza la tastiera come stream di input e il terminale come stream di output. Le ridirezioni possibili sono le seguenti.
- Input diretto a un file: tramite il carattere < scritto tra il comando a il file di input, si passa il contenuto del file come input al comando. È un’opzione poco usata nell’uso comune della shell. Esempio: comando < file_input.txt
- Output diretto a un file: operazione molto utile e utilizzata spesso per i comandi che restituiscono un output prolisso. Ci sono due opzioni: creare un nuovo file, sovrascrivendone il contenuto in caso questo esistesse già, oppure aggiungere l’output a un file esistente. Nel primo caso si scrive il carattere > tra il comando e il file su cui ridirigere l’output, nel secondo caso si scrivono i caratteri >>. Ad esempio:
paolo@backintime-vm:~$ ls –l /home/paolo > output_mia_home.txt
paolo@backintime-vm:~$ ls –l /home/paolo/Immagini >> output_mia_home.txt
Nel primo caso creo / sovrascrivo il file output_mia_home.txt, riempiendolo con l’output che normalmente avrei dal comando ls. Nel secondo caso, aggiungo il consueto output del comando ls al file creato in precedenza.
- Messaggi di errore diretti a un file: operazione poco usata nell’utilizzo quotidiano, consente di direzionare i messaggi di errore verso un file. Ad esempio:
paolo@backintime-vm:~$ ls cartella_non_esistente 2> errori.txt
Il messaggio di errore viene direzionato verso il mio file. Se provate ad utilizzare lo stesso comando con la direzione output normale, avrete il messaggio di errore stampato sulla console e non nel file.
- Direzionare l’output di un comando all’input di un altro comando: è una delle tecniche più usate, ma anche meno immediate da comprendere. La sintassi è simile a quella delle opzioni precedenti: si scrive il carattere | (pipe) tra un comando e il successivo. Uno degli utilizzi classici è l’uso del pipe con grep, un comando per effettuare ricerche all’interno di stream di testo. Ad esempio, se voglio visualizzare i dettagli relativi ai files che contengono la parola cron all’interno della cartella /etc:
paolo@backintime-vm:~$ ls –l /etc | grep cron
Così compaiono solo le righe in cui è presente la parola cron. Questo accade perché bash prende l’output del comando ls e lo direziona in input al comando grep. In realtà lo stesso risultato si può ottenere anche senza pipe, ma questo è solo un semplice esempio per far capire il concetto.
Registrare la sessione di una shell
Bash ci permette anche di registrare la sessione di una shell. La registrazione consiste nello scrivere su un file ogni cosa che transita sulla console, in input e in output.
Scrivendo:
paolo@backintime-vm:~$ script registrazione.log
indicate a bash che da quel momento in poi la sessione deve essere registrata nel file registrazione.log. è un po’ come premere il tast REC su un registratore. Il tasto STOP corrisponde a:
paolo@backintime-vm:~$ exit
Esecuzione di un processo in background
La console supporta le funzionalità multitasking di Linux, cioè ci permette di eseguire più comandi senza rendere inusabile il prompt dei commandi. Infatti, se lanciamo un processo che impiega molto tempo per essere eseguito, rischiamo di restare minuti ad attendere che il prompt si liberi. Lanciando un comando, posponendo il carattere & (ampersand) si indica a bash che l’esecuzione deve essere in background, non in foreground come avviene normalmente.
Il caso più frequente in cui conviene eseguire in processo in background è quando si lancia un programma con interfaccia grafica. Per esempio, lanciando firefox da console così:
paolo@backintime-vm:~$ firefox
il prompt resterà bloccato finché la finestra di firefox resterà aperta. Lanciando il comando così, invece:
paolo@backintime-vm:~$ firefox &
l’applicazione viene lanciata ugualmente, ma ci viene subito restituito il prompt pronto per ricevere un altro comando.
|