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 ; comando2
Il sistema esegue comando1 , aspetta che sia terminato, poi esegue comando2
Esempio:
$ date; ls -l; date mar dic 9 14:29:03 CET 2003 totale 924 -rw-r--r-- 1 infochim chimica 160 4 dic 2002 elenco.txt drwxr-xr-x 2 infochim chimica 4096 18 dic 2002 pdb -rw-r--r-- 1 infochim chimica 163840 10 dic 2002 pdbs.tar drwxr-xr-x 2 infochim chimica 4096 11 dic 2002 sost -rw-r--r-- 1 infochim chimica 254889 10 dic 2002 telefonico.txt mar dic 9 14:29:03 CET 2003 $
comando1 & comando2
Il 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 &
[1] 10301Il secondo numero che viene scritto è il numero di processo dell'ultimo processo del job.
Per vedere su terminale la lista di tutti i job, dare il comando jobs
$ find /usr -mtime -7 | sort & [2] 10334 $ jobs [1] + Running emacs [2] - Running find /usr -mtime -7 | sort &
Il comando find /usr -mtime -7 cerca in /usr e nelle sue sottodirectory tutti i file modificati negli ultimi 7 giorni; l'output viene poi filtrato da sort, cioè i file sono ordinati in ordine alfabetico. L'esplorazione del disco in genere richiede un po' di tempo, perciò è utile mandare questa pipeline in background.
Notare che ad ogni comando del job 2 (find 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 find 10334 pts/0 00:00:00 sort 10335 pts/0 00:00:00 ps