Il terminale

Il terminale è il vero centro di controllo di qualunque sistema operativo.
Da terminale si possono eseguire tutti i comandi che, normalmente, siamo abituati ad eseguire con il mouse, e molti altri ancora.

Purtroppo, molti sistemi operativi, con i quali siamo abituati ad operare oggigiorno sono dotati di programmi terminali inefficienti e di uso difficile. Ma per fortuna, nella nostra scuola non è così. Difficilmente, d'altronde, una distribuzione Linux viene installata senza la presenza di un programma terminale.

In Linux, esistono terminali in modalità carattere e terminali grafici.
Per capire la differenza, basta premere contemporaneamente i tasti ctrl-alt-Fn, dove n è un qualunque intero da 1 a 6, per avere accesso ad un terminale in modalità carattere. Si tratta di programmi di base, che vengono avviati dal sistema nelle primissime fasi di avvio.
Per ritornare al consueto ambiente grafico, premere ctrl-alt-F7.

I terminali grafici principali presenti a scuola sono gnome-terminal e konsole.
Il primo di essi è disponibile con un clic nella barra delle applicazioni standard, in alto a sinistra.

Un terminale è un ambiente in linea di comando.
Questo perchè il terminale legge le stringhe di carattere che vengono generate sulla riga corrente e terminate con il tasto return, e le interpreta come comandi.
Lo strumento principale, per usare il terminale, è la tastiera, ma si può utilizzare anche il mouse per trasferire stringhe di carattere1).

Se digitate una parola qualunque su un terminale e terminate con un ritorno a carrello, questa viene eseguita come fosse un comando.
Se avete inventato di sana la parola stessa, il comando non sarà riconosciuto e riceverete un messaggio di errore.
I messaggi di errore sono uno strumento prezioso per comprendere il comportamento del sistema.

La variabile PATH

Ma quali sono i comandi validi, che un terminale è in grado di eseguire?
Per capirlo, digitate semplicemente il seguente comando:

cloc3@s939 ~ $ echo $PATH
/usr/local/bin:/usr/bin:/bin:/opt/bin:/opt/vmware/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.2:/opt/blackdown-jdk-1.4.2.03/bin
:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/kde/4.1/bin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin

L'output mostra una sequenza di percorsi che definiscono le cartelle nelle quali sono contenuti i programmi eseguiti dal terminale.
Un comando di terminale, essenzialmente, non è altro che il nome di uno di questi programmi.
La variabile $PATH è una cosidetta variabile d'ambiente, che viene definita in modo autonomo dal sistema, ma che potete modificare a vostro piacere in qualunque momento.

Osservate questa sequenza di comandi:

cloc3@s939 ~ $ cd # entra nella cartella principale della vostra account
cloc3@s939 ~ $ mkdir miei_programmi # crea una nuova cartella
cloc3@s939 ~ $ echo '#!/bin/bash'>miei_programmi/hello.sh # scrive la prima del programma hello.sh
cloc3@s939 ~ $ echo 'echo "hello!"'>>miei_programmi/hello.sh # aggiugne la seconda riga al programma hello.sh
cloc3@s939 ~ $ cat miei_programmi/hello.sh # mostra il testo del vostro programma
#!/bin/bash
echo "hello!"
cloc3@s939 ~ $ chmod +x miei_programmi/hello.sh # rende eseguibile il programma
cloc3@s939 ~ $ PATH=${PATH}:~/miei_programmi # aggiunge la cartella ~/miei_programmi alla variabile d'ambiente $PATH
cloc3@s939 ~ $ hello.sh # esegue il vostro programma come un comando da terminale
hello!

Naturalmente, la nuova definizione della varibile $PATH è provvisoria, e sarà perduta al prossimo accesso.\\
Se desiderate rendere definitiva questa impostazione, usate il comando qui sotto:

  echo 'export PATH=${PATH}:~/miei_programmi'»~/.bashrc

L'autocompletamento

E quanti sono i comandi disponibili nel vostro sistema Linux? Per farvi una idea, digitate la lettera k, seguita dal tasto di tabulazione TAB, premuto un paio di volte:

cloc3@s939 ~ $ k
Display all 411 possibilities? (y or n)

ecco, ve ne sono 411 che cominciano con la lettera k!
Aggiungete, una alla volta, le lettere onque:

cloc3@s939 ~ $ konque
konqueror  konquest   
cloc3@s939 ~ $ konque

questa volta, la cerchia dei candidati è più ristretta. Aggiungete una r, completate e lanciate il comando konqueror. per vedere cosa accade.

I comandi principali

I comandi principali per il terminale sono i programmi contenuti nella cartella /usr/bin.
Si tratta di comandi fondamentali che si trovano, più o meno identici in ogni sistema operativo linux, e più in generale, in ogni sistema operativo unix.

Per visualizzarne una lista, usare il comando seguente:

ls /usr/bin

Per capire il funzionamento di ciascuno di essi, si può utilzzare il manuale di documentazione che è (quasi) sempre presente in ogni sistema linux, e che si chiama man. Per esempio:

man ls

La lettura della documentazione interna può sembrare difficile, le prime volte.
Ma su internet è abbastanza facile trovare delle guide semplificate come questa.
Per concludere: un esempio istruttivo

1) taglia e incolla