You are on page 1of 7

MANUALE RAPIDO SHELL BASH

Creato da A. Muntoni, rivisitazione a cura di A. S. Podda



TIPI DI FILE

- Indica un file regolare (col comando find si usa f);
d Indica una directory;
l Indica un link (collegamento);
b Indica una periferica a blocchi con buffer;
c Indica una periferica a caratteri con buffer;
u Indica una periferica a caratteri senza buffer;
p Indica una pipe FIFO;
s Indica una socket.

DIRECTORY PRINCIPALI

~ Indica la directory home dell'utente corrente;
/ Indica la directory root, genitore di tutte le directory di Linux;
. Indica la directory corrente;
.. Indica la directory di livello superiore a quella corrente.

METACARATTERI

. Indica un singolo carattere;
^ Indica l'inizio della riga;
$ Indica la fine della riga;
\ Neutralizza il metacarattere indicato immediatamente dopo;
[c] Indica uno qualsiasi dei caratteri presenti nell'insieme c;
[^c] Indica un carattere qualsiasi che non sia contenuto nellinsieme c;
[a-z] Indica uno qualsiasi tra tutti i caratteri presenti nell'intervallo a-z;

? Indica zero o una occorrenza di un qualsiasi carattere;
+ Indica uno o pi caratteri qualsiasi;
* Indica zero o pi caratteri qualsiasi.

COMANDI

alias nomealias='comando' : Crea un alias per il comando specificato tra apici.
awk '{print $n}' nomefile : Stampa l'ennesima parola di ogni riga del file specificato.
bash nomescript.sh [ARG] : Esegue lo script indicato, seguito da eventuali argomenti dello script.
bg [ID] : Porta in background il job attuale;
jobid : Porta in background il job indicato dal numero jobid.
bzip2 [PARAM] nomearchivio : Comprime larchivio specificato in formato Bzip2 (.bz2).
-d : Decomprime larchivio specificato.
cat nomefile : Visualizza il contenuto del file indicato.
Manuale rapido shell Bash | Pagina 1
cd [PARAM] : Modifica la directory corrente, spostandosi nella directory home;
.. : Raggiunge la directory superiore;
nomedir/ : Raggiunge la directory specificata (inserire / davanti per path assoluto).
chmod [PARAM][MODE] nomefile : Cambia i permessi ad un file/directory;
-u : Utente proprietario;
-g : Gruppo principale degli utenti;
-o : Tutti gli utenti (non specificato: tutte le categorie);
NNN : ogni cifra N compresa tra 0 e 7 indica la rappresentazione ottale dei permessi.
MODI
+r, -r : Abilita/disabilita i permessi di lettura;
+w, -w : Abilita/disabilita i permessi di scrittura;
+x, -x : Abilita/disabilita i permessi di esecuzione.
chown username nomefile : Modifica il proprietario del file indicato.
clear : Cancella gli output precedenti nel terminale.
cmp nomefile1 nomefile2 : Stampa il byte e il num. di riga della prima differenza riscontrata tra i due.
cp [PARAM] file1 file2 : Copia file1 in un nuovo file chiamato file2;
file directory/ : Copia il file indicato nella directory indicata;
-r directory1/ directory2/ : Copia directory1 e tutto il suo contenuto nella directory2.
cut [PARAM] nomefile : Stampa lennesimo carattere di ogni riga del file indicato (parametro obb.);
-cn : Stampa solo lennesimo carattere di ogni riga (separare pi posizioni con la virgola);
-fn : Stampa l'ennesima tabulazione di ogni riga.
date [PARAM] : Stampa data/ora correnti secondo il formato sab 27 nov 2010, 22.42.54, CET;
+%F : Stampa solo la data corrente, secondo il formato 2010-11-27.
du [PARAM] nomefile : Visualizza la dim. di un file (e di quelli in esso contenuti) e il suo nome.
-b : Mostra la dimensione in byte (anzich kilobyte).
-s : Mostra il totale di ogni argomento (elimina ricorsivit).
echo stringa : Stampa a video il contenuto della stringa specificata.
env : Visualizza l'elenco delle variabili d'ambiente.
export nomevar : Rende la variabile specifica visibile in qualsiasi altre shell.
expr a+b : Esegue l'espressione indicata e stampa in output il risultato.
file nomefile : Visualizza il tipo di contenuto del file indicato.
find directory -[PARAM] : Cerca uno o pi file nella directory indicata (obbligatorio param. name);
-name expr : Indica il nome/nomi dei file da ricercare;
-type T : Visualizza solo i file di tipo T indicato;
-mtime N : Visualizza solo i file modificati negli ultimi N giorni.
fg [ID]: Porta in foreground il job attuale;
jobid : Porta in foreground il job indicato dal numero jobid.
free : Visualizza informazioni sulla RAM e sullo swap.
grep [PARAM] expr nomefile : Cerca nel file le stringhe specificate dallespr. regolare expr;
-i : Ignora la distinzione tra maiuscole e minuscole;
-n : Visualizza il numero di linea nell'output;
-v : Visualizza solo le linee che non contengono la stringa;
-w : Visualizza solo le linee che contengono la stringa come parola completa;
-x : Visualizza solo le linee che coincidono esattamente con il pattern.
gzip [PARAM] nomearchivio : Comprime l'archivio specificato in formato Gzip (.gz).
Manuale rapido shell Bash | Pagina 2
-d : Decomprime larchivio specificato;
-f : Forza la sovrascrittura e la compressione dei link;
head [PARAM] nomefile : Visualizza le prime righe del file indicato (predefinito: prime 10 righe);
-nNUM : Visualizza le prime NUM righe;
-cNUM : Visualizza i primi NUM caratteri.
jobs [PARAM] : Visualizza l'elenco dei job in background;
-l : Visualizza anche il PID del processo leader di ogni job in background;
-p : Visualizza solo il PID del processo leader di ogni job in background.
kill processid : Termina il processo con il PID specificato.
killall processname : Termina il processo con il nome specificato.
less nomefile : Visualizza il file indicato pagina per pagina (scorrimento Avanti e Indietro).
ln [PARAM] nomefile nomefile2 : Crea un link fisico a nomefile chiamandolo nomefile2;
-s : Crea un link simbolico anzich fisico (massimo 6 ricorsivi).
ls [PARAM] : Stampa l'elenco dei file e delle directory contenuti nella directory corrente;
nomedir/ : Esegue il comando per la directory indicata;
-l : Visualizza una lista dettagliata;
-i : Visualizza i relativi i-node;
-R : Visualizza tutto il contenuto della directory
expr : Visualizza file e directory che soddisfano lespressione regolare expr
-a : Visualizza anche i file nascosti;
-t : Ordina i file in base alla data di ultima modifica;
-S : Ordina i file in base alla dimensione;
-1 : Visualizzazione in colonna;
-d expr/ : Visualizza solo le directory che soddisfano lespr. regolare expr.
mkdir directory : Crea una directory col nome indicato (con / davanti indica path assoluto).
more nomefile : Visualizza il file indicato (scorrimento verso il basso).
mv [PARAM] corrente destinazione : Sposta un file, pu essere utilizzato anche per rinominarlo;
-r nomedir1/ nomedir2/ : Sposta nomedir1 e tutto il suo contenuto in nomedir2.
ps [PARAM] : Fornisce l'elenco dei processi utente associati al terminale corrente;
-e : Visualizza anche i processi di sistema;
--l : Visualizza la lista dei processi dettagliata.
pstree : Visualizza l'albero dei processi.
pwd : Visualizza il nome della directory corrente.
rm [PARAM] nomefile : Elimina definitivamente il file indicato;
-i : Chiede conferma prima di eliminare;
-r directory : Elimina la directory indicata e tutto il suo contenuto;
-f : Forza leliminazione del file.
sed [PARAM] nomefile : Editor di riga non interattivo (non modifica il file), richiede parametri;
nd : Rimuove lennesima riga del file specificato;
/arg/d/ : Rimuove tutte le righe che contengono la sottostringa arg;
/arg/y/str1/str2 : Sostituisce str2 a str1 in tutte le righe che contengono arg.
set : Visualizza l'elenco delle variabili definite nella shell.
sort [PARAM] nomefile : Stampa in output il file indicato ordinato alfabeticamente;
-b : Ignora eventuali spazi nelle chiavi di ordinamento;
-f : Ignora la distinzione fra maiuscole e minuscole;
Manuale rapido shell Bash | Pagina 3
-n : Considera numerica la chiave di ordinamento;
-r : Ordina in modo decrescente;
-t s : usa s come separatore di campo;
-k s1,s2 : Usa l'intervallo da s1 a s2 come chiave di ordinamento.
strings nomefile : Visualizza le stringhe di testo all'interno di un file binario.
tail [PARAM] nomefile : Visualizza le ultime righe del file indicato (predefinito: ultime 10 righe);
-nNUM : Visualizza le ultime NUM righe;
-cNUM : Visualizza gli ultimi NUM caratteri.
tar [PARAM] nomearchivio nomefile : Crea un archivio (obbligatorio il parametro);
cf : Crea un archivio non compresso;
cvf : Crea un archivio non compresso e stampa a video i file archiviati;
xf : Estrae un archivio in formato non compresso;
czf : Crea un archivio compresso in formato Gzip (.gz);
cjf : Crea un archivio compresso in formato Bzip2 (.bz2).
top : Effettua il monitoraggio della memoria.
touch nomefile : crea un file con il nome specificato, se esiste aggiorna la data di modifica.
tr [PARAM] a b : Sostituisce tutti i caratteri a con caratteri b (utilizzabile anche per intervalli);
-c : Sostituisce tutti i caratteri diversi da a con caratteri b (complementazione);
-s : Comprime gli spazi adiacenti in uno unico (squeeze);
-d str : Cancella tutti i caratteri che sono presenti in str.
tty : Visualizza il nome del terminale corrente.
uname [PARAM] : Visualizza il nome del kernel (solitamente Linux);
-r : Stampa la release del kernel corrente.
uniq nomefile : Rimuove le righe duplicate consecutive del file e stampa in output (senza modificarlo);
unzip nomearchivio : Decomprime larchivio Zip indicato.
vi nomefile : Edita il file indicato con l'editor di testo Vi (comandi principali: i, <esc>, :q!, :wq).
wc [PARAM] nomefile : Stampa il numero di byte, di righe e di parole del file indicato;
-c : Stampa solo il numero di byte;
-w : Stampa solo il numero di parole;
-l : Stampa solo il numero di righe.
who [PARAM] : Fornisce lelenco degli utenti/terminali collegati al sistema;
-a : Stampa informazioni complete sullaccesso al sistema;
-b : Stampa lorario dellultimo avvio del sistema;
-u : Elenca gli utenti collegati.
-m : Visualizza solo gli hostname e gli utenti ad essi associati.
whoami : Stampa il nome dell'utente corrente.
zip [PARAM] nomearchivio nomefile: Comprime il file indicato in formato Zip col nome indicato.
-m : Elimina il file di origine.

FUNZIONI DELLA SHELL

nomevar=value : Assegna alla variabile nomevar il valore value (come stringa).
$nomevar : Accede al contenuto della variabile nomevar.
comando > nomefile : Redirige loutput del comando indicato in un file.
comando 2> nomefile : Redirige gli errori del comando indicato in un file.
Manuale rapido shell Bash | Pagina 4
comando > /dev/null : Non visualizza loutput del comando specificato.
comando >> nomefile : Accoda al file indicato l'output del comando utilizzato (non sovrascrive il file).
comando1 | comando2 : Utilizza l'output di comando1 come input per comando2 (pipe).
comando1 `comando2` : Utilizza loutput di comando2 come parametro per comando1.
comando < nomefile : Utilizza il file specificato come input per il comando utilizzato.
comando & : Esegue il comando indicato in background.
!?comando? : Riesegue il comando indicato con tutti i parametri con cui stato eseguito lultima volta.

SCRIPTING BASH

# commento : Tutto ci che viene scritto dopo il simbolo #, nella stessa riga, non viene interpretato.

read nomevar : Attende in input un valore e lo assegna alla variabile specificata.

let var=2+3 : Esegue loperazione aritmetica indicata e assegna il risultato alla variabile specificata;
Oppure:
var=`expr 2+3`
((var=2+3))
OPERATORI ARITMETICI
i++, ++i : Incrementa o pre-incrementa (col segno meno, decrementa) la variabile;
+, - : Segno del numero (operatori unari) o addizione/sottrazione (operatori binari);
** : Elevazione a potenza;
*, /, % : Moltiplicazione, divisione e modulo (resto della divisione tra interi);
!, ~ : Negazione logica e negazione bitwise;
<<, >> : Spostamenti bitwise (shift);
<=, >=, <, > : Diseguaglianze;
==, != : Uguaglianza e disuguaglianza;
&, ^, | : AND, XOR e OR bitwise;
&&, || : AND e OR logici.

exit [STATUS] : Termina uno script restituendo lexit status dellultimo comando eseguito al pr. padre;
n : Termina uno script, restituendo n (con n numero intero) come exit status;
$n : Termina uno script, restituendo il parametro $n (con n numero intero) ricevuto dallo script.

$1, $2 $n : Contenuto dei parametri inviati allo script, in ordine di posizione.
Particolari:
$*, $@ : Contiene tutti i parametri in serie;
$# : Contiene il numero di parametri ricevuti dallo script;
$? : Contiene l'exit status dell'ultima pipeline eseguita in foreground;
$! : Variabile che contiene lo status del pi recente processo in background;
$0 : Variabile che contiene il nome della Shell in uso;

nomearray[n] : Rappresenta lennesimo elemento di un array.

${nomearray[n]} : Dereferenzia lennesimo elemento di un array (ne indica il contenuto).

Manuale rapido shell Bash | Pagina 5
if [ condizione ] (o if test condizione)
then
true_commands
else
false_commands
fi
: Costrutto di selezione, esegue ramo then se la condizione restituisce 0, il ramo else altrimenti.
CONDIZIONI
[ -e nomefile ] : Restituisce 0 se il file specificato esiste;
[ -f nomefile ] : Restituisce 0 se il file specificato regolare;
[ -s nomefile ] : Restituisce 0 se il file specificato ha dimensione maggiore di 0;
[ -d nomefile ] : Restituisce 0 se il file specificato una directory;
[ -b nomefile ] : Restituisce 0 se il file specificato un dispositivo a blocchi;
[ -c nomefile ] : Restituisce 0 se il file specificato un dispositivo a caratteri;
[ -r nomefile ] : Restituisce 0 se il file specificato ha permesso di lettura;
[ -w nomefile ] : Restituisce 0 se il file specificato ha permesso di scrittura;
[ -x nomefile ] : Restituisce 0 se il file specificato ha permesso di esecuzione;
[ -O nomefile ] : Restituisce 0 se l'utente corrente il proprietario del file specificato;
[ -N nomefile ] : Restituisce 0 se il file specificato stato modificato dallultima lettura;
[ nomefile1 -nt nomefile2 ] : Restituisce 0 se nomefile1 pi recente di nomefile2;
[ nomefile1 -ot nomefile2 ] : Restituisce 0 se nomefile1 meno recente di nomefile2;
[ nomelink1 -ef nomelink2 ] : Restitusce 0 se entrambi i link puntano allo stesso file;
[ int1 -eq int2 ] : Restituisce 0 se int1 uguale a int2 (numeri interi);
[ int1 -ne int2 ] : Restituisce 0 se int1 diverso da int2;
[ int1 -gt int2 ] : Restituisce 0 se int1 maggiore di int2;
[ int1 -ge int2 ] : Restituisce 0 se int1 maggiore o uguale a int2;
[ int1 -lt int2 ] : Restituisce 0 se int1 minore di int2;
[ int1 -le int2 ] : Restituisce 0 se int1 minore o uguale di int2;
[ str1 = str2 ] : Restituisce 0 se str1 uguale a str2 (stringhe). Si accetta anche ==;
[ str1 != str2 ] : Restituisce 0 se str1 diversa da str2;
[ str1 < str2 ] : Restituisce 0 se str1 minore di str2 in ordine ASCII;
[ str1 > str2 ] : Restituisce 0 se str1 maggiore di str2 in ordine ASCII;
[ -z str ] : Restituisce 0 se str la stringa null, ossia ha lunghezza 0;
[ -n str ] : Restituisce 0 se str non la stringa null.

case arg in
x1) x1_commands ;;
x2) x2_commands ;;
*) else_commands ;;
esac
: Equivale al costrutto C switch, testando arg (che pu essere variabile o comando).

for arg in lista
do
istruzioni
Manuale rapido shell Bash | Pagina 6
done
: Ciclo in cui arg assume ad ogni iterazione i valori contenuti in lista.

for (( i=0; i < MAX; i++ ))
do
istruzioni
done
: Ciclo for classico del linguaggio C (MAX non deve essere preceduta da $).

while condizione
do
istruzioni
done
: Ciclo while, ripete literazione se la condizione vera, termina altrimenti.

until condizione
do
istruzioni
done
: Ciclo while inverso, ripete literazione se la condizione falsa.

nomefunzione () {
istruzioni
return n
}
: Dichiara e definisce una funzione (o procedura) che andr chiamata con
nomefunzione [ARG]
La dichiarazione devessere specificata prima della chiamata allinterno dello script.

Manuale rapido shell Bash | Pagina 7

You might also like