UNIX

Unix e' un sistema operativo multiuser e multitasking.

DIRECTORY STANDARD UNIX

Alcune directory di Unix sono standardizzate ed hanno un significato codificato:

/                           sistema operativo/dir principali (HOME di root)
/etc                        scripts di startup,cnf files,commandi poco usati
/lib                        librerie di sistema
/usr/lib                    librerie di sistema linguaggio 'C'
/usr/include                include di sistema linguaggio 'C'
/tmp                        directory temporanea
/usr/local/                 applicativi locali alla societa'
           etc/             files di configurazione/scripts
           bin/             eseguibili/binari/scripts
           include/         include files
           lib/             librerie
           doc/             documentazione
           man/             manuali in linea
           /          dir. di una applicazione complessa
                  src/      sources
                  include/  includes
                  lib/      librerie
                  bin/      binary
                  etc/      files di configurazione scripts
                  doc/      documentazione
/home/*                     directory degli utenti
/users/*                    directory degli utenti
                   dir. dell'utente COGNOME
                      dir. dell'applicazione APPL
- /usr/local/

La directory /usr/local/ e' quella dove sono messe le parti che devono essere viste da tutti gli utenti del sistema.

Le parti messe in queste directory DEVONO essere testate in quanto sono lanciabili o utilizzabili da tutti.

Intendesi come TESTATE parti che non contengono errori o che hanno funzionalita' incomplete o pericolose.

L'accesso a questa directory deve normalmente passare attraverso il System Administrator salvo eccezioni da gestire singolarmente.

Le parti singole si inseriscono direttamente nelle sotto-directory bin, etc, lib, doc.

Nel caso di un prodotto con piu' directory e/o molti files e' preferibile inserire un livello di directory con il nome del prodotto o applicazione.

- /tmp

La directory /tmp puo' essere periodicamente ripulita dei files piu' vecchi e/o piu' grossi anche senza preavviso.

DIRECTORY UTENTE UNIX

La directory utente e' libera e non segue alcun standard vincolante.

Tuttavia alcune piccole regole mutuate dall'ambiente Unix vengono suggerite.

Le seguenti directory sono consigliabili:

$HOME/bin         eseguibili/script utente
$HOME/etc         files di configurazione utente
$HOME/tmp         da utilizzare al posto di /tmp se si vuole evitare
                  cancellazioni improvvise e inopportune
Le modalita' di accesso dei files consentono di proteggere gli stessi da involontarie cancellazioni proprie o degli utenti appartenenti per esempio allo stesso gruppo.

Per evitare questo genere di problemi settare i premessi della propria directory con i seguenti comandi:

  cd
  chmod -R g-w *
  chmod -R o-wx *

DIRECTORY STANDARD DI SVILUPPO

Quando si deve lavorare ad un progetto viene consigliata la seguente struttura di directory che consente una buona suddivisione delle parti che compongono il progetto.
...//          directory utente sviluppo
           src/      file sorgenti  ( .c .y .l .f Makefile ... )
               RCS/  RCS dir
           inc/      file include   ( .h )
               RCS/  RCS dir
           bin/      eseguibili
           lib/      librerie
           etc/      files di configurazione
           doc/      documentazione
           bak/      salvataggi utente
Per il file di compilazione utilizzare di preferenza il nome 'Makefile' in quanto con la lettera 'M' maiuscola viene elencato prima degli altri files con il comando 'ls'.

USERS STANDARD

Ogni utente del sistema viene identificato dal cognome, se il cognome e' piu' lungo di 8 caratteri viene troncato in modo chiaro e comunque non opinabile, per esempio un'utente con cognome 'fumagalli' potrebbe essere abbreviato con 'fuma' o 'fumagall' a piacere dell'utente.

Tutti gli utenti utilizzano come shell di partenza la 'ksh' o Korn Shell.

Tale shell e' al momento la piu' utilizzata, versatile e compatibile con altre vecchie versioni (sh o Bourne shell).

Si sconsiglia l'utilizzo della 'csh' in quanto non compatibile con le shell maggiormente utilizzate: 'sh' e 'ksh'.

Il file '.profile' viene installato da un default e puo' successivamente essere modificato dall'utente lasciando, possibilmente, inalterata la parte comune.

Sono gia' forniti i seuenti alias che semplificano l'approccio ad utenti non abituati a Unix (ma a MsDos):

dir            .. ls -la
ren/rename     .. mv
copy           .. cp
del            .. rm -i
type           .. cat

GROUPS STANDARD ==================================================

Vengono definite alcune caratteristiche di gruppi con caratteristiche diversi per differenziare i permessi degli utenti:

    usr                  .. utenti interni ditta
    guest                .. utenti esterni ditta

REGOLE GENERALI

- Root

L'utente root non deve essere utilizzato per le normali operazioni di lavoro.

- Files e directories

Per definizione non esistono limitazioni ai nomi che si possono dare ai files a alle directory.

Il solito buon senso forza ad impedire le seguenti liberta' almeno nelle parti che devono essere utilizzate da piu' utenti:

- directory che cominciano con .

- nomi che contengono caratteri non displayabili

- nomi che sono esageratamente lunghi

Si consiglia inoltre di utilizzare il piu' possibile nomi composti da caratteri minuscoli.

- Links

Non utilizzare il link fisico dei files usa piuttosto 'ln -s' che crea un link simbolico e consente di avere un unica copia sorgente con una miglior visibilita' del link.

- Alias

Evitare assolutamente alias di programmi standard Unix. Questa pratica, apparentemente innoqua, puo' essere causa di involontari errori o perdite di tempo.

Evitare dunque la creazioni di alias o script con, per esempio, i seguenti nomi:

cat, ls, grep -v, cd $HOME, ... Se proprio e' necessario utilizzare alcune delle seguenti modalita':

Cat, L, NG, cdh, ... Evitare assolutamente alias di comandi distruttivi con path associati:

RM := rm -rf * se lanciato inconsapevolmente dalla root questo comando rimuove ogni file a cui puo accedere !!!

- Core

Rimuovere i core che vengono creati nelle directory utente mediante il comando 'rmcore' che rimuove i core piu' vecchi di una settimana.

- Password

Si consiglia di evitare per le password le seguenti regole:

- uguale al nome di login

- il nome di login rovesciato

- nomi di persona, parole di uso comune

Esistono programmi che decodificano facilmente queste password.

Tipi di password consigliati:

- pwd-4 xkt,3 2oni %p2p ::ks al:berto$

- Estensione files

Unix non necessita di nessuna estensione per identificare tipologie di files, comunque alcune regole sono indicate negli ambienti di sviluppo e dal comune buon senso.

Inoltre per Unix il punto come separatore non assume significati particolari (tranne in due casi) essendo semplicemente una convenzione mutuata da altri ambienti, ma permette all'utente una facile identificazione dei files.

Di seguito alcune convenzioni:

    .C .cc .CC    .. sorgenti linguaggio 'C++'
    .c            .. sorgenti linguaggio 'C'
    .cob          .. sorgenti linguaggio 'cobol'
    .h            .. include linguaggio 'C'
    .o            .. oggetti prodotti dal compilatore
    .a            .. librerie archive
    .sl           .. shared library
    .H .hh .HH    .. include linguaggio 'C++'
    .y            .. sorgenti 'yacc'
    .l            .. sorgenti 'lex'

    .log          .. log files
    .dat          .. files contenenti dati
    .sh .ksh .csh .. indica shell script