martedì 9 marzo 2010

guida pratica ai comandi di shell




Ogni volta che digitiamo un comando sulla nostra console o quando lanciamo un programma tramite il famoso click, o doppio click, su una delle icone del nostro desktop il sistema operativo intrepreta la volontà dell'utente attraverso una shell di comando. Ma cos'è esattamente una shell? Quali sono i suoi scopi e i suoi principali usi? In questa serie di articoli capiremo proprio questo: una guida di base per tutti coloro che si avvicinano a Linux ma che vogliono imparare da subito ad amministrare il proprio sistema dalla linea di comando e senza artifizi grafici.

/bin/sh: bourne again!
La shell è sicuramente una delle parti più importanti dell'intero sistema operativo. Essa è l'interprete dei comandi dati in input dall'utente e non fa altro che eseguirli. Sui sistemi Unix, la shell più famosa ed usata, dalla quale deriva anche quella di Linux, è la shell bourne. La versione migliorata prende il nome di “bourne again” shell o BASH. E' la shell più usata negli ambienti Linux anche se ne esistono altre: la Public Domain Korn Shell (PDKSH), la shell TCSH e la Z-Shell. Tutte le principali distribuzioni GNU/Linux usano la shell bash anche se permettono di usare tutte le altre. Di solito, però, la shell bash è quella usata di default dal nostro amato sistema operativo e anche noi la consideriamo tale.


Comandi fondamentali
Dopo questa breve introduzione siamo dunque pronti per partire alla scoperta dei comandi fondamentali della shell bash.


cp
Esempio: cp tux1 tux2
cp tux1 ... tuxN dir/

Il comando cp (copy) viene utilizzato per creare delle copie conformi dello stesso file su più parti del sistema, in un nuovo file o in qualche directory. Con il primo comando, infatti, copieremo il contenuto del file tux1 nel file tux2 mentre col secondo copieremo tutti i file tuxN nella directory indicata (dir/).


mv
Esempio: mv tux1 tux2
mv tux1 ... tuxN dir/

Il comando mv (move) utilizzato nella prima espressione permette di rinominare il file tux1 in tux2. Nella seconda espressione sposta, invece, tutti i file indicati nella directory prescelta (dir/).


touch
Esempio: touch tux

Il comando touch crea un nuovo file. Se il file che si vuole creare, tux, già esiste, touch non lo cambierà ma ne aggiornerà soltanto la marcatura temporale mostrata nell'elenco prodotto dal comando “ls -l”.


rm
Esempio: rm tux

Il comando rm (remove) rimuove un file dal sistema. Il file, però, una volta eliminato sarà irrecuperabile. Attenzione, quindi!


echo
Esempio: echo Sono un lettore di TuxJournal.net

Il comando echo stampa i suoi argomenti, in questo caso “Sono un lettore di TuxJournal.net”, nello standard output.


cd
Esempio: cd tuxdir

Il comando cd permette di cambiare la directory corrente e di portarsi in quella desiderata (tuxdir/).
Se si omette l'argomento dopo il comando (tuxdir), la shell torna alla directory home.


mkdir
Esempio: mkdir tuxdir

Il comando mkdir crea una nuova directory.

rmdir
Esempio: rmdir tuxdir

Il comando rmdir elimina una directory vuota. Se la directory in questione non è vuota, rmdir, non eliminirà quest'ultima. Per farlo bisognerà eliminare prima tutti i file contenuti in essa e poi eseguire il comando. E' comunque possibile utilizare il comando “rm -rf tuxdir” per eliminare una directory e tutto il suo contenuto. Attenzione, però, a quello che fate. Questo comando, soprattutto se eseguito come utente root, può essere fatale al vostro sistema.

grep
Esempio: grep tuxjournal /home/magazines

Il comando grep stampa le righe tratta da un flusso di file o di input che corrispondono ad una espressione. Nell'esempio proposto, grep, troverà nel file magazines nella directory /home ogni riferimento a tuxjournal e lo stamperà in output. Tante sono le funzioni associate a questo comando. Se volete ad esempio trovare ogni riferimento alla parola tuxjournal in tutti i file della cartella /home, è possibile farlo con il comando “grep tuxjournal /home/*”.


more e less
Esempio: more tuxjournal
less tuxjournal

I comandi less e more vengono principalmente usati quando si ha a che fare con dei file ti testo troppo lunghi e in ogni modo scomodi da leggere. Quando visualizziamo un file troppo lungo ed utilizziamo il comando “more” visualizzeremo il contenuto di quest'ultimo una schermata alla volta. Per andare avanti col testo basta premere la barra spaziatrice e per tornare indietro il tasto b. Per uscire, digitare il tasto q. Il comando “less”, invece, è molto più potente di more anche se svolge quasi le stesse funzioni. Con l'opzione “less –help”, per esempio, è possibile ottenere un buon riepilogo delle operazioni del comando.


pwd
Esempio: pwd

Acronimo di “directory di lavoro di stampa” è il comando che mostra la directory di lavoro corrente.

diff
Esempio: diff tux1 tux2

Il comando diff è molto utile per scovare le differenze tra due file di testo. Digitando il comando dell'esempio, infatti, è possibile vedere in output quali sono le sostanziali differenze tra i file di testo tux1 e tux2.

file
Esempio: file tuxfile

Il comando file è molto importante quando vedere un file e non siete sicuri del formato. Provate ad utilizzarlo per vedere se il vostro amato sistema riesce a indovinare sulla base di un vasto set di regole.