Primi passi

 

I primi vagiti del pinguino

Prima di iniziare l'articolo voglio spiegarne il titolo,il qui presente pinguino è il simbolo di Linux e sichiama TUX (acronimo di Torvald UniX).
Bene adesso possiamo iniziare.All'avvio della nostradistribuzione possiamo vedere le seguenti righe (se il loginsi presenta in versione grafica premiamo Control Alt F2 perla modalità console, con Alt F7 possiamo tornare allamodalità grafica):

 

Welcome to Linux 2.4.9
nomepc login:

Non spaventatevi se al posto del 2.4.9 avete un altro numeroe' la versione del Kernel, nel caso di una distribuzioneappena installata il nome del PC sarà localhost. Sesiete al lavoro o all'universita' dovrete gia'disporre di un account e una password (se non li aveterecatevi subito dai sistemisti) , se invece siete a bordo diuna LinuxBox nuova di zecca dovrete entrare come root (con lapassword da voi inserita durante l'installazione).
Una voltaautenticati avrete a disposizione un prompt di questo genere:

nomeutente@nomepc:~$ se siete un utente normale

oppure

root@nomepc:~# se siete l'utente root

In questo momento siamo davanti alla shell (interprete deicomandi), ogni cosa che scriveremo sara' interpretata dalsistema operativo e se risultera' essere un comandovalido verra' elaborato. Tanto per restare sul classicodate il comando:

echo "Hello World"

il sistema operativo vi rispondera' con:

Hello World

Linux vi ha parlato ripetendo quello che gli avete detto voi:molto piu' utile di un pappagallo vero? Il comandoecho risultera' fondamentale per gli script dishell.

Dove sono?

A questa domanda verrebbe da rispondere: "seduto davantia un computer" (ok la battuta e' pessima escontata), ma ci riferiamo a Linux ricordate?
Quando vi loggate il sistema operativo vi indirizza allavostra home, cioe' a quella directory (directorynon cartella mica siamo sotto Miciosoft Winzozz) dove potetesalvare i dati ed i file di configurazione inerenti al vostroprofilo utente.
Lanciamo il comando pwd per conoscere la directorycorrente:

nomeutente@nomepc:~$ pwd

Linux vi rispondera' con un semplice:

/home/nomeutente se siete un utente normale (senzaprivilegi) oppure

/root se siete loggati come root.

Mi sono loggato come root e' pericoloso?

In effetti siamo ancora molto inesperti e lavorare come rootsu una Linux Box puo' essere molto pericoloso, basta uncomando errato (rm -rf /*) per distruggere l'interosistema operativo (bello eh?). Quindi e' necessariocreare un utente senza privilegi (se non e' stato creatodurante il processo di installazione), cioe' un utenteche puo' lavorare solo sui file di sua proprieta' (osu file scelti dall'utente root). Il comando pereffettuare cio' e' adduser (su alcunedistribuzioni useradd). Qui sorgono i primi problemidi compatibilita' fra distribuzioni, infatti esistono dueversioni di adduser, una necessita' di argomentil'altra no (lavora su una comoda interfaccia utente:testuale ovviamente). Per scoprire quale versione possedetelanciate:

root@nomepc:~# adduser

Se Linux vi risponde con:

Login name for new user []:

avete la seconda versione (la piu' carina perintenderci), se invece vi risponde con:

usage: adduser  [-u uid [-o]] [-g group] [-Ggroup,...]
               [-d home] [-s shell] [-c comment] [-m [-k template]]
               [-f inactive] [-e expire ] [-p passwd] [-n] [-r] name

avete la prima versione (la piu' brutta). Per la secondaversione basta seguire le istruzioni, per la prima lanciateun comando del tipo:

root@nomepc:~# adduser -g user -d/home/nome_utente_da_creare -s /bin/bashnome_utente_da_creare (o useradd)

se avete usato la prima versione e' necessario anche dareuna password all'utente appena creato con il comando:

root@nomepc:~# passwd nome_utente_creato

Adesso uscite dalla shell di root, con il comando exit(con la sequenza di tasti Control D), e rientrate conl'utente appena creato (mi raccomando ne va della salutedella vostra, o nostra se siete comunisti, Linux Box).

Operazioni sui file e sulle directory

Lo so che mi fareste scannare pur di vedere cosa contiene lanostra home directory, vi accontento subito (non mi piace ilsangue, sopratutto se e' mio) lanciate immediatamente ilcomando ls. Questo comando e' equivalente al dirdel dos (il dos che ricordi...... l'ultimo S.O. di casaMiciosoft, per la cronaca gli altri sono virus coninterfaccia grafica). ls come quasi tutti i comandiLinux, ha una miriade di opzioni, vediamone alcune:

  1. -l mostra permessi, dimensione e proprietario dei file;
  2. -a mostra i file nascosti (in Linux il nome dei file nascosti inizia con un .);
  3. -F affianca ai nomi dei file eseguibili un "*" e ai nomi delle directory una "/";
  4. --color colora l'output per facilitare il riconoscimento dei file di tipo differente


Il comando ha molte altre opzioni che non sono elencabili quiper motivi di spazio (per una panoramica completa consultatela pagina man di ls, con man ls dalla quale si escepremento il tasto "q").
Adesso creeremo una directory usando il comandomkdir:

nomeutente@nomepc:~$ mkdir directory

Adesso possiamo entrare nella directory appena creata con ilcomando cd (lo stesso del dos)

nomeutente@nomepc:~$ cd directory

e tornare a quella precedente con cd .. (per tornaredirettamente alla home directory basta un cd).
Adesso creiamo un file (per creare un file completamentevuoto si usa il comando touch nomefile), in modo dapoterlo copiare, spostare cancellare ecc.. Su Linux esistonodiversi editor di testi:

  • Pico, il mio preferito utile sopratutto per modifiche veloci dei file di configurazione;
  • Emacs, il principe ideale per la stesura di testi medio lunghi e per la programmazione (si adatta con menu' aggiuntivi in base all'estensione del file), e' l'ideale per scrivere in X-Windows;
  • Vi, il piu' complesso e potente;
  • Joe, un editor semplice nello stile di pico;
  • McEdit, l'editor del Midnight Commander, semplice e coloratissimo.
Scegliete un editor, io vi consiglio pico (sara' presente solo ed escusivamente se pine, il programma di posta, e' stato installato). Lanciando il comando pico vi apparira' una schermata di questo genere:

Scrivete qualcosa, salvate il file (Control O) con nomeprova.txt e uscite (Control X).
Ora fate un ls potete vedere un file in piu'nella lista, il prova.txt (che casualita'), abbiamocreato il nostro primo file di testo con Linux. Per vederneil contenuto potete lanciare il comando cat prova.txt,tutto il contenuto del file verra' mostrato inoutput.
E ora giochiamo un po' col file appena creato.
Copiamolo nella directory creata precedentemente tuttocio' col comando:

nomeutente@nomepc:~$ cp prova.txtdirectory_creata_precedentemente

Muoviamolo ora nella stessa directory (rinominandolo):

nomeutente@nomepc:~$ mv prova.txtdirectory_creata_precedentemente/prova2.txt

e ora cancelliamolo:

nomeutente@nomepc:~$ cddirectory_creata_precedentemente
nomeutente@nomepc:~/directory_creata_precedentemente$ rmprova.txt
nomeutente@nomepc:~/directory_creata_precedentemente$ rmprova2.txt

ora torniamo alla home con un semplice:

nomeutente@nomepc:~/directory_creata_precedentemente$ cd..

la directory non ci serve piu' e la possiamo cancellare:

nomeutente@nomepc:~$ rmdirdirectory_creata_precedentemente

La reindirezione e le pipe

Adesso che sappiamo lavorare in modo basilare con linuxe' ora di introdurre le reindirezioni e le pipe (no,queste non si fumano).
La shell normalmente prende gli argomenti da tastiera emostra l'output sullo schermo grazie alle reindirezionipossiamo fare in modo che cio' avvenga da file.
La reindirezione dell'input si fa in questo modo:

nomeutente@nomepc:~$ wc < text.txt

Il comando wc conta le parole i caratteri e le righedell'input passatoli, cosi' facendo abbiamo passatocome input il contenuto del file text.txt.
La reindirezione dell'output e' la piu' usatapoiche' dirotta l'output dei comandi su file, unesempio e':

nomeutente@nomepc:~$ dmesg > messaggi

Il comando dmesg mostra i messaggi di avvio del kernellinux in output, cosi' facendo li mandiamo sul filemessaggi per consultarli in seguito senza dover rilanciare ildmesg. Il simbolo ">>" inserisce l'outputalla fine di un file esistente.
Le pipe servono per unire una serie di comandi. Questosignifica che l'output del primo comando verra'utilizzato come input del secondo e cosi' via. Un buonesempio di pipeline e' il comando molto utilizzato:

nomeutente@nomepc:~$ cat file_di_testo | less

Che mostra il contenuto del file di testo indicato,permettendo di scorrerlo dall'inizio alla fine (ilcomando less si ferma premendo il tasto "q"). Unaltro esempio e' portato dal comando grep che mostra lerighe dove e' presente la parola passatali comeargomento, con il seguente comando possiamo estendere dmesg:

nomeutente@nomepc:~$ dmesg | grep eth0

facendo si che ci mostri solo le righe riguardanti la schedadi rete.


Prospetto conclusivo dei comandi

 



Comando

Argomenti

Descrizione

ls

-

Mostra il contenuto della directory corrente

-

-a

Mostra anche i file nascosti

-

-l

Mostra gli attributi dei file e delle directory

-

--color

A colori

-

-F

Aggiunge la '/' dopo le directory e il '*' dopo gli eseguibili

cd

nome directory

Cambia la directory corrente con quella specificata

cp

file1 file2

Copia il file1 su file 2

-

-r

Copia directory ricorsivamente

mv

file1 file2

Muove file1 su file2 (file 1 viene cancellato).Viene usato anche per rinominare un file

rm

file

Cancella il file

-

-i

Chiede la conferma per la cancellazione(default)

-

-f

Non chide conferma per la cancellazione

-

-r

Cancella ricorsivamente

mkdir

Directory

Crea una directory

rmdir

Directory

Cancella una directory vuota

du

-

Mostra l'occupazione su disco di ogni file ricorsivamente

-

-s

Mostra solo l' occupazione totale

df

-

Mostra lo spazio utilizzato su ogni partizione del disco