Programmazione della shell Bash

Sintesi dei comandi principali

In questa appendice viene riportata una descrizione sintetica dei principali comandi del linguaggio Bash (comandi interni) e di alcuni dei principali programmi ed utility presenti tipicamente nella configurazione di base dei sistemi UNIX/Linux (comandi esterni). Per una descrizione più ampia e dettagliata dei comandi si suggerisce di fare riferimento comunque alle pagine di manuale UNIX o ai testi citati tra i riferimenti bibliografici. Ricordiamo che le pagine del manuale UNIX sono accessibili utilizzando il comando “man” seguito dal comando di cui si desidera visualizzare la descrizione (es.: “man bash”).

Comandi interni

alias
Consente di definire un sinonimo di un comando o di un'istruzione complessa o di ridefinire un comando (es.: “alias ls='ls -F'”).
bg
Consente di eseguire in background un comando.
break
Interrompe l'esecuzione del blocco di istruzioni all'interno di una struttura di controllo condizionale o iterativa.
case / esac
È una struttura di controllo condizionale che consente di valutare il contenuto di una variabile ed eseguire istruzioni diverse per ciascun valore.
cd
Cambia la directory corrente del filesystem in cui viene eseguito lo shell script; se non viene specificato nessun argomento sulla linea di comando, definisce come directory corrente la home directory dell'utente, altrimenti si sposta nella directory specificata come argomento.
continue
Prosegue l'esecuzione di un ciclo dall'iterazione successiva (o dalla n-esima iterazione, se n viene specificato come argomento).
do / done
Delimitano il blocco di istruzioni che deve essere eseguito nell'ambito di una struttura di controllo iterativa (un ciclo).
echo
Visualizza in output una stringa di testo costituita da caratteri alfanumerici e variabili; con l'opzione “-n” non va a capo dopo aver visualizzato l'output.
eval
Esegue il comando ottenuto concatenando tutti i parametri passati come argomento.
exec
Esegue il comando specificato come argomento sostituendo la shell in esecuzione: non viene creato un nuovo processo, ma il processo corrente viene sostituito da quello specificato come argomento del comando exec.
exit
Termina l'esecuzione dello script e restituisce un return code numerico.
export
Definisce una variabile d'ambiente, ovvero esporta una variabile o una funzione definita nell'ambito dello shell script, nell'ambiente entro cui è stato lanciato lo script ed i comandi eseguiti successivamente nell'ambito della stessa shell; contestualmente all'esportazione di una variabile può anche essere impostato il valore della variabile stessa.
fg
Riporta in foreground il processo il cui job id è passato al comando come argomento.
for
Esegue più volte il blocco di istruzioni delimitato dalle parole chiave “do” e “done”; il ciclo viene ripetuto per ciascun valore assunto da una variabile di controllo in una lista di valori o in un intervallo numerico.
function
Definisce una funzione identificata da un nome univoco nell'ambito dello script; il corpo della funzione è delimitato dalle parentesi graffe.
if / then / else / fi
Definisce una struttura di controllo condizionale: se la condizione riportata dopo l'istruzione “if” risulta vera, vengono eseguite le istruzioni che seguono la parola chiave “then”, altrimenti, se specificate, vengono eseguite le istruzioni riportate dopo la parola chiave “else”; la struttura di controllo è terminata dalla parola chiave “fi”.
jobs
Visualizza l'elenco dei “job id” dei processi attivi nell'ambito della shell corrente entro cui viene eseguito lo script.
kill
Invia il segnale specificato come primo argomento del comando ai processi i cui “job id” o “process id” sono passati come argomenti successivi.
local
Definisce le variabili specificate come argomento; nell'ambito di una funzione definita in uno script limita lo scope alla funzione stessa delle variabili specificate argomento.
printf
Stampa in output (o assegna ad una variabile) una stringa il cui formato viene specificato come primo argomento, che può essere costituita anche dal valore delle variabili riportate di seguito.
read
Legge da standard input una sequenza di caratteri contenente delle “parole” (o dei valori) separati da spazi; la prima parola viene assegnata alla prima variabile riportata come argomento del comando, la seconda alla seconda variabile e così via.
return
Termina l'esecuzione di una funzione e restituisce un valore numerico, specificato come primo argomento, come codice di ritorno della funzione stessa.
select
Realizza un ciclo infinito per la gestione di un menù di scelte interattivo visualizzato sul terminale dell'utente (standard output).
shift
Rinomina i parametri passati come argomento allo script o alla funzione con i nomi $1, $2, ... scartando i primi n parametri (se n è fornito come argomento) oppure soltanto il primo, se nessun argomento viene fornito al comando.
source / .
Consente di leggere in input e di eseguire lo shell script contenuto nel file il cui nome viene passato come argomento al comando.
test / [
Valuta l'espressione passata come argomento e restituisce il valore vero o falso.
times
Stampa il tempo utente ed il tempo macchina impiegato dallo script fino all'esecuzione del comando stesso.
type
Accetta una stringa come argomento e visualizza in output un messaggio che indica se la stringa corrisponde ad un comando interno (built-in) di Bash, un comando esterno, un alias, una parola chiave di Bash, ecc.
unalias
Annulla l'impostazione di un alias definito in precedenza.
unset
Elimina le variabili o le funzioni precedentemente definite, specificate come argomento del comando.
until
Esegue il blocco di istruzioni delimitato dalle parole chiave “do” e “done” se la condizione logica riportata di seguito risulta falsa.
wait
Attende che termini l'esecuzione del processo con “process id” o “job id” specificato come argomento del comando.
while
Esegue il blocco di istruzioni delimitato dalle parole chiave “do” e “done” se la condizione logica riportata di seguito risulta vera.

Comandi esterni

Di seguito è riportata una descrizione sintetica di alcuni dei principali comandi esterni presenti nella maggior parte dei sistemi operativi UNIX.

awk
Un interprete di un linguaggio per l'elaborazione di stringhe.
cc / gcc
Compilatore per tradurre dei programmi in formato sorgente scritti in linguaggio C, in programmi eseguibili scritti in linguaggio macchina. Su alcuni sistemi è presente il compilatore GNU GCC (attivabile con comando “gcc”) il cui funzionamento è grosso modo analogo a quello del compilatore C standard.
chmod
Modifica i permessi di accesso ad un file, una directory o, ricorsivamente, a tutti i file e le sottodirectory contenute nella directory specificata sulla riga di comando (es.: “chmod 755 script.sh”).
clear
Cancella il contenuto dello schermo del terminale dell'utente.
cp
Copia un file (sorgente) su un altro (target); se il secondo file (il target) non esiste, viene creato, in caso contrario viene sostituito con il contenuto del file sorgente.
cut
Taglia alcuni “campi” dello standard input o del file specificato sulla linea di comando e li stampa in output.
date
visualizza in output la data corrente; l'output può essere adattato riportando sulla riga di comando il simbolo “+” seguito dalle opzioni di visualizzazione della data (es.: “date +%d/%m/%Y”).
du
Disk Usage, visualizza la dimensione dei file e delle directory contenute nella directory corrente o nella directory specificata sulla linea di comando; con l'opzione “-k” viene utilizzata l'unità di misura KByte.
env
Visualizza o imposta il valore delle variabili d'ambiente con cui viene configurata la shell.
grep
Cerca le righe che corrispondono ad un determinato pattern nello standard input o nei file specificati sulla riga di comando.
gzip
Una utility per comprimere file; il file originale viene eliminato lasciando sul filesystem solo la versione compressa, con estensione “.gz”; per riportare il file nella sua forma originale, non compressa, si può usare il comando “gunzip”, equivalente al comando “gzip -d”.
head
Visualizza le prime righe della sequenza ricevuta in input o del file specificato sulla riga di comando; con l'opzione “-n” vengono visualizzate le prime n righe.
ls
Visualizza l'elenco dei file presenti nella directory corrente o nella directory specificata sulla riga di comando.
mv
Sposta o rinomina un file o una directory.
rm
Elimina dal filesystem il file specificato.
rmdir
Elimina dal filesystem la directory specificata.
sed
Stream editor, consente di manipolare stringhe utilizzando espressioni regolari.
seq
Visualizza una sequenza di numeri interi.
sleep
Introduce una pausa di n secondi; n è un numero intero maggiore di zero specificato sulla riga di comando.
sort
Restituisce in output ordinate le righe fornite in input o presenti nel file specificato sulla riga di comando.
tail
Visualizza le ultime righe della sequenza ricevuta in input o del file specificato sulla riga di comando; con l'opzione “-n” vengono visualizzate le ultime n righe, mentre con l'opzione “-f” viene mantenuto aperto il canale di input visualizzando continuamente le ultime righe ricevute in input (utile ad esempio per controllare un file di log attivo).
touch
Crea un file vuoto con il nome specificato sulla riga di comando se non esiste, altrimenti aggiorna la data e l'ora di ultima modifica del file con l'ora corrente.
uniq
Visualizza su standard output l'input acquisito da un file specificato sulla riga di comando o ricevuto da standard input, eliminando le righe ripetute.
wc
Esegue il conteggio dei caratteri, delle parole e delle righe fornite in input o presenti nel file specificato sulla riga di comando; con l'opzione “-l” conta le linee.
xargs
Esegue il comando riportato sulla command line utilizzando le stringhe ricevute su standard input come parametri del comando.

Home page

Indice

Introduzione

La shell Bash

Comandi interni, esterni e composti

Variabili, varibili d'ambiente e variabili speciali

Strutture di controllo

Funzioni

Esempi

Sintesi dei comandi principali

Bibliografia

HOME

Valid HTML 4.01! Valid CSS!
Author: Marco Liverani - Last modified: Sunday November 20, 2011 - URI: http://www.aquilante.net/bash/sintesiComandi.shtml