Previous: Il file system, Up: Nozioni elementari sul sistema operativo unix


4 La struttura generale dei comandi unix

Prima di analizzare i principali comandi che vi capitera' di usare, vediamo brevemente la struttura generale dei comandi unix.

A questo scopo, prendiamo un tipico comando come esempio specifico: il comando ls. Questo comando si usa spessissimo, perche' la sua funzione e' quella di produrre una lista di files sul terminale.

Nel caso piu' semplice, il comando ls viene invocato digitando semplicemente ls al prompt della shell (seguito, naturalmente, dal tasto Invio, come gia' detto: non ripetero' piu' questo dettaglio):

   dschgrazlin2:5> ls
   Mail            c_develop       cvs      emacs  minicom.log  nsmail
   News            contacts.ascii  doc      latex  mpd.hosts    scripts
   XF86Config.new  contacts.dat    doc.old  mail   notes        tmp
   dschgrazlin2:6> 

Come vedete, in questo caso il comando produce la lista di files presenti nella current directory, cioe' la directory dove "ci si trova" quando si invoca il comando.

Se pero' siamo interessati a vedere la lista dei files presenti non nella current directory, ma in un'altra directory qualsiasi, dovremo invocare il comando ls dandogli un cosiddetto argomento, che in questo caso sara' il path (assoluto o relativo) della directory di cui vogliamo conoscere il contenuto:

   dschgrazlin2:6> ls /usr
   X11R6  dict  games  include  kerberos  libexec  man   share  tmp
   bin    etc   html   info     lib       local    sbin  src    var
   dschgrazlin2:7> 

In questo caso otteniamo la lista dei files presenti nella directory /usr.

Se vogliamo ottenere la lista dei files presenti in piu' di una directory, basta invocare il comando ls specificando piu' argomenti, ciascuno dei quali sara' il nome di una directory:

   dschgrazlin2:8> ls /usr /tmp /var
   /tmp:
   arpa.pdf    gsrvdir501     orbit-balducci  plugtmp-2  plugtmp-5
   gsrvdir0    gsrvdir505     plugtmp         plugtmp-3
   gsrvdir500  mcop-balducci  plugtmp-1       plugtmp-4

   /usr:
   X11R6  dict  games  include  kerberos  libexec  man   share  tmp
   bin    etc   html   info     lib       local    sbin  src    var

   /var:
   amavis    cache  empty  lib    lock  mail  opt       run    tmp         yp
   arpwatch  db     gdm    local  log   nis   preserve  spool  virusmails
   dschgrazlin2:9> 

In questo caso l'output di ls sara' la lista dei files presenti nelle tre directories: /usr, /tmp e /var.

Quindi: un comando unix puo' essere invocato senza argomenti, con un solo argomento o con piu' argomenti.

Non tutti i comandi unix accettano argomenti: alcuni non ne accettano, altri ne accettano solo uno, altri ancora ne possono accettare piu' di uno (come il comando ls). Il fatto di accettare o meno uno o piu' argomenti dipende dal particolare comando e dalla sua funzione.

FIXME: modificatori/opzioni/switch