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.