Vai al contenuto principale
Riga di comando e Shell
Terminologia
- Terminale: è l'applicazione che si utilizza per digitare i comandi, apre una sessione di shell e accetta i comandi digitati passandoli al sistema operativo per l'esecuzione
- Riga di comando (o CLI Command Line Interface): è l'interfaccia testuale dentro al terminale
- Shell: è il programma che interpreta i comandi, ad esempio Bash (Bourne Again Shell), Zsh, Powershell. I file di script shell hanno estensione .sh
- Variabile d'ambiente: è una variabile a cui accedono la Shell e i programmi ($PATH, $HOME, $USER)
Comandi di base e di navigazione
- man: serve per visualizzare il manuale di istruzioni di ogni comando. Esiste anche help che però funziona solo per i comandi integrati nella shell, per gli altri si può provare a passare il flag --help. Con whatis invece viene visualizzata una descrizione sintetica del comando.
- history: serve per mostrare i comandi digitati in precedenza. E' possibile salvare la cronologia dei comandi digitati in una sezione
- echo: stampa il testo inserito dall'utente oppure il contenuto di una variabile, ad esempio $PATH (per sapere quali variabili d'ambiente esistono usare il comando env)
- clear: pulisce il terminale cancellando l'output dei comandi precedenti
- pwd: sta per Print Working Directory e stampa il percorso completo della directory in cui ci si trova attualmente
- cd: sta per Change Directory e serve per spostarsi in un altro percorso. Può essere assoluto o relativo e si possono utilizzare alcuni caratteri speciali come . che indica la directory corrente, .. che indica la directory padre, ~ che indica la home dell'utente, - che indica la directory precedente
- ls: sta per List Directories ed elenca le directory e i files nella directory corrente. Aggiungendo il flag -a si possono visualizzare anche i files e cartelle nascosti (quelli che iniziano per .). Aggiungendo il flag -l vengono mostrate informazioni più dettagliate per ogni file. Aggiungendo il flag -r i risultati vengono mostrati in ordine inverso. I flag possono anche essere dichiarati tutti insieme (ad esempio ls -al)
- alias: serve per definire un comando personalizzato che però durerà solo per la sessione corrente. Se si vuole creare un alias permanente è necessario modificare il file di configurazione della shell e poi chiudere e riaprire il terminale
- exit: serve per terminare una sessione. Esiste anche logout per terminare una sessione di login
Comandi per la gestione dei files
- touch: serve per creare uno o più nuovi files vuoti indicando il nome che si vuole assegnare a ciascun file. Se si usa il comando su un file già esistente viene modificato il timestamp di ultima modifica del file. Aggiungendo il flag -r si può indicare un file di riferimento in modo che il timestamp del prima file sia impostato come il timestamp del secondo file. Aggiungendo il flag -d si può indicare una data e ora precise da impostare come timestamp
- file: serve per verificare il tipo di un file
- cat: serve per visualizzare il contenuto di uno o più files nel terminale. Aggiungendo il flag -n è possibile visualizzare il numero della riga nell'output. Aggiungendo il flag -b è possibile visualizzare solo il numero delle righe non vuote. Utilizzando l'operatore > è possibile scrivere direttamente dentro un file
- less: serve per entrare dentro un file e navigarlo usando alcuni comandi da tastiera, ad esempio con le frecce si può passare alla riga successiva o precedente, con la g si può andare alla prima riga, con la G si può andare all'ultima, con la h si possono visualizzare le istruzioni su come navigare il file. E' possibile anche fare una ricerca all'interno del file digitando / seguito dal termine di ricerca. Per uscire dal file si utilizza la q (Quit).
- cp: serve per copiare un file nella destinazione specificata, eventualmente cambiandogli nome perchè se il file esiste già nella destinazione viene sovrascritto, eventualmente aggiungendo il flag -i verrà richiesta conferma prima della sovrascrittura. Si possono usare alcuni caratteri jolly, come ad esempio * che indica qualunque sequenza di caratteri, ? che indica qualunque singolo carattere, [] che indica uno dei caratteri racchiusi dentro le parentesi. Aggiungendo il flag -r è possibile copiare cartelle che contengano delle sottocartelle. Aggiungendo il flag -p verranno copiati anche i metadati
- mv: serve per rinominare o spostare un file o una directory. Aggiungendo il flag -t è possibile specificare una directory di destinazione. Aggiungendo il flag -i è possibile essere avvisati della presenza di un file con lo stesso nome nel percorso di destinazione. Aggiungendo il flag -b è possibile creare una copia di backup del file o directory che si sta muovendo. Il flag -v fa sì che vengano stampate le operazioni che il comando sta facendo.
- mkdir: sta per Make Directory e serve per creare una directory. E' possibile creare anche directories una dentro l'altra.
- rm: serve per eliminare definitivamente un file. Aggiungendo il flag -f non verrà richiesta alcuna conferma e il file verrà eliminato anche se è protetto da scrittura. Aggiungendo il flag -i verrà chiesta conferma prima dell'eliminazione del file. Se invece si vuole eliminare una directory è necessario usare il flag -r. Se la directory è vuota funziona il comando rmdir.
- find: serve per cercare un file all'interno di una data directory. Aggiungendo il flag -name si può cercare per nome esatto del file mentre aggiungendo il flag -type è possibile specificare il tipo di file (f per file e d per una directory).
Manipolazione del testo
- stdout: è la destinazione predefinita dell'output dei comandi, cioè la finestra del terminale. Per intercettare i dati diretti allo standard output e reindirizzarli ad una nuova destinazione, ad esempio un file, si usa l'operatore >> seguito dal nome del file. Esiste anche l'operatore > che però sovrascrive il file se esiste già invece che aggiungere il contenuto al file
- stdin: è la sorgente predefinita dell'input, cioè quello che noi digitiamo sulla tastiera. Per fornire un'altra sorgente, ad esempio un file, si usa l'operatore < seguito dal nome del file
- stderr: è la destinazione predefinita dei messaggi di errore, cioè la finestra del terminale. Per intercettare i dati diretti allo standard error e reindirizzarli ad una nuova destinazione, ad esempio un file, si usa l'operatore > ma non è sufficiente, bisogna indicare anche un numero che rappresenta il descrittore dello stderr, cioè 2 (0 indica lo stdin e 1 indica lo stdout) quindi l'operatore diventa 2>.
- operatori pipe e tee
- cut e paste
- head e tail
- expand e unexpand
- join e split
- sort
- tr
- uniq
- wc e nl
- grep
Permessi e proprietà dei files
Gli utenti