Una shell accetta i comandi e fornisce questi comandi al sistema operativo sottostante per l’esecuzione. Sulla maggior parte dei sistemi Linux, il programma della shell si chiama BASH (The Bourne Again Shell), ma ce ne sono altri, tra cui la shell C (tcsh) e la shell KORN (ksh).

Attraverso questo comodo cheatsheet, ho provato a sintetizzare i comandi più utilizzati per iniziare ad utilizzare la potente ma al tempo stesso sottostimata Bash.

Comandi per i file

Comando Descrizione
ls elenca i file nella directory corrente, ls <dir> per stampare i file in una directory specifica
ls -l elenca i tuoi file in “formato lungo”, che contiene la dimensione esatta del file, chi possiede il file e chi ha il diritto di guardarlo, e quando è stato modificato l’ultima volta
ls -a elenca tutti i file in ‘formato lungo’, compresi i file nascosti (il cui nome inizia con ‘.')
ln -s <filename> <link> crea un collegamento simbolico al file
touch <filename> crea un file vuoto o aggiorna (modifica) il tuo file
cat <filename> stampa il contenuto grezzo del file (non sarà interpretato, quindi file come immagini, PDF possono risultare con caratteri “strani”)
any_command > <filename> ‘>’ è usato per eseguire reindirizzamenti, imposterà lo stdout di any_command su file invece che sul “vero stdout” (generalmente /dev/stdout)
more <filename> mostra la prima parte di un file (spostarsi con lo spazio e digitare q per uscire)
head <filename> emette le prime righe del file (predefinito: 10 righe)
tail <filename> emette le ultime righe del file (utile con l’opzione -f) (predefinito: 10 righe)
vim <filename> apre un file nell’editor di testo VIM (VI iMproved), lo crea se non esiste
mv <filename1> <dest> sposta un file a destinazione, il comportamento cambierà in base al tipo di ‘dest’ (dir: il file viene messo in dir; file: il file sostituirà dest (suggerimento: utile per rinominare))
cp <filename1> <dest> copia un file
rm <filename> rimuove un file
find . -name <name> <type> cerca un file o una directory nella directory corrente e in tutte le sue sottodirectory in base al suo nome
diff <filename1> <filename2> confronta i file e mostra dove differiscono
wc <filename> riporta quante linee, parole e caratteri ci sono in un file. Usate -lwc (linee, parole, caratteri) per pubblicare solo 1 di queste informazioni
sort <filename> ordina il contenuto di un file di testo riga per riga in ordine alfabetico, usa -n per l’ordinamento numerico e -r per invertire l’ordine.
sort -t -k <filename> ordina il contenuto su un campo chiave specifico partendo da 1, usando il separatore di campo t.
chmod -options <filename> permette di cambiare i permessi di lettura, scrittura ed esecuzione dei file (maggiori informazioni: SUID, GUID)
gzip <filename> comprime i file usando l’algoritmo gzip
gunzip <filename> decomprime i file compressi da gzip
gzcat <filename> permette di guardare i file gzippati senza doverli effettivamente decomprimere
lpr <filename> stampa il file
lpq controlla la coda della stampante
lprm <jobnumber> rimuove qualcosa dalla coda della stampante
genscript converte file di testo semplice in postscript per la stampa e dà alcune opzioni per la formattazione
dvips <filename> stampa i file .dvi (cioè i file prodotti da LaTeX)
grep <pattern> <filenames> cerca la stringa nei file
grep -r <pattern> <dir> cerca in modo ricorsivo il modello nella directory
head -n file_name &#124; tail +n Stampa l’ennesima riga dal file.
head -y lines.txt &#124; tail +x Visualizza tutte le linee da x a y. Questo include le linee x e y.

Comandi per le cartelle

Comando Descrizione
mkdir <dirname> crea una nuova directory
rmdir <nome_circa> rimuove una directory vuota
rmdir -rf <nome_circa> rimuove una directory non vuota
mv <dir1> <dir2> rinomina una directory da a
cd cambia in home
cd .. cambia alla directory madre
cd <dirname> cambia directory
cp -r <dir1> <dir2> copia in comprese le sottodirectory
pwd vi dice dove siete attualmente
cd ~ cambia in home.

Miscellaneous

Comando Descrizione
ssh [email protected] si connette all’host come utente attraverso il protocollo SSH
ssh -p <port> [email protected] si connette all’host sulla porta specificata come utente
ssh-copy-id [email protected] aggiunge la vostra chiave ssh all’host per l’utente per abilitare un login con chiave o senza password
whoami restituisce il tuo nome utente
passwd permette di cambiare la vostra password
quota -v mostra qual è la tua quota disco
date mostra la data e l’ora corrente
cal mostra il calendario del mese
uptime mostra il tempo di attività corrente
w mostra il whois online
finger <user> mostra informazioni sull’utente
uname -a mostra informazioni sul kernel
man <comando> mostra il manuale del comando specificato
df mostra l’uso del disco
du <nomefile> mostra l’uso del disco dei file e delle directory nel nome del file (du -s dà solo un totale)
last <yourUsername> elenca gli ultimi accessi
ps -u yourusername elenca i tuoi processi
kill <PID> uccide i processi con l’ID che hai dato
killall <nomeProcesso> uccide tutti i processi con il nome
top visualizza i processi attualmente attivi
lsof elenca i file aperti
bg elenca i lavori fermati o in background; riprende un lavoro fermato in background
fg porta il lavoro più recente in primo piano
fg <job> porta il lavoro in primo piano
ping <host> ping dell’host e risultati
whois <dominio> ottiene informazioni whois per il dominio
dig <dominio> ottiene informazioni DNS per il dominio
dig -x <host> inverte la ricerca dell’host
wget <file> scarica il file