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