Esiste l'autocompletamento:
pdf
[tab][tab]ls /etc/a
[tab][tab]
Esistono scorciatoie:
history
La struttura base dei comandi è la seguente:
parametri
Alcuni esempi:
/bin/cat -n /etc/services
cat --number /etc/services
tar xvzf archivio.tgz # diverso da tar xvfz archivio.tgz, non corretto
tar -xvzf archivio.tgz
tar -x -v -z -f archivio.tgz
tar --extract --verbose --ungzip --file archivio.tgz
LC_TIME=POSIX cal
ls unarchivio -l # possibile
chmod unarchivio +x # errato
Una pagina man
ha normalmente le seguenti sezioni:
Esistono tre file standard per l'I/O:
Esempio:
cal > calendario
sort < calendario
ls /directory_non_esistente 2> errore
Le pipeline servono a far sì che l'output di un programma diventi l'input di un altro programma:
getent services | sort
getent passwd | grep bash | wc -l
Molti programmi agiscono da filtro:
Alcuni esempi:
cal | tac
cal | rev
cal | tac | rev
getent passwd | cut -d: -f1 | tail -3
who | wc -l
I programmi interattivi non esauriscono il loro compito senza intervento dell'utente:
getent passwd | more
getent services | less
man passwd
man 5 passwd
Molti programmi possono agire in diverso modo a seconda del modo in cui sono invocati:
Alcuni esempi:
grep testo miofile
grep testo > miofile
cat miofile | grep testo
A differenza di quanto avviene nel mondo dos/windows, i file di standard input e di standard output possono essere file binari di contenuto arbitrario.
Ad esempio, si può usare cat
per concatenare "pezzi" di file binario (ottenuti con split
) e ricostruire l'originale.
$ split --bytes 2000 --numeric-suffixes /usr/bin/cal
$ ls
x00 x01 x02 x03 x04 x05
$ cat x* > my_cal
$ ls
my_cal x00 x01 x02 x03 x04 x05
Alcune cose a cui è necessario prestare attenzione:
Esempi:
touch un\ nome\ con\ spazi
touch "un altro nome con spazi"
touch 'un terzo nome con spazi'
A volte può essere necessario considerare l'output di due programmi come unico, per le elaborazioni successive.
(cal 2006; cal 2007) | tr [:lower:] [:upper:]
A volte può essere necessario salvare su file l'output di un programma, mantenendo l'uscita comunque sullo standard output, per le elaborazioni successive.
(cal 2006; cal 2007) | tee copia | tr [:lower:] [:upper:]
Alcuni esercizi:
cat
per la lettura dello standard input e la ridirezione per la scrittura su file>>
al posto del semplice >
per la ridirezione dell'output2>&1