Questi sono alcuni fondamentali e comuni comandi Linux con esempi di utilizzo:
Filesystem
ls
Il comando ls
elenca il contenuto della directory corrente (o di una che è specificata). Può essere usato con il flag -l
per visualizzare informazioni aggiuntive (permessi, proprietario, gruppo, dimensione, data e timestamp dell’ultima modifica) su ogni file e directory in un formato lista. Il flag -a
permette di visualizzare i file che iniziano con .
(cioè dotfiles).
cd
Utilizzando cd
si cambia la directory corrente in quella specificata. Puoi usare percorsi relativi (cioè cd directoryA
) o assoluti (cioè cd /home/pi/directoryA
).
pwd
Il comando pwd
visualizza il nome dell’attuale directory di lavoro: su un Raspberry Pi, inserendo pwd
otterrai qualcosa come /home/pi
.
mkdir
Puoi usare mkdir
per creare una nuova directory, ad esempio mkdir newDir
creerebbe la directory newDir
nell’attuale directory di lavoro.
rmdir
Per rimuovere directory vuote, usa rmdir
. Così, per esempio, rmdir oldDir
rimuoverà la directory oldDir
solo se è vuota.
rm
Il comando rm
rimuove il file specificato (o ricorsivamente da una directory se usato con -r
). Fate attenzione con questo comando: i file cancellati in questo modo sono per lo più andati per sempre!
cp
Utilizzando cp
si fa una copia di un file e lo si mette nella posizione specificata (questo è simile al copia e incolla). Per esempio, cp ~/fileA /home/otherUser/
copierà il file fileA
dalla tua directory home a quella dell’utente otherUser
(supponendo che tu abbia il permesso di copiarlo lì). Questo comando può prendere come argomenti FILE FILE
(cp fileA fileB
), FILE DIR
(cp fileA /directoryB/
) o -r DIR DIR
(che copia ricorsivamente il contenuto delle directory).
mv
Il comando mv
sposta un file e lo mette nella posizione specificata (quindi dove cp
esegue un ‘copia-incolla’, mv
esegue un ‘taglia-incolla’). L’uso è simile a cp
. Quindi mv ~/fileA /home/otherUser/
sposterebbe il file fileA
dalla vostra directory home a quella dell’utente otherUser. Questo comando può prendere come argomenti FILE FILE
(mv fileA fileB
), FILE DIR
(mv fileA /directoryB/
) o DIR DIR
(mv /directoryB /directoryC
). Questo comando è anche utile come metodo per rinominare file e directory dopo che sono stati creati.
touch
Il comando touch
imposta l’ultimo time-stamp modificato del file specificato o lo crea se non esiste già.
cat
Si può usare cat
per elencare il contenuto dei file, ad esempio cat thisFile
mostrerà il contenuto di thisFile
. Può essere usato per elencare il contenuto di più file, ad esempio cat *.txt
elencherà il contenuto di tutti i .txt
file nella directory corrente.
head
Il comando head
visualizza l’inizio di un file. Può essere usato con -n
per specificare il numero di linee da mostrare (di default dieci), o con -c
per specificare il numero di byte.
coda
L’opposto di head
, tail
mostra la fine di un file. Il punto di partenza nel file può essere specificato sia attraverso -b
per blocchi di 512 byte, -c
per i byte, o -n
per il numero di linee.
chmod
Si usa normalmente chmod
per cambiare i permessi di un file. Il comando chmod
può usare i simboli u
(utente che possiede il file), g
(il gruppo di file) e o
(altri utenti) e i permessi r
(lettura), w
(scrittura) e x
(esecuzione). Usando chmod u+x *filename*
si aggiungerà il permesso di esecuzione per il proprietario del file.
chown
Il comando chown
cambia l’utente e/o il gruppo che possiede un file. Normalmente deve essere eseguito come root usando sudo, ad esempio sudo chown pi:root *filename*
cambierà il proprietario in pi e il gruppo in root.
ssh
ssh
indica la shell sicura. Per maggiori dettagli vedi SSH (secure shell)
scp
Il comando scp
copia un file da un computer ad un altro usando ssh
.Per maggiori dettagli vedi SCP (secure copy)
sudo
Il comando sudo
ti permette di eseguire un comando come superutente, o un altro utente. Usa sudo -s
per una shell da superutente.Per maggiori dettagli vedi Utente root / sudo
dd
Il comando dd
copia un file convertendo il file come specificato. È spesso usato per copiare un intero disco in un singolo file o viceversa. Così, per esempio, dd if=/dev/sdd of=backup.img
creerà un’immagine di backup da una scheda SD o da un disco USB in /dev/sdd. Assicurati di usare l’unità corretta quando copi un’immagine sulla scheda SD, poiché può sovrascrivere l’intero disco.
df
Usa df
per visualizzare lo spazio su disco disponibile e utilizzato sui filesystem montati. Usate df -h
per vedere l’output in un formato leggibile all’uomo, usando M per MB piuttosto che mostrare il numero di byte.
unzip
Il comando unzip
estrae i file da un file zip compresso.
tar
Utilizza tar
per memorizzare o estrarre i file da un file archivio su nastro. Può anche ridurre lo spazio richiesto comprimendo il file in modo simile a un file zip.
Per creare un file compresso, usa tar -cvzf *filename.tar.gz* *directory/*
Per estrarre il contenuto di un file, usa tar -xvzf *filename.tar.gz*
pipes
Una pipe permette all’output di un comando di essere usato come input per un altro comando. Il simbolo di pipe è una linea verticale |
. Per esempio, per mostrare solo le prime dieci voci del comando ls
può essere pipeato attraverso il comando head ls | head
tree
Utilizza il comando tree
per mostrare una directory e tutte le sottodirectory e i file indentati come una struttura ad albero.
&
Esegui un comando in background con &
, liberando la shell per comandi futuri.
wget
Scarica un file dal web direttamente sul computer con wget
. Quindi wget https://www.raspberrypi.org/documentation/linux/usage/commands.md
scaricherà questo file sul tuo computer come commands.md
curl
Utilizza curl
per scaricare o caricare un file su/da un server. Per impostazione predefinita, mostrerà il contenuto del file sullo schermo.
man
Mostra la pagina di manuale per un file con man
. Per saperne di più, eseguite man man
per visualizzare la pagina di manuale del comando man.
Ricerca
grep
Utilizza grep
per cercare all’interno dei file determinati modelli di ricerca. Per esempio, grep "search" *.txt
cercherà in tutti i file della directory corrente che terminano con .txt per la ricerca della stringa.
Il comando grep
supporta le espressioni regolari che permettono di includere combinazioni di lettere speciali nella ricerca.
awk
awk
è un linguaggio di programmazione utile per la ricerca e la manipolazione di file di testo.
find
Il comando find
cerca in una directory e nelle sottodirectory i file corrispondenti a certi schemi.
whereis
Utilizza whereis
per trovare la posizione di un comando. Cerca tra le locazioni standard dei programmi finché non trova il comando richiesto.
Networking
ping
L’utilità ping
è solitamente usata per controllare se è possibile comunicare con un altro host. Può essere usata con le impostazioni predefinite specificando solo un nome host (ad esempio ping raspberrypi.org
) o un indirizzo IP (ad esempio ping 8.8.8.8
). Può specificare il numero di pacchetti da inviare con il flag -c
.
nmap
nmap
è uno strumento di esplorazione e scansione della rete. Può restituire informazioni sulle porte e sul sistema operativo di un host o di un intervallo di host. Eseguendo solo nmap
verranno visualizzate le opzioni disponibili così come un esempio di utilizzo.
hostname
Il comando hostname
visualizza l’hostname corrente del sistema. Un utente privilegiato (super) può impostare l’hostname su uno nuovo fornendolo come argomento (ad esempio hostname new-host
).
ifconfig
Usa ifconfig
per visualizzare i dettagli della configurazione di rete per le interfacce sul sistema corrente quando viene eseguito senza argomenti (cioè ifconfig
). Fornendo al comando il nome di un’interfaccia (ad esempio eth0
o lo
) è possibile modificare la configurazione: controlla la pagina del manuale per maggiori dettagli.