2.4. Breve introduzione alla linea di comando

La linea di comando è il modo più diretto di impartire dei comandi al sistema. Se utilizzate la linea di comando di GNU/Linux vi accorgerete presto che è molto più potente e flessibile di qualsiasi prompt dei comandi che possiate aver utilizzato in passato. Il prompt dei comandi di GNU/Linux offre l'accesso a migliaia di programmi di utilità che non hanno un equivalente grafico. Tramite il prompt dei comandi, infatti, avrete l'accesso non solo a centinaia di applicazioni X, ma anche a migliaia di programmi che operano in modalità console (invece che in modalità grafica) e che non hanno un equivalente grafico, o le cui centinaia di comandi e di possibili combinazioni di funzioni non potranno mai essere visualizzate sotto forma di menu o pulsanti.

Ma, ammettiamolo, per iniziare ci vuole un po' di aiuto. Questo è lo scopo del presente capitolo. La prima cosa da fare, se utilizzate KDE, è lanciare un emulatore di terminale. C'è un'icona che lo indica chiaramente nel pannello (Figura 2-3).

Figura 2-3. L'icona del terminale nel pannello di KDE

Ciò che vedete in questo emulatore di terminale quando lo lanciate è una shell. Questo è il nome del programma con cui interagite. Vi troverete davanti al prompt:

[mario@localhost] ~ $

Supponiamo che il vostro nome utente sia mario e che il nome del vostro computer sia localhost (il che corrisponde alla realtà, se il vostro PC non fa parte di una rete). A questo punto, tocca a voi digitare uno o più comandi. Notate che quando siete root, il $ del prompt diventa un # (tutto questo fa parte della configurazione standard del sistema, che può essere modificata a vostro piacimento). Il comando per "diventare" root dopo aver lanciato una shell come utente normale è su:

# Digitate la password di root; non comparirà sullo schermo
[mario@localhost] ~ $ su
Password: 
# digitando "exit" tornate al vostro account normale
[root@localhost] mario # exit
[mario@localhost] ~ $

In tutto il resto del manuale, il prompt verrà rappresentato da un $, sia che siate root, sia che siate un utente comune. Vi diremo quando dovrete essere root, quindi ricordatevi di usare il comando su secondo quanto visto in precedenza. Un # all'inizio di una linea di codice rappresenta invece un commento.

Quando lanciate una shell per la prima volta, normalmente vi trovate nella vostra home directory. Per visualizzare la directory in cui vi trovate, digitate il comando pwd (che sta per Print Working Directory):

$ pwd
/home/mario

Adesso vedremo alcuni comandi di cui, come scoprirete, non si può proprio fare a meno.

2.4.1. cd: Change Directory

Il comando cd è proprio come quello del DOS, solo con qualcosa in più. Esso fa tipicamente quello che dice il suo nome, cambia la directory di lavoro. Potete usare . e .., che indicano, rispettivamente, la directory attuale e la directory immediatamente superiore (parent directory). Digitando cd senza argomenti, ritornerete alla vostra home directory. Digitando cd - tornerete indietro all'ultima directory che avete attraversato. Infine, potete specificare la home directory di un utente, ad esempio mario digitando ~mario (~ da solo o seguito da / indica la vostra home directory). Notate che, come utente normale, di solito non potete andare nelle home directory di altri utenti, a meno che questi non lo autorizzino o che questa non sia la regola generale sul vostro sistema; oppure, a meno che non siate root, quindi diventiamo root e facciamo un po' di pratica:

$ pwd
/root
$ cd /usr/doc/HOWTO
$ pwd
/usr/doc/HOWTO
$ cd ../FAQ
$ pwd
/usr/doc/FAQ
$ cd ../../lib
$ pwd
/usr/lib
$ cd ~mario
$ pwd
/home/mario
$ cd
$ pwd
/root

Adesso ritorniamo allo status di utente normale.

2.4.2. Alcune variabili di ambiente e il comando echo

I processi hanno delle loro variabili di ambiente e la shell vi consente di visualizzarle direttamente con il comando echo. Ecco alcune variabili interessanti:

  1. HOME Questa variabile contiene una stringa che rappresenta il percorso della vostra home directory.

  2. PATH Questa variabile contiene la lista di tutti i percorsi in cui la shell cerca gli eseguibili quando digitate un comando. A differenza del DOS, come opzione predefinita una shell non cercherà i programmi nella directory corrente!

  3. USERNAME Questa variabile contiene il vostro nome di login.

  4. UID Contiene il vostro user ID.

  5. PS1 Contiene il valore del vostro prompt. Spesso è una combinazione di sequenze speciali, per avere maggiori informazioni potete leggere la pagina di manuale man 1 bash.

Affinché la shell visualizzi il contenuto di una variabile, dovete aggiungere un $ prima del suo nome. Ecco come usare il comando echo:

$ echo Ciao
Ciao
$ echo $HOME
/home/mario
$ echo $USERNAME
mario
$ echo Ciao $USERNAME
Ciao mario
$ cd /usr
$ pwd
/usr
$ cd $HOME
$ pwd
/home/mario

Come potete vedere, la shell sostituisce il valore della variabile prima di eseguire il comando. Altrimenti, il nostro cd $HOME non avrebbe funzionato. Infatti la shell ha prima di tutto sostituito $HOME con il suo valore, /home/mario, quindi la linea è diventata cd /home/mario, ovvero il comando che volevamo. Lo stesso vale per echo $USERNAME, e così via.

2.4.3. cat: visualizza il contenuto di uno o più file sullo schermo

Non c'è molto da aggiungere: questo comando visualizza semplicemente sullo schermo il contenuto di uno o più file:

$ cat /etc/fstab
/dev/hda5 / ext2 defaults 1 1
/dev/hda6 /home ext2 defaults 1 2
/dev/hda7 swap swap defaults 0 0
/dev/hda8 /usr ext2 defaults 1 2
/dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0
none /proc proc defaults 0 0
none /dev/pts devpts mode=0620 0 0
/dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0
$ cd /etc
$ cat conf.modules shells
alias parport_lowlevel parport_pc
pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq
#pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start
#alias car-major-14 sound
alias sound esssolo1
keep
/bin/zsh
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
/bin/ash
/bin/bsh
/usr/bin/zsh

2.4.4. less: un visualizzatore a pagine

Il nome di questo comando è un gioco di parole tratto dal nome del primo programma di questo tipo per Unix, che si chiamava more. Un pager è un programma che permette di visualizzare lunghi file una pagina alla volta (o meglio, uno schermo alla volta). Parliamo di less piuttosto che di more perché è molto più intuitivo nell'uso. Usate less per visualizzare file lunghi, che non stanno in una sola schermata. Per esempio:

less /usr/doc/HOWTO/PCMCIA-HOWTO

Per scorrere il file, usate le frecce sù/giù. Premete q per uscire. less, tuttavia, può fare molto più di questo: digitate h per l'aiuto, e guardate. Lo scopo di questo paragrafo, in ogni caso, era solo quello di permettervi di leggere file lunghi, e l'abbiamo raggiunto :-)

2.4.5. ls: elencare file (LiSt)

Questo comando è l'equivalente di dir del DOS, ma può fare molto di più. In verità, questo è ampiamente dovuto al fatto che i file possono fare molto di più :-) La sintassi di ls è come segue:

ls [opzioni] [file|directory] [file|directory...]

Se non si specifica un file o una directory, ls visualizza la lista dei file nella directory corrente. Le opzioni di ls sono moltissime, qui ne vediamo solo alcune:

  1. -a elenca tutti i file, inclusi i file nascosti (in Unix i file nascosti sono quelli il cui nome comincia con .); l'opzione -A elenca "quasi" tutti i file, il che significa: tutti i file che l'opzione -a visualizzerebbe tranne "." e "..";

  2. -R elenca in modo ricorsivo, ovvero elenca tutti i file e le sotto-directory della directory indicata sulla linea di comando;

  3. -s visualizza la dimensione in kilobyte di seguito a ciascun file;

  4. -l visualizza informazioni aggiuntive sui file;

  5. -i visualizza il numero di inode (il numero identificativo di un file nel filesystem, consultate in proposito il capitolo Il filesystem di GNU/Linux: ext2fs (EXTended 2 FileSystem)) accanto a ciascun file;

  6. -d visualizza le directory come file normali invece di visualizzare il loro contenuto.

Alcuni esempi:

  1. ls -R visualizza il contenuto della directory attuale in modo ricorsivo;

  2. ls -is images/ .. elenca i file nella directory images/ e nella directory superiore, e visualizza per ciascun file il numero di inode e la dimensione in kilobyte;

  3. ls -al images/*.gif elenca tutti i file (compresi quelli nascosti) nella directory images/ i cui nomi terminano in .gif. Notate che questo include anche il file .gif se ne esiste uno.

2.4.6. Scorciatoie utili per la tastiera

Ci sono molte utili combinazioni di tasti che vi possono far risparmiare parecchio lavoro, e in questo paragrafo vedremo alcune tra le più comuni. Questa sezione presuppone che stiate utilizzando la shell predefinita fornita con Linux-Mandrake, Bash, ma queste scorciatoie dovrebbero funzionare anche in altre shell. In questa sezione, C-<x> significa Ctrl+<x> (tenere premuto il tasto Ctrl, premere il tasto <x>, rilasciare entrambi i tasti).

Per prima cosa, i tasti cursore. Bash mantiene una storia dei comandi che avete impartito, e potete esplorarla usando i tasti cursore (le frecce di direzione) sù e giù. Potete risalire per un numero di righe definito dalla variabile di ambiente HISTSIZE. Questo registro, inoltre, è persistente da una sessione all'altra, quindi rimane disponibile anche dopo aver chiuso e riaperto una sessione.

I tasti destra e sinistra spostano il cursore a destra e a sinistra nella linea di comando attuale, quindi potete modificare i vostri comandi in questo modo. Ma potete anche fare altre cose: C-a e C-e vi porteranno, rispettivamente, all'inizio e alla file della linea attuale. I tasti Backspace e Canc funzioneranno come potete immaginare, un equivalente di Backspace è C-h e un equivalente di Canc è C-d. C-k cancellerà tutti i caratteri dalla posizione del cursore alla fine della linea, e C-w cancellerà la parola prima del cursore.

Digitando C-d su una linea vuota chiuderete la sessione attuale, il che è una scorciatoia per il comando exit. C-c interromperà il comando attualmente in corso di esecuzione, a meno che non stiate modificando la riga di comando: in tal caso, questa combinazione di tasti cancellerà la modifica e vi riporterà al prompt. C-l pulisce lo schermo.

Infine, C-s e C-q: questi due comandi servono rispettivamente a sospendere e a riattivare il flusso di caratteri su un terminale. Vengono usati molto raramente, ma potrebbe accadere che digitiate C-s per errore. Per cui, se premete dei tasti ma non vedete apparire niente sullo schermo, provate prima C-q e attenzione: tutti i caratteri che avete digitato tra C-s e C-q verranno scritti sullo schermo tutti in una volta.


Tux on Star from MandrakeSoft Linux è un trademark registrato di Linus Torvalds. Tutti gli altri copyright e trademark appartengono ai rispettivi proprietari.
A meno che non sia specificato diversamente, tutto il contenuto di queste pagine e tutte le immagini sono Copyright MandrakeSoft S.A. e MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/