Tutorials » Linux » Nozioni Linux - 2

Comandi di base

In questo capitolo si forniscono le nozioni pratichefondamentali per l’utilizzo di un qualsiasi sistema operativo Unix-compatibile. Come ambiente concreto di riferimento si utilizzerà una qualsiasi distribuzione Linux (es. RedHat o Knoppix).

NOTA: Unix è case-sensitive ovvero la differenza tra maiuscole e minuscole è sempre importante al contrario di DOS/Windows (che sono dunque case-insensitive). Comandi, pasword, nomi di file e di utenti etc. sono dunque soggetti a questa regola.

Login & logout

In ambiente Unix ad ogni utente è assegnata una coppia nome utente / password. Dopo la fase di avvio il sistema propone la procedura di login: se un certo utente inserisce le esatte credenziali può avere accesso alla shell.
Il login può essere eseguito in ambienti diversi, grafici o testuali da locale o da remoto ma hanno tutti lo stesso scopo: verificare che l'utente abbia i requisiti per accedere al sistema o ad un suo servizio e metterlo in condizione di interagire con la macchina.
 Il concetto fondamentale è che una volta effettuato il login, l’utente fisico impersona l’utente unix ed è soggetto alle eventuali limitazioni imposta a tale utente dell’amministratore del sistema.
Il logout è esattamente l'opposto del login: chiude la shell aperta con il precedente login e tutti i successivi programmi lanciati dall'utente, e fa in modo che l'utente debba ripetere il login per riaccedere al sistema.

La shell bash

Come si è già visto ciò che permette a un utente di interagire con il sistema operativo è la shell, che si occupa di interpretare ed eseguire i comandi dati dall’utente. Dal punto di vista pratico, il funzionamento di un sistema Unix dipende molto dalla shell utilizzata, di conseguenza, la scelta della shell è molto importante. La shell diffusa per il sistema GNU/Linux è bash (Bourne Again SHell).
Tra i compiti base svolti da una qualunque shell si hanno i seguenti:

 

La shell bash in offre le seguenti funzioni avanzate:

Il prompt riporta in ogni momento il nome dell’utente corrente seguito da un carattere @ e dal nome del sistema; dopo uno spazio è invece riportata la directory corrente:

[utente@server1 /]$ 

Il carattere $ finale rappresenta il fatto che è stato fatto il login con un normale utente (dal nome ‘utente’).
L’interazione tra utente e shell funziona essenzialmente nel seguente modo: l’utente inserisce un comando/programma seguito dalle eventuali opzioni e  preme il tasto ‘invio’; la bash manda in esecuzione il comando/programma e ne stampa l’output sul terminale.

Ad esempio è possibile cancellare lo schermocon il seguente comando:

[utente@server1 /]$ clear

L’output del comando clear è semplicemente quello di pulire lo schermo. Il comando clear è molto semplice e non ha bisogno di ulteriori specifiche; in generale però è necessario specificare argomenti e/o opzioni. In ambiente Unix la convenzione (quasi sempre rispettata) è la seguente:
[utente@server1 /]$ <comando> <opzioni>  <argomenti>

Le opzioni sono i modificatori del comportamento standard del programma mentre gli argomentirappresentano l’oggetto o gli oggetti sui quali il programma deve operare. Ad esempio:
[utente@server1 /]$ ls –a /archivio

visualizza (comando ls) tutti i file (opzione –a) della directory ‘/archivio’ (argomento).
Ovviamente ogni comando ha opzioni e argomenti di default. Ad esempio il semplice comando:
[utente@server1 prova]$ ls
visualizza tutti i file meno quelli nascosti della directory corrente (in questo caso prova)

Ottenere aiuto

Il successo di Unix è da attribuirsi anche alla grande quantità di documentazione interna presente di default. Quasi tutti i programmi permetto di stampare una schermata d’aiuto specificando:

[utente@server1 prova]$ <comando> -h

Di seguito vengono riportati inoltre alcuni comandi per richiamare manuali ed info di vario genere presenti in locale:

man <comando>

E' la fonte più rapida e semplice per apprendere delle informazioni riguardanti comandi, file di configurazioni, funzioni di sistema e altro.

info <command>

Info è un lettore di ipertesti GNU. Molti programmi hanno la loro documentazione anche in questo formato.

whatis <keyword>

Cerca la keyword specificata all'interno del database whatis (contiene una breve descrizione di tutti i comandi nel sistema). Equivalente a man –f.

apropos <stringa>

Come whatis, ma cerca stringhe e non parole complete, di conseguenza può dare risultati più verbosi. Equivalente a man –k.