[1]
LU | MA | ME | GI | VE | |
8:30-10:00 | 2, 3 | ||||
10:30-12:30 | lezione | ||||
14:00-15:30 | 3, 1 | ||||
15:30-17:00 | 1, 2 |
lezione | Esercitazione |
4/12/2002 | 5/12 |
11/12/2002 | 12/12 |
UNIX è un ambiente di lavoro alternativo a Windows. Serve per compiere le principali operazioni su un computer e eseguire programmi.
È molto utilizzato in campo tecnico-scientifico, e particolarmente adatto per macchine che devono fare da server (es. nei siti WWW: vedi http://leb.net/hzo/ioscount/ oppure http://econ.csuchico.edu/~harrison/k12linux/).
A differenza di Windows, UNIX non è un prodotto commerciale; e più simile ad una lingua. Esitono molti ``dialetti'' UNIX: il più diffuso è Linux, che funziona sui PC.
Obiettivo di questo modulo è mettere in grado gli studenti di lavorare con UNIX in modo elementare: operare su un terminale ASCII dando semplici comandi per gestire file, creare ed editare file, elaborare file di dati, ed usare semplici applicazioni.
Il S.O. è il s/w di basso livello e di uso generale che
A sua volta il SO è distinto in vari strati
[Free OnLine Dic Of Computing]:operating system:
The low-level software which handles the interface to peripheral hardware, schedules tasks, allocates storage, and presents a default interface to the user when no application program is running.
The OS may be split into a kernel which is always present and various system programs which use facilities provided by the kernel to perform higher-level house-keeping tasks, often acting as servers in a client-server relationship.
Some would include a graphical user interface and window system as part of the OS, others would not. The operating system loader, BIOS, or other firmware required at boot time or when installing the operating system would generally not be considered part of the operating system, though this distinction is unclear in the case of a rommable operating system such as RISC OS.
The facilities an operating system provides and its general design philosophy exert an extremely strong influence on programming style and on the technical cultures that grow up around the machines on which it runs.
Example operating systems include 386BSD, AIX, AOS, Amoeba, Angel, Artemis microkernel, BeOS, Brazil, COS, CP/M, CTSS, Chorus, DACNOS, DOSEXEC 2, GCOS, GEORGE 3, GEOS, ITS, KAOS, Linux, LynxOS, MPV, MS-DOS, MVS, Mach, Macintosh operating system, MINIX, Multics, Multipop-68, Novell NetWare, OS-9, OS/2, Pick, Plan 9, QNX, RISC OS, STING, System V, System/360, TOPS-10, TOPS-20, TRUSIX, TWENEX, TYMCOM-X, Thoth, Unix, VM/CMS, VMS, VRTX, VSTa, VxWorks, WAITS, Windows 3.1, Windows 95, Windows 98, Windows NT.
Servono per permettere all'utente di svolgere operazioni comuni, ad es., spostare un file da una directory all'altra o lanciare un programma. In UNIX si hanno
Ad es:
grep Error /var/log/httpd/access.log | wc -lesamina il file di statistiche del server HTTP selezionando le righe che contengono la parola ``Error'' (primo comando, fino alla ``|'' ) e poi le conta (secondo comando).
Caratteristiche di UNIX rispetto ad altri Sistemi Operativi:
Insieme alle componenti fondamentali del sistema operativo, in UNIX si trovano sempre
cfr http://www.attivissimo.net/w2l1/03.htm
In genere, si intende s/w libero = senza diritti d'autore (si può copiare legalmente)
Dibattito:
Di fatto:
Aspetto fondamentale: per favorire lo sviluppo, non è tanto importante che il s/w sia gratuito, quanto che sia modificabile (codice sorgente aperto)
(Basato su []e http://www.gnu.org/philosophy/free-sw.html)
Secondo la definizione più diffusa, è "libero" il s/w che permette a chiunque di:
Altre definizioni:
Ci sono vari ``dialetti'' UNIX, catalogabili in due gruppi:
Note:
"UNIX® is a registered trademark of The Open Group""però di fatto si è trasformato in uno standard; è proprietà di un'organizzazione più interessata agli standard industriali che alla proprietà intellettuale. Ci sono test passati i quali un S.O. può dirsi legalmente UNIX.
POSIX (Portable Operating System Interface):A set of IEEE standards designed to provide application portability between Unix variants. IEEE 1003.1 defines a Unix-like operating system interface, IEEE 1003.2 defines the shell and utilities and IEEE 1003.4 defines real-time extensions.
1969 Thompson (Bell Laboratories, NJ, USA)
Principali famiglie di discendenti (anni '80-'90):
SystemV | (AT&T) | commerciale, solida |
BSD | (Università Berkeley) | non-commerciale, dinamica |
[AIL]Negli anni '90 dal punto di vista del linguaggio le due famiglie (BSD e SysV) si sono avvicinate.I primi utenti di UNIX sono state le università, a cui in particolare questo sistema operativo veniva fornito a costo contenuto, ma senza alcun tipo di supporto tecnico, né alcuna garanzia. Proprio questa assenza di sostegno da parte della casa che lo aveva prodotto, stimolava la cooperazione tra gli utenti competenti, in pratica tra le università.
Il maggior fermento intorno a UNIX si concentrò presso l'università della California a Berkeley, dove a partire dal 1978 si cominciò a distribuire una variante di questo sistema operativo: BSD (Berkeley Software Distribution).
Per difendere il software prodotto in questo modo, nacque una licenza d'uso che rimane il progenitore della filosofia del software libero: la licenza BSD.
Per molto tempo, la variante BSD di UNIX rimase relegata all'ambito universitario o a quello di aziende che avevano acquistato i diritti per utilizzare il codice sorgente dello UNIX originale. Ciò fino a quando si decise di ripulire lo Unix BSD dal codice proprietario.
Il risultato iniziale fu 386BSD, che venne rilasciato nel 1992 con la versione 0.1. [...] si svilupparono altri progetti indipendenti per ottenere, finalmente, un sistema BSD libero. Il primo di questi fu nominato NetBSD, al quale si aggiunse subito dopo FreeBSD; più tardi, apparve anche OpenBSD.
[...]
Allo stato attuale, le tre varianti *BSD sono tutte riconducibili a BSD 4.4-Lite, dove le differenze più importanti riguardano le piattaforme hardware in cui possono essere installate e l'origine della distribuzione. Infatti, il punto di forza della variante OpenBSD, sta nel fatto di essere realizzata in Canada, da dove possono essere distribuiti anche componenti per la comunicazione crittografica.
Linux è un Sistema Operativo della famiglia UNIX con le seguenti caratteristiche:
Sono a pagamento: (eventualmente) qualche ``abbellimento'' s/w non essenziale, la commercializzazione, la guida stampata, i CD.
Esempi di distribuzioni Linux:
Nelle esercitazioni useremo RedHat 7.2.
GNU è un insieme di strumenti di s/w libero (comandi, shell, applicazioni) da usare ``sopra'' un kernel UNIX: GNU/Hurd (Sistema Operativo composto dal kernel Hurd e da GNU), GNU/Linux
È un ``progetto'' creato dalla Free Software Foundation (FSF)
Da [AIL]:Nel 1985, Richard Stallman ha fondato la FSF, Free Software Foundation, con lo scopo preciso di creare e diffondere la filosofia del «software libero». Libertà intesa come la possibilità data agli utenti di distribuire e modificare il software a seconda delle proprie esigenze e di poter distribuire anche le modifiche fatte.
Queste idee filosofiche si tradussero in pratica nella redazione di un contratto di licenza d'uso, la General Public License, studiato appositamente per proteggere il software libero in modo che non potesse essere accaparrato da chi poi avrebbe potuto impedirne la diffusione libera. Per questo motivo, oggi, il copyright di software protetto in questo modo, viene definito copyleft.
Il software libero richiede delle basi, prima di tutto il sistema operativo. In questo senso, l'obiettivo pratico che si prefiggeva Richard Stallman era quello di realizzare, con l'aiuto di volontari, un sistema operativo completo.
Nacque così il progetto GNU (Gnu's Not Unix), con il quale, dopo la realizzazione di un compilatore C, si volevano costruire una serie di programmi di servizio necessari nel momento in cui il cuore del sistema fosse stato completo.
Il progetto GNU diede vita così a una grande quantità di software utilizzabile sulla maggior parte delle piattaforme Unix, indirizzando implicitamente il software libero nella direzione dei sistemi di questo tipo.
Nel 1990 inizia lo sviluppo del kernel Hurd e intorno al 2000 inizia la distribuzione del sistema GNU/Hurd (sistema GNU basato su kernel Hurd).
NOTA: i comandi che appaiono sottolineati, come less, non sono UNIX, ma estensioni GNU che comunque si trovano nella maggior parte delle distribuzioni di Linux
comando [opzioni] argomento1 argomento2 ...
Es:
date
date -u
grep Rossi elenco.txt
grep -i Rossi elenco.txt
tar --help
exit è il comando generico di uscita dalla shell (funziona sempre); logout fa uscire solo da shell di login.
/home/tizio
finger fa vedere gli utenti collegati, in un modo simile a who; con finger utente si ottengono informazioni su qualunque utente, anche se non collegato
può essere un documento, un insieme di dati in forma binaria, un programma
ramo.----->o
| .------>o
| ramo |
radice o----------->o-------->o nodo
|
`------->o nodo
ogni nodo può essere terminale (file) o ramificato (directory);
in altre parole, una directory può contenere
pwdper conoscere il contenuto della directory corrente, dare
ls
cd nuovadirectoryin particolare, per andare alla directory ``genitrice'' (=sopra la corrente, cioè all'indietro verso la radice):
cd ..
In UNIX ogni oggetto (file o directory) può essere sempre identificato in tre modi:
es: se ci si trova sulla directory /home/tizio/, il primo file si chiama
ese/pippo
es: il percorso assoluto per i due file evidenziati è, rispettivamente:
/home/tizio/ese/pippo/home/infochim/wrk/e3/gigi
Ci sono dei nomi speciali di directory:
directory corrente | nome del file |
(qualunque) | /home/tizio/ese/pippo |
/home/tizio/ese/ | pippo |
/home/tizio/ | ese/pippo |
/home/tizio/ese/ | ./pippo |
/home/caio | ../tizio/ese/pippo |
(qualunque; utente= tizio) | ~/ese/pippo |
(qualunque; utente= caio) | ~tizio/ese/pippo |
Il comando
ls dirdà la lista dei file contenuti nella directory dir.
Note
cd dirls
ls .
si possono vedere con l'opzione -a di ls:
ls -a
ogni file può avere il permesso di
e questi permessi possono essere in relazione a
si esprimono con una stringa di nove caratteri:
Permesso | utente | gruppo | altri | ||||||
sì | r | w | x | r | w | x | r | w | x |
no | - | - | - | - | - | - | - | - | - |
ls -lNotare che la stringa dei permessi contiene 10 caratteri: il primo indica (fra l'altro) se si tratta di una directory, nel qual caso compare una dEs:
-rw-r--r-- 1 infochim chimica 6661 Nov 12 15:30 Mailbox
significa: leggibile e scrivibile, ma non eseguibile, dall'utente (infochim); solo leggibile dagli appartenti al gruppo (chimica); solo leggibile da tutti gli altri
Le altre informazioni che vengono stampate con questo comando (le ultime colonne prima del nome del file) sono la data e l'ora di ultima modifica del file.
N.B. si possono combinare le opzioni -l e -a, in uno qualunque dei seguenti modi
ls -l -als -a -l
ls -la
ls -al
Notare il comportamento di cp e mv:
comando origine ... destinazione
riga di comando | spiegazione |
cp file1 file2 | copia file1 in file2 |
cp file1 dir | copia file1 in dir/file1 |
cp file1 file2 ... dir | copia file1, file2, ... in dir/file1, dir/file2, ... |
mkdir directory
rmdir directoryper poterla rimuovere, la directory deve essere vuota
cat file
more file
less file
per editare un file:
emacs file
queste sono proprietà per lo più comuni a tutte le shell
In UNIX, i dati prodotti da un comando sono detti standard output e quelli forniti al comando sono detti standard input. Questi flussi di dati in generale sono associati così:
standard input | tastiera |
standard output | video |
comando > file | esegui comando e dirigi output su file |
comando < file | esegui comando prendendo input da file |
comando1 | comando2 | l'output di comando1 diventa input di comando2 |
comando >> file | aggiungi output di comando in coda a file |
date | stampa la data e l'ora |
date > a.000 | mette il risultato nel file a.000 |
wc -w < a.000 | conta le parole nel file a.000 |
Gli ultimi due comandi possono essere combinati in una pipeline, senza passare attraverso il file a.000:
date | wc -w | conta le parole nell'output di date |
Nota: una pipeline può essere costituita da più di due comandi in fila:
comando1 | comando2 | ... | comando99e si può ridirigere l'input del primo comando e l'output dell'ultimo:
comando1 < file1 | comando2 | ... | comando99 > file99
Quando si dà un comando dal prompt, non è possibile dare ulteriori comandi finché questo non è terminato. Dal prompt però si possono però dare due o più comandi per volta:
comando1 ; comando2Il sistema esegue comando1 , aspetta che sia terminato, poi esegue comando2
comando1 & comando2Il sistema esegue comando1 e senza aspettare che sia terminato esegue comando2
comando &Il sistema esegue comando in sottofondo e presenta il prompt per nuovi comandi.
Per vedere tutti i processi, dare il comando ps. Esempio:
$ ps
PID TTY TIME CMD
17686 pts/3 00:00:00 tcsh
18829 pts/3 00:00:00 ps
$ emacs&Il secondo numero che viene scritto è il numero di processo dell'ultimo processo del job.[1] 10301
Per vedere su terminale la lista di tutti i job, dare il comando jobs
$ cat gigafile | sort &
[2] 10334$ jobs
[1] + Running emacs
[2] - Running cat gigafile | sort &
Notare che ad ogni comando del job 2 (cat e sort) viene assegnato un distinto numero di processo:$ ps
10284 pts/0 00:00:00 bash
10301 pts/0 00:00:00 emacs
10333 pts/0 00:00:00 cat
10334 pts/0 00:00:00 sort
10335 pts/0 00:00:00 ps
kill numero-processooppure
kill %numero-job
Nei nomi di file si possono usare caratteri ``jolly'':
carattere jolly | significato |
* | un qualunque numero di caratteri (anche nessuno) |
? | un solo carattere |
[abc] | un solo carattere tra quelli citati tra parentesi |
*.c | tutti i file che finiscono per .c |
/etc/* | tutti i file della directory /etc |
capitolo?.txt | capitolo1.txt capitolo2.txt ... (ma non capitolo23.txt) |
[ab]* | tutti file che cominciano per a o per b |
Esempio: supponiamo che la directory corrente contenga i file
lettera.doc
memo.txt
riassunto.doc
CV.doc
cp *.doc ~ /backup-dirsi traduce nel comando
cp lettera.doc riassunto.doc CV.doc ~ /backup-dirche copia i tre file nella directory ~ /backup-dir
cp lettera.doc *.txt
diventacp lettera.doc memo.txtche copia il primo file nel secondo, distruggendolo!
- 0.10 NOTA: in DOS, il comando
- 0.10
copy lettera.doc *.txt
- 0.10 significa invece
- 0.10
copy lettera.doc lettera.txt
Oltre a quella sui nomi di file, la shell esegue una serie di sostituzioni sulla riga di comando. Ogni sostituzione è distinta da un carattere speciale.
caratteri | sostituzione eseguita | esempio di comando |
* ? [] | nomi di file | mv capitolo*.txt ../libro |
~ | directory di partenza (home directory) degli utenti | ls ~tizio/tmp |
$ | variabili | echo Terminale definito come $TERM |
! | cronologia (ultimi comandi dati) | !! |
`` | risultato del comando | echo "Ci sono `who | wc -l` utenti collegati" |
Quando si vuole usare un carattere speciale senza operare sostituzioni, lo si può proteggere:
$ cd /
$ echo come va?
come var
$ echo come va?
come va?
$ echo 'questo carattere si chiama tilde: ~'
questo carattere si chiama tilde: ~
$ echo questo carattere si chiama tilde: ~
questo carattere si chiama tilde: /home/infochim
last | fa vedere tutte le ultime sessioni su questo computer |
last > a.0 | scrive il risultato su a.0 |
less a.0 | legge il risultato una schermata alla volta |
last | less | combina i due comandi in uno solo |
grep Acciai telefonico.txt | seleziona righe che contengono Acciai |
grep 'Acciai ' telefonico.txt | elimina Acciaioli |
grep 'Acciai ' telefonico.txt > a.0 | mette il risultato su a.0 |
sort -k2 a.0 | ordina le righe di a.0 secondo il nome (seconda parola) |
Lo stesso risultato si ottiene con l'unico comando
grep 'Acciai ' telefonico.txt | sort -k2
uncompress -c a.pdb.Z | decomprime il file su standard output |
uncompress -c a.pdb.Z > a.pdb | decomprime il file su a.pdb |
grep ' H ' a.pdb > idrogeni | seleziona le righe che contengono atomi di H, e le mette in un nuovo file |
wc -l idrogeni | conta le righe di questo nuovo file |
Lo stesso risultato si ottiene con l'unico comando
uncompress -c a.pdb.Z | grep ' H ' | wc -l
ypcat passwd > a.pw | visualizza tutti gli utenti definiti sul sistema |
wc -l a.pw | conta le righe di a.pw |
echo ci sono `ypcat passwd | wc -l` utenti | scrive quanti sono gli utenti definiti |
grep :2000: a.pw | seleziona solo gli utenti di chimica (gruppo 2000) |
sort -t: -k3 a.pw | ordina gli utenti secondo il numero utente (terzo campo) |
find ~ -mtime +30 | visualizza tutti i miei file non modificati negli ultimi 30 giorni |
mv `find ~ -mtime +30` ~/oldfiles/ | li sposta nella directory oldfiles |
input e output
comando > file | dirigi output di comando su file |
comando < file | prendi input di comando da file |
comando1 | comando2 | l'output di comando1 diventa input di comando2 (pipeline) |
comando >> file | aggiungi output di comando in coda a file |
comando1 ; comando2 | esegui comando1 , aspetta che sia terminato, poi esegui comando2 |
comando1 & comando2 | esegui comando1 , e senza aspettare che sia terminato esegui comando2 |
comando & | esegui comando in background |
Ctrl-C | arresta definitivamente il processo in corso e rende il prompt |
Ctrl-Z | sospende il processo in corso |
fg | ripristina il processo sospeso, in foreground |
bg | ripristina il processo sospeso, in background |
jobs | visualizza lista dei job |
ps | visualizza lista dei processi |
kill %j | arresta definitivamente il job j |
kill p | arresta definitivamente il processo p |
espressione | sostituzione eseguita |
* | nomi file: zero o più caratteri (tranne un . iniziale) |
? | nomi file: un solo carattere (tranne un . iniziale) |
[abc] | nomi file: un solo carattere tra quelli citati tra parentesi (idem) |
~ | directory di partenza (home directory) di questo utente |
~xxx | home directory dell'utente xxx |
$var | valore della variabile var |
!! | ultimo comando dato |
`comando` | risultato del comando comando |
protegge da sostituzione il carattere successivo | |
'' | protegge tutto il testo contenuto tra ' e ' |
"" | protegge il testo tra "", tranne $ ` e |
guide
apropos - search the whatis database for strings
whatis - search the whatis database for complete words
file, directory, dischi
rm - remove files or directories
mv - move (rename) files
cp - copy files and directories
cd - Change working directory
pwd - print name of current/working directory
mkdir - make directories
rmdir - remove empty directories
chmod - change file access permissions
chown - change file owner and group
find - search for files in a directory hierarchy
df - report filesystem disk space usage
du - estimate file space usage
manipolazione di file
more - file perusal filter for crt viewing
less - opposite of more
sort - sort lines of text files
head - output the first part of files
tail - output the last part of files
grep - print lines matching a pattern
wc - print the number of bytes, words, and lines in files
diff - find differences between two files
gawk [awk] - pattern scanning and processing language
stampa e simile
lpq - spool queue examination program
echo - display a line of text
archiviazione e compressione
compress [uncompress] - compress and expand data
gzip - compress or expand files
yppasswd - change your password in the NIS database
finger - user information lookup program
who - show who is logged on
w - Show who is logged on and what they are doing
ps - report process status
kill - terminate a process
(ottimo manuale: http://www.geek-girl.com/Unixhelp/vi/index.html [UHU])
concetti base
avviamento e apertura di file
salvare e uscire
inserimento di testo
muoversi
cancellare
cercare e sostituire
Es: La RE /ranc/ corrisponde alla sequenza "ranc" contenuta sia nella stringa "Francesco" che nella stringa "melarancia"
Es: /or.o/ corrisponde sia a "orto" che a "orco", che a ...
Una RE è composta da:
elemento: | corrisponde a: |
c | il carattere (non-speciale) c |
c | il carattere speciale c, preso letteralmente. Caratteri speciali: .*[]$-\"' |
. | qualsiasi carattere |
[abc...] | uno qualsiasi dei caratteri abc... |
[v-z] | = [vwxyz] |
[abc...] | qualsiasi carattere eccetto abc... |
[v-z] | = [vwxyz] |
inizio stringa | |
$ | fine stringa |
che si possono combinare nel modo seguente:
r1r2 | l'espressione r1 seguita dall'espressione r2 |
r* | l'espressione r ripetuta zero o più volte |
r+ | l'espressione r ripetuta una o più volte |
Esempi:
RE |
| non è contenuta in | ||
/ranc/ | \"Francesco\", \"melarancia\" | |||
/or.o/ | \"orco\", \"orto\" | \"oro\" | ||
/si do/ | \"famosi dottori\" | \"famosi dottori\" | ||
/[Ff]ranc/ | \"Francesco\", \"francesi\", \"Francia\" | \"melarancia\" | ||
/Franc.*a/ | \"Francesca\", \"Francia\" | \"Francesco\", \"francesca\" | ||
/[Ff]rancesc[oa]/ | \"Francesco\", \"Francesca\", \"francesco\", \"francesca\", \"Francescato\", \"Pierfrancesco\" | \"Francia\" | ||
/tel.com/ | \"www.alcatel.com\" | \"telecom\" | ||
/car.*o/ | \"carota\", \"carico\", \"cartone\" | \"cara\", \"Icaro\" | ||
/car.*o$/ | \"Icaro\" | \"carota\" | ||
/bana[n]e/ | \"banale\" | \"banane\" | ||
/ta.*a/ | \"tanto va la gatta al lardo\" | |||
In generale, una RE corrisponde alla stringa più lunga possibile.
Es:
nella stringa "tanto va la gatta al lardo", la RE /ta.*a/ corrisponde alla sottostringa "tanto va la gatta al la".
Es:
Da man awk:
awk [ opzioni ] testo-del-programma file ...
awk [ opzioni ] -f file-di-programma file ...
Le istruzioni sono sempre del tipo
Esempio:
Ogni volta che awk legge un record lo spezza in campi, usando il valore della variabile FS (espressione regolare) come separatore di campo (default=sequenza di spazi o un tabulatore o un accapo). Se FS è un singolo carattere, i campi sono separati da quel carattere.
Es: il file /etc/passwd ha il formato user:password:userid:groupid:name:home:shell
Si possono definire ed utilizzare delle variabili:
b="ciao"
crf=r*2*3.14
I loro valori sono numeri in virgola mobile, o stringhe, o entrambe le cose, a seconda di come sono usati.
AWK dispone di vettori monodimensionali (i vettori multidimensionali possono essere simulati):
Le istruzioni possono essere assegnamenti o istruzioni condizionali o iterative o di I/O come si trovano nella maggior parte dei linguaggi.
Gli operatori, le strutture di controllo e le istruzioni di input/output ricalcano le corrispondenti del linguaggio C
Operatori
+ - * / etc.
Istruzioni di controllo
exit
Istruzioni di I/O
next
Funzioni predefinite
Nel file ~infochim/wrk/esercitaz sono riportati i punteggi ottenuti nelle prime due esercitazioni dai vari studenti del corso. Il file contiene nell'ordine: nome account, turno, punteggio eserc.1, punteggio eserc. 2:
allegra A 2 3
allegri A 0 0
arturoni A 2 5
...
END {print "media= ",s/n}
Un sistema più corretto e sicuro è richiedere che la A si trovi nel secondo campo. In questo caso il pattern deve essere non un'espressione regolare, ma un'espressione relazionale:
per diagrammare un file di dati esistente:
plot 'a.0' | usa la prima colonna come x, la seconda come y |
plot 'a.0' using 1:3 | " " " " , la terza come y |
plot [1:10] 'a.0' | nell'intervallo [x=1, x=10] |
plot [1:10][-100:100] 'a.0' | nell'intervallo [x=1, x=10] e [y=-100, y=100] |
plot 'a.0' with lines | formato del diagramma |
per diagrammare una funzione:
plot sin(x) | 100 punti nell'intervallo [x=-10,x=10] |
Esempio: il pH di una soluzione per aggiunta di base forte.
Per diagrammare i punti sperimentali contenuti nel file ~infochim/wrk/titol e la curva teorica pH(x) = 14+log10(x) tra x = 0.01 e x = 1 :
gnuplot
gnuplot> plot [0.01:1] 'titol', 14.+log(x)/log(10.)
calcolo proprietà di una molecola da geometria:
UNIX fa uso di alcuni caratteri che non sono presenti sulle tastiere italiane. Sui calcolatori dell'aula didattica (aula 40) questi caratteri si ottengono con le seguenti combinazioni:
Per scrivere: | digitare: |
~ | AltGr í |
{ | AltGr 7 |
} | AltGr = |
` | AltGr ' |