UNIX concetti fondamentali

 

 

 

UNIX concetti fondamentali

 

Questo sito utilizza cookie, anche di terze parti. Se vuoi saperne di più leggi la nostra Cookie Policy. Scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.I testi seguenti sono di proprietà dei rispettivi autori che ringraziamo per l'opportunità che ci danno di far conoscere gratuitamente a studenti , docenti e agli utenti del web i loro testi per sole finalità illustrative didattiche e scientifiche.

 

 

Le informazioni di medicina e salute contenute nel sito sono di natura generale ed a scopo puramente divulgativo e per questo motivo non possono sostituire in alcun caso il consiglio di un medico (ovvero un soggetto abilitato legalmente alla professione).

 

 

 

 

UNIX concetti fondamentali

UNIX - CONCETTI FONDAMENTALI

  • Unix= famiglia di sistemi operativi
  • Nasce e cresce assieme a C. Prima versione: AT&T
  • Seconda versione: Unix V32 (Vax)
  • Terza versione: BSD
  • Alcune versioni attuali:
  • AIX (IBM)
  • HP/UX (Hewlett Packard)
  • Solaris (Sun Microsystems)
  • Ultrix (DEC)
  • Coherent (Mark Williams Co)
  • Linux (aa.vv.)
  • Mach (CMU, microkernel, client/server, multiprocessore, usato sulle Alpha)
  • Minix (Tanenbaum)
  • SCO Unix (Santa Cruz Operation)
  • Unicos (Cray)
  • Problema della standardizzazione: SVID (System V Interface Definition), IEEE Posix (Portable Operatine System Interface - Comitato P1003 di IEEE), X/Open Portabilità Guide (XPG)
  • Sintassi:     COMANDO [OPZIONI] [ESPRESSIONE][FILES]
  • TUTTI GLI OGGETTI IN UNIX SONO FILE (comandi, archivi, programmi utente, programmi applicativi, dispositivi fisici …)
  • UTENTI – GRUPPI
  • UTENTI NORMALI / SUPERUSER (AMMINISTRATORE DEL SISTEMA)
  • SCONNESSIONE (LOGOUT, ^D, exit)
  • SHUTDOWN (SOLO SUPERUSER)
  • STANDARD INPUT, OUTPUT, ERROR
  • REDIREZIONE (>, >>, <, <<)
  • PROCESSI IN FOREGROUND, BACKGROUND – OPERATORE &, COMANDO fg
  • SHELL: PROGRAMMA DI INTERFACCIAMENTO UTENTE/SISTEMA
  • BOURNE (AT&T), C (BSD), KORN (AT&T), TC, Z, Bash, …
  • VARIABILI D’AMBIENTE (HOME, TERM, PATH, SHELL, HOME, PWD …)
  • SEGNALI:

stop (^s - interrompe), start (^q - continua), intr (^c - ferma), background (^z – mette in bg), eof (^d – end of file), erase (^h – cancella char a sx), werase (^w – cancella ultima parola), kill (^u – cancella linea), quit (^\ - ferma con core)


  • COMANDO logname (stampa lo username), id (stampa UID,GID)
  • COMANDO uname: il sistema corrente

 

  • COMANDO su: cambia temporaneamente l’utente corrente
  • COMANDO stty: stampa o definisce i tasti con funzione speciale.

Es: stty erase ‘^h’

  • Ricerca di file (Bourne e Korn): variabile PATH.

La ricerca segue l’ordine specificato. Termina al primo ritrovamento. Il pathname vuoto ‘’ o il punto ‘.’ indicano la directory corrente.
Es:    PATH=’/usr/paolo/bin:/usr/bin:/bin:’
PATH=’:/usr/paolo/bin’
PATH=’/usr/paolo/bin::/bin’

  • COMANDO whereis: cerca i files indicati. Opzione –b cerca binari. Opzione –s cerca sorgenti

Es:    whereis –b cc

  • COMANDO which: dice quale delle istanze presenti viene eseguito
  • FILE PASSWORD: nome utente:password crittografata:user-id:group-id:commento:home directory:tipo di shell
  • COMUNICAZIONE TRA PROCESSI :

         MEMORIA CONDIVISA, SEGNALI, MESSAGGI, SEMAFORI, SOCKET, PIPE, FIFO


  • STRUTTURA DELLE DIRECTORIES (ALCUNE DIRECTORIES)

                  / (radice)
/bin (eseguibili di sistema)
/usr (directory delle home directory degli utenti)
/etc (file eseguibili, script, inizializzazione, configurazione macchina, file password, file termcap ...)
/dev (file speciali)
/sys (programmi di sistema)
/lost+found (contiene i file persi)
/lib (librerie di sistema)
/tmp (direttorio temporaneo)
/usr/spool (aree temporanee di spooling)
/usr/spool/lp (area di spooling stampante)
/usr/include (header file libreria standard C)
/usr/bin (file binari disponibili agli utenti)

  • PER AVERE INFORMAZIONI:   man [comando], man [n] [comando], man –k keyword

COMANDI PER COMUNICARE CON ALTRI UTENTI

  • users (visualizza gli userid collegati)
  • who (visualizza alcune informazioni sugli utenti collegati.

Es:  mumolo     pts/4        Mar 30 14:07    (caesar.univ.trieste.it)

  • w (visualizza cosa sta facendo qualcuno.

Es:         mumolo   pts/4         2:07pm     2                w

  • finger <username> (verifica il file password. P.es.

Es:         ingsun1$ finger mumolo@ingsun1.univ.trieste.it
[ingsun1.univ.trieste.it]
Login       Name                       TTY         Idle    When         Where
mumolo   Enzo Mumolo           pts/4                 Mon 14:07  caesar.univ.trieste.it

  • talk <username>
  • ping <dominio>  (controlla se un host e’ vivo. Per es.

ingsun1$ /usr/sbin/ping uts
uts.univ.trieste.it is alive


COMANDI PER IL FILE SYSTEM

  • rm [-i] [filename] (rimuove il/i file selezionati)
  • ls [-l1atn] [filename] (lista della directory)

         -l: long, -a: all, -t: ordina per data, -1: una colonna,  -n: come –l ma stampa UID/GID
il primo carattere puo’ essere: d, l, b ,c, p,  - es: -rw-r--r--   1 mumolo   calcolat   74681 Sep 24  1996 index

  • cd (cambia directory. Punto (.) directory corrente. Doppio punto (..) radice della directory corrente)
  • pwd (print working directory)
  • mkdir (crea sub directory)
  • rmdir (rimuove la directory corrente)
  • cp (copia file)
  • mv (muove file)
  • ln <file> <nuovo file> (crea hard link)
  • link <file> <nuovo file> (crea link simbolici)
  • chmod  nmt <nomefile>       dove n, m e t sono i permessi per proprietario, gruppo e tutti gli altri in ottale.
  • chmod classe [+/-] permessi <nome file> dove classe puo’ essere: u (proprietario), g (gruppo), a (altri)

Es: chmod ug+x file

  • find [path] [-n nome] [-print]
  • tail [+numero [lbc]] [file]  (stampa le ultime numero oggetti dal fondo del file)
  • touch [file] aggiorna la data di ultima modifica del file alla data corrente

COMANDI PER LA GESTIONE DEI PROCESSI

  • nice (abbassa la priorita’. Es. nice –8 processo)

 

  • at [time] [comandi] [processo] (attiva il processo all’ora specificata)

es. at 3pm <comandi

  • env (stampa le variabili d’ambiente. Es.

 

         ingsun1$ env
LANG=C
PATH=/usr/bin:/usr/ucb:/etc:.
LOGNAME=mumolo
MAIL=/var/mail/mumolo
PS1=ingsun1$
SHELL=/bin/ksh
HOME=/home/mumolo
FCEDIT=vi
TERM=vt100
PWD=/home/mumolo

  • ps [-af] (process status. –a: all, -f: full. Es. PID TTY TIME CMD (-a)

       UID   PID    PPID  C    STIME TTY    TIME CMD
mumolo 11534 11532  0 14:07:17 pts/4    0:01    –ksh   (-f)

  • kill nrsegnale PID (manda un segnale di terminazione ad un processo)

DISPOSITIVI

  • FILE SPECIALI IN /dev/nomedevice Esempio ls –l /dev/tty0
  • DISCHI IN                  /dev/dsk
  • COMANDI PER I DISCHI:

df [-tv]: visualizza il nome del file system, nome dispositivo, nr. Blocchi liberi, i-node disponibili. Blocchi di 512 byte.
-t : nr totale di blocchi e i-node liberi
-v: percentuale di blocchi e i-node

du [-arsu] [directory]  (visualizza per ogni subdirectory, il numero di blocchi usati)
-a: nr blocchi del file
-r: visualizza messaggio se le directory o i file non possono essere letti
-s: nr totale di blocchi relativi a tutte le directory
-u: ignora i file che hanno + di un link

file <nomefile>  (indica il tipo di file)


VISUALIZZAZIONE DEI FILE

  • head [-count] [file]       count e’ il nr. di linee da visualizzare (default 10)
  • tail [+count f r] [file]    Visualizza le ultime righe di un file. Con + tail inizia a contare dall’inizio, con – dalla fine. L’opzione –r visualizza in ordine inverso. Con –f , quando un processo scrive su un file, tail non esce e visualizza le riche man mano che vengono scritte.
  • cat [file]     Visualizza l’intero file sul terminale
  • tee <file>  Biforcazione.

Es:    ls | tee out | wc

  • more [-cs] [+startline] [+/pattern] [file]   Visualizza il file una schermata alla volta fornendo il prompt dopo ogni schermata. Per avanzare di schermata -> spazio.

Startline e’ il numero di linea da cui si vuole iniziare. Pattern e’ il pattern iniziale da cercare. Al prompt si possono dare alcuni comandi, per es. -> h
L’opzione –c visualizza ogni riga sovrascrivendo dall’alto verso il basso lo schermo.
L’opzione –s sostituisce piu’ linee bianche con una sola linea bianca.

  • pg [-cn] [+startline] [+/pattern] [file]                Simile a more, solo che si preme return, non spazio.

L’opzione –n dice di eseguire i comandi di una sola lettera senza premere return. Opzione –c come more.


FILTRI

UN FILTRO E’ UN PROGRAMMA CHE LEGGE DALLO STANDARD INPUT E SCRIVE UN QUALCHE RISULTATO SULLO STANDARD OUTPUT.

IL MODO PIU’ OVVIO DI COMUNICAZIONE TRA FILTRI E’ MEDIANTE UNA PIPELINE

cat     Non fa’ nulla: copia dallo standard input allo standard output.
Legge dalla tastiera fino ad EOF (^d). Usi di cat:

  • per creare un file:  cat > file
  • per aggiungere dati ad un file esistente:  cat >>file
  • per visualizzare un file:  cat <file
  • per copiare due file:  cat < file1 > file2

Estensioni: concatenazione di file. cat file1 file2 file3 > file4
Opzioni.                                cat [-bns] file     
-n  numera le righe
-nb non numera le righe bianche
-s sostituisce piu’ linee bianche con una linea

cut                      Estrae colonne o campi di dati dal file.
Possibili sintassi:
cut –bn1,n2,…,nn  [file]       o cut –bn1-n2 [file]      dove –b specifica la posizione in byte all’interno di ogni riga
cut –cn1,n2,…nn [file]         dove –c specifica la posizione in caratteri
cut –fn1,n2,…nn –d<carattere> [file]     dove –f specifica la posizione in campi e –d il delimitatore

crypt [key]          codifica dati mediante una chiave. Uso: crypt > file e crypt < file

Look [-df] pattern [file]        Cerca nel file che deve essere ordinato e seleziona le righe che iniziano con pattern.
Con -d si considerano solole lettere maiuscole, minuscole, numeri, tabulatori e spazi.
-f tratta maiuscole come minuscole.

paste [-d char] file                 combina colonne di dati.
Cioe’, con paste file1 file2 file 3 > out si concatenano i file per riga.
L’opzione –dchar serve per mettere il char tra i campi


sort [-dfnru] [-o outfile] [file…]
Ordina i dati del file. –d considera solo letter, numeri e spazi. –f tratta maiuscole come minuscole. –n riconosce i numeri e li ordina in modo numerico. –r ordina i dati in modo inverso. –u cerca le linee uguali e ne lascia una sola.
sort –m [-o outfile] sortedfile..       Legge file gia’ ordinati e li fonde.

spell [-b] [file]                       Legge dei dati e genera una lista della parole scritte in modo sbagliato. –b seleziona americano o britannico

tr [-cds] [set1] [set2]             Legge dei dati e sostituisce i caratteri specificati con altri caratteri. Es. tr a A < file1 > file2
Se il secondo set e’ piu’ corto del primo, l’ultimo carattere e’ ripetuto.
-c e’ il complemento del primo insieme
-d cancella tutti i caratteri specificati
-s sostituisce le ripetizioni del carattere specificato con un solo carattere

uniq [-cdu] [infile] [outfile]            Esamina i dati linea per linea cercando linee duplicate e puo’:
tenere solo le linee duplicate (-d), tenere solo le linee uniche (-u), eliminare le linee                                                    duplicate e contare quante volte le linee sono duplicate (-c).

wc [-lwc] [file]             Conta linee, parole e caratteri dello standard input o del file


LA COMPILAZIONE ED IL COMANDO make

  • il comando              cc –c file.c                   compila file.c , segnala eventuali errori e scrive il risultato della compilazione (oggetto) in file.o
  • il comando viene ripetuto per tutti i file che compongono il programma. Poi:                                                             cc file1.o file2.o -l<libreria> -o<nome file uscita>
  • il compilatore ‘asseconda’ il programmatore cercando di usare anche i costrutti ‘irregolari’ (per es. quando una funzione viene chiamata con diverso nr. di parametri)
  • il comando              lint file1.c file2.c … -l<libreria>             verifica la correttezza dei sorgenti (per es. controlla il nr. di parametri, tipo di funzioni, etc.)
  • una libreria e’ un insieme di file oggetto riuniti in un file archivio.
  • le librerie sono contenute in /lib e /usr/lib con nome lib<nome>.a
  • come si richiamano? Con la sintassi  -l<nomelibreria>
  • alcune librerie:

                           lc               libreria standard. Viene caricata automaticamente
lcurses       gestione del video ad alto livello
lm              funzioni matematiche

  • se il numero di file sorgenti e’ maggiore di 10, allora diventa necessario usare il comando make per gestire il programma
  • il comando     make programma         indica che vogliamo generare una verione del programma.
  • Il programma e’ l’obiettivo (target) della operazione e dipende da uno o piu’ file, chiamati componenti, i quali a loro volta possono dipendere da altri file.
  • Il comando make deve conoscere questa gerarchia di dipendenze che vengono scritte nel file     makefile     o       Makefile

  • Esempio di makefile:

# questo e’ un commento
programma : main.o file1.o file2.o file3.o
cc –o programma main.o file1.o file2.o file3.o

main.o : main.c
cc –c main.c

file1.o : file1.c
cc –c file1.c

file2.o : file2.c
cc –c file2.c

file3.o : file3.c
cc –c file3.c

  • le linee che contengono i due punti specificano le dipendenze. A sinistra dei due punti c’e’ il target; a destra ci sono le componenti
  • le linee che cominciano con il tab sono linee comando; specificano come costruire i target
  • make virifica le date per vedere se i file oggetto sono aggiornati. Se sono aggiornati non fa’ niente e scrive semplicemente

‘programma’ is up to date

  • il diesis rappresenta l’inizio di un commento. Non mettere dopo il tab!

  • make si puo’ usare con qualsiasi tipo di comandi. Per esempio:

report : file1 file2 file
sort –bdf file1 file2 > /usr/tmp/tempor
awk –f file /usr/tmp/tempor > report
rm /usr/tmp/tempor

  • si possono usare anche caratteri di pattern matching *, ? per identificare i file

 

Fonte: ftp://docenti.ing.units.it/arc_stud/Mumolo/CopiaPortatile/SistemiOperativi/UNIX.doc

Sito web da visitare: docenti.ing.units.it

Autore del testo: non indicato nel documento di origine

Nota : se siete l'autore del testo sopra indicato inviateci un e-mail con i vostri dati , dopo le opportune verifiche inseriremo i vostri dati o in base alla vostra eventuale richiesta rimuoveremo il testo.

Parola chiave google : UNIX concetti fondamentali tipo file : doc

 

UNIX concetti fondamentali

 

 

Visita la nostra pagina principale

 

UNIX concetti fondamentali

 

Termini d' uso e privacy

 

 

 

UNIX concetti fondamentali