La Shell#
Che cos’è una Shell?#
Una shell è un programma che riceve comandi da file o dall’utente tramite tastiera e li passa al sistema operativo per l’esecuzione. Può essere accessibile tramite un terminale o un emulatore di terminale.
Breve Storia della Shell#
1971: Ken Thompson di Bell Labs sviluppa la shell per UNIX.
1977: Stephen Bourne introduce la Bourne shell (sh).
Dopo il 1977: Viene sviluppata la C shell (csh) e tcsh.
Bash: Sviluppata da Brian Fox come sostituto migliorato della Bourne shell.
1990: Paul Falsted sviluppa Zsh, che diventa la shell predefinita per macOS dal 2019.
Windows vs macOS/Linux#
Windows 10: Possibilità di usare Bash attivando il Windows Subsystem for Linux. In genere, si usa PowerShell.
macOS/Linux: Zsh è la shell predefinita.
Comandi di Base#
pwd
: Mostra il percorso della directory corrente.ls
: Elenca file e cartelle nella directory corrente.cd
: Cambia directory. Senza argomenti, ti porta alla directory home.mkdir
: Crea una nuova directory.rmdir
: Rimuove una directory vuota.Importante: Evitare spazi nei nomi di file e cartelle.
Gestione File#
mv
: Rinomina o sposta file (usa\
o''
per i nomi di file con spazi).cp
: Copia file o cartelle (usa-r
per le cartelle).rm
: Rimuove file o cartelle (usa-i
per confermare prima di eliminare).
Visualizzazione e Manipolazione Contenuti dei File#
less
/more
: Visualizza il contenuto dei file con possibilità di navigazione.cat
: Mostra l’intero contenuto di un file.head
: Mostra le prime righe di un file.tail
: Mostra le ultime righe di un file.
Suggerimenti#
Navigazione: Imparate i percorsi relativi per spostarvi facilmente tra le directory.
Conclusione#
Con la pratica, la riga di comando diventa uno strumento molto efficiente. Questa guida ti fornisce le basi per iniziare a esplorare e gestire i file dal terminale, offrendo una base di partenza per ulteriori apprendimenti.
Questo materiale dovrebbe integrarsi bene con la data science, permettendovi di manipolare e gestire i dati in modo più efficiente. La familiarità con la shell è fondamentale nella data science, specialmente quando si lavora con grandi set di dati o si utilizzano risorse di calcolo remote.