Product SiteDocumentation Site

Appendice B. Breve Corso di Recupero

Anche se questo libro si rivolge in primo luogo ad amministratori e "power-user", non vorremmo escludere principianti motivati. Questa appendice sarà quindi un corso intensivo che descrive i concetti fondamentali coinvolti nella gestione di un computer Unix.

B.1. Shell e Comandi di Base

Nel mondo Unix, ogni amministratore deve usare la riga di comando, prima o poi; ad esempio, quando il sistema non si avvia correttamente e fornisce solo un modalità di ripristino della riga di comando. Essere in grado di gestire questo tipo di interfaccia, quindi, è una competenza di base di sopravvivenza per queste circostanze.
Questa sezione da solo un rapido sguardo ai comandi. Tutti hanno molte opzioni qui non descritte, quindi per favore fare riferimento all'abbondante documentazione nelle loro rispettive pagine di manuale.

B.1.1. Navigazione nell'Albero delle Directory e Gestione dei File

Una volta aperta la sessione, il comando pwd (che sta per directory del lavoro di stampa print working directory) visualizza la posizione corrente nel filesystem. La directory corrente viene cambiata con il comando cd directory (cd sta per cambia directory change directory). La directory superiore è sempre chiamata .. (due punti), mentre la directory corrente è conosciuta anche come . (un punto). Il comando The ls permette di elencare listing il contenuto di una directory. Se non viene passato nessun parametro, opera nella directory corrente.
$ pwd
/home/marco
$ cd Scrivania
$ pwd
/home/marco/Scrivania
$ cd .
$ pwd
/home/marco/Scrivania
$ cd ..
$ pwd
/home/marco
$ ls
Immagini Modelli Pubblici Scrivania 
Documenti Musica Scaricati Video
Una direcory può essere creata con mkdir directory, ed una directory esistente (vuota) può essere rimossa con rmdir directory. Il comando mv permette lo spostamento (moving) e/o di rinominare file e directory; la rimozione (removing) di un file è effettuata con rm file.
$ mkdir test
$ ls
Immagini    Modelli  Pubblici Scrivania  Documenti
Musica  Scaricati      Video    test
$ mv test new
$ ls
Immagini    Modelli  new       Scaricati     Video
Documenti  Musica      Pubblici  Scrivania
$ rmdir new
$ ls
Immagini    Modelli  Pubblici  Scrivania  Documenti
Musica  Scaricati      Video

B.1.2. Visualizzazione e Modifica dei File di Testo

Il comando cat file (destinato a concatenare file al dispositivo di output standard) legge un file e ne visualizza il contenuto sul terminale. Se il file è troppo grande per essere visualizzato sullo schermo, usare un comando come less (oppure more) per visualizzarlo per pagina per pagina.
Il comando editor avvia un editore testi (come ad esempio vi o nano) e permette di creare, modificare e leggere file di testo. È possibile creare file particolarmente semplici, direttamente dalla linea di comando, utilizzando ridirezione: echo "text" >file crea un file chiamato file con “text” per contenuto. È anche possibile aggiungere una linea a fine file, con un comando come: echo "moretext" >>file. Notare il doppio >> in questo secondo esempio.

B.1.3. Ricerca dei File e all'interno dei File

Il comando find directory criterio cerca i file all'interno di una directory in base a diversi criteri. Il criterio usato più comunemenete è -name nome: che permette di ceracre un file tramite il nome.
Il coamndo grep expressione files cerac il contenuto dei file ed estrae le linee corrispondenti all'espressione regolare (vedi riquadro FONDAMENTALI Espressioni regolari). Aggiungendo l'opzione -r consente una ricerca ricorsiva su tutti i file contenuti nella directory passata come parametro. Questo permette di cercare un file quando è nota solo una parte del suo contenuto.

B.1.4. Gestione Processi

Il comando ps aux elenca i processi in esecuzione ed aiuta ad identificarli mostrando il loro pid (process id). Una volta conosciuto il pid di un processo, il comando kill -signal pid permette di inviare un segnale (se il processo appartiene all'utente corrente). Esistono diversi segnali; i più comunemente usati sono TERM (una richiesta a terminare in modo naturale) e KILL (un'arresto forzato).
L'interprete dei comandi può anche eseguire i programmi in background se il comando è seguito da una "&". Utilizzando la e commerciale, l'utente riprende immediatamente il controllo della shell anche se il comando è ancora in esecuzione (nascosto all'utente; come processo in background). Il comando jobs elenca i processi in esecuzione in background; eseguendo fg %numero-lavoro (per foreground) il processo viene riportato in primo piano. Quando un comando è in esecuzione in primo piano (o perché è stato avviato normalmente, o perchè riportato in primo piano con fg), la combinazione dei tasti Control+Z sospende il processo e riprende il controllo della riga di comando. Il processo può essere riavviato in background con bg %numero-lavoro (per background).

B.1.5. Informazioni di Sistema: Memoria, Spazio su Disco, Identità

Il comando free visualizza le informazioni sulla memoria; df (disk free) riporta la disponibilità di spazio su ogni disco montato nel filesystem. La sua opzione -h (per human readable leggibile dagli umani) converte le dimensioni in unità più leggibili (solitamente megabyte o gigabyte). Allo stesso modo, il comando free supporta le opzioni -m e -g, e visualizza i dati, rispettivamente in megabyte o in gigabyte.
$ free
             total       used       free     shared    buffers     cached
Mem:       1028420    1009624      18796          0      47404     391804
-/+ buffers/cache:     570416     458004
Swap:      2771172     404588    2366584
$ df
Filesystem           1K-blocchi      Usati Disponib. Uso% Montato su
/dev/sda2              9614084   4737916   4387796  52% /
tmpfs                   514208         0    514208   0% /lib/init/rw
udev                     10240       100     10140   1% /dev
tmpfs                   514208    269136    245072  53% /dev/shm
/dev/sda5             44552904  36315896   7784380  83% /home
Il id visualizza l'identità dell'utente che esegue la sessione, insieme alla lista dei gruppi a cui appartiene. Poiché l'accesso ad alcuni file o dispositivi può essere limitata ai membri del gruppo, può essere utile verificare l'appartenenza al gruppo disponibile.
$ id
uid=1000(rhertzog) gid=1000(rhertzog) groups=1000(rhertzog),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev),109(bluetooth),115(scanner)