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, prima o poi, ogni amministratore deve usare la riga di comando; ad esempio, quando il sistema non si avvia correttamente e fornisce solo un modalità di ripristino da riga di comando. Quindi, essere in grado di gestire questo tipo di interfaccia, è una competenza di base che in alcune circostanze risulta vitale.
Questa sezione offre solo una rapida occhiata dei comandi. Essi hanno molte opzioni qui non descritte, quindi per favore fare riferimento all'abbondante documentazione nelle loro rispettive pagine di manuale.

B.1.1. Esplorazione della struttura delle directory e gestione dei file

Una volta aperta la sessione, il comando pwd (che sta print working directory, stampa la directory di lavoro) visualizza la posizione corrente nel file system. La directory corrente viene cambiata con il comando cd directory (cd sta per change directory, cambia directory). La directory superiore è sempre chiamata .. (due punti), mentre la directory corrente è conosciuta anche come . (un punto). Il comando ls permette di elencare il contenuto di una directory. Se non viene fornito alcun parametro, opera nella directory corrente.
$ pwd
/home/rhertzog
$ cd Scrivania
$ pwd
/home/rhertzog/Scrivania
$ cd .
$ pwd
/home/rhertzog/Scrivania
$ cd ..
$ pwd
/home/rhertzog
$ ls
Scrivania    Scaricati  Immagini  Modelli
Documenti  Musica      Pubblici    Video
Una directory può essere creata con mkdir directory, ed esistente (ma vuota) può essere rimossa con rmdir directory. Il comando mv permette di muovere e/o rinominare file e directory; la rimozione 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 di 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 pagina per pagina.
Il comando editor avvia un editor 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 la ridirezione: echo "text" >file crea un file chiamato file contenente “text”. È anche possibile aggiungere una linea alla fine del file, con un comando come: echo "moretext" >>file. Notare il doppio >> in questo secondo esempio.

B.1.3. Ricerca di file ed all'interno di file

Il comando find directory criterio cerca i file all'interno di una directory in base a diversi criteri. Quello usato più comunemenete è -name nome: che permette di cercare un file in base al suo nome.
Il comando grep espressione file cerca nel contenuto dei file ed estrae le linee corrispondenti all'espressione regolare (vedere riquadro FONDAMENTALE Espressioni regolari). Aggiungendo l'opzione -r consente una ricerca ricorsiva su tutti i file contenuti nella directory passata come parametro. Ciò consente di cercare un file quando si conosce solo una parte del contenuto.

B.1.4. Gestione dei processi

Il comando ps aux elenca i processi in esecuzione ed aiuta ad identificarli mostrando il loro pid (id del processo). Una volta che si conosce il pid di un processo, il comando kill -segnale pid permette di inviare un segnale (se il processo appartiene all'utente corrente). Esistono diversi segnali; quelli più comunemente usati sono TERM (richiesta di terminare) e KILL (terminare immediatamente).
L'interprete dei comandi può eseguire programmi in background quando quest'ultimo è 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 %identificativo (abbreviazione di foreground) il processo viene riportato in primo piano. Quando un comando è in esecuzione in primo piano (perché avviato normalmente o perchè riportato in primo piano con fg), la combinazione dei tasti Control+Z sospende il processo e restituisce il controllo all'interprete dei comandi. Il processo può essere riavviato in background con bg %identificativo (abbreviazione di 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 file system. 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 visualizzando i dati, rispettivamente, in megabyte o gigabyte.
$ free
              total        used        free      shared  buff/cache   available
Mem:       16279260     5910248      523432      871036     9845580     9128964
Swap:      16601084      240640    16360444
$ df
Filesystem                1K-blocks      Used Available Use% Mounted on
udev                        8108516         0   8108516   0% /dev
tmpfs                       1627928    161800   1466128  10% /run
/dev/mapper/vg_main-root  466644576 451332520  12919912  98% /
tmpfs                       8139628    146796   7992832   2% /dev/shm
tmpfs                          5120         4      5116   1% /run/lock
tmpfs                       8139628         0   8139628   0% /sys/fs/cgroup
/dev/sda1                    523248      1676    521572   1% /boot/efi
tmpfs                       1627924        88   1627836   1% /run/user/1000
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 limitato ai soli membri di un gruppo, può essere utile controllare a quali gruppi si appartiene.
$ 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)