La Command Line Linux detta anche riga di comando è un programma del sistema operativo che interpreta i comandi Linux che noi digitiamo. Possiamo definirla come un’interfaccia tra l’utente ed il sistema.
Prima di imparare ad utilizzare la Command Line Linux ti consiglio di leggere il precedente post introduttivo: Corso Base Linux. Kernel e le distribuzioni più famose al seguente link:
Sommario
La Command Line Linux
Linux è un sistema operativo nato con un’interfaccia a riga di comando o CLI ( Command Line Interface ) che comunica direttamente con la shell. Cos’è la shell?
Come anticipavo nell’introduzione del post è un programma del sistema operativo che interpreta ed esegue i comandi di Linux digitati dall’utente nella linea comandi o richiesti dalle applicazioni. E’ l’interfaccia tra l’utente o le applicazioni e il kernel del sistema.
Nel sistema operativo Linux l’uso della shell può essere interattivo e non.
- Le shell interattive ( shell di login ) attendono la digitazione del comando da parte dell’utente sulla linea comandi e lo eseguono. Sono comandi o procedure eseguibili soltanto dentro una sessione.
- Le shell non interattive ( shell non di login ) eseguono i comandi, programmi, procedure in tutto il sistema operativo. I comandi sono eseguiti indipendentemente dalle sessioni.
Perché si usa la linea comandi
In origine, sui vecchi mainframe, i comandi erano impartiti tramite un terminale video. L’utente digitava un solo comando alla volta sulla linea del terminale e lo eseguiva premendo sul tasto Invio della tastiera. Nel corso degli anni Linux, come molti altri sistemi operativi, ha sviluppato anche un’interfaccia grafica o GUI ( Graphical User Interface ) che agevola la vita agli utenti con il desktop. E’ decisamente più user-friendly e gradevole da vedere. Tuttavia, la linea comandi è ancora oggi importante per gli amministratori del sistema. Spesso è indispensabile saperla usare.
Tipi di shell su Linux
Nel sistema Linux esistono diverse tipologie di shell. Quelle più comuni sono le seguenti:
- BASH ( Bourne Again SHell ). E’ la più diffusa nelle distribuzioni e uno standard di Linux.
- CSH ( C Shell )
- TCSH ( C Shell estesa )
- KSH ( Shell Korn)
Command Line Linux: PWD (Print Working Directory)
Tutto in Linux è un file, man mano che avanzi in Linux capirai questo, ma per ora tienilo a mente. Ogni file è organizzato in un albero di directory gerarchico. La prima directory nel filesystem è giustamente chiamata directory root. La directory principale ha molte cartelle e file che è possibile memorizzare più cartelle e file, ecc.
La posizione di questi file e directory viene definita percorso. Se avessi una cartella chiamata home con una cartella al suo interno chiamata bart e un’altra cartella in quella cartella chiamata Movies, quel percorso sarebbe simile a questo: / home / bart / movies, piuttosto semplice eh?
La navigazione del filesystem, proprio come la vita reale, è utile se sai dove sei e dove stai andando. Per vedere dove ti trovi, puoi usare il comando pwd, questo comando significa “stampa directory di lavoro” e ti mostra solo in quale directory ti trovi, nota che il percorso deriva dalla directory principale.
Comando terminale Linux: CD (Change Directory)
Ora che sai dove ti trovi, vediamo se possiamo spostarci un po’ nel filesystem. Esistono due modi diversi per specificare un percorso, con percorsi assoluti e relativi.
Percorso assoluto: questo è il percorso dalla directory principale. La directory principale viene comunemente visualizzata come una barra. Ogni volta che il tuo percorso inizia con / significa che stai iniziando dalla directory principale. Ad esempio, / home / bart / desktop.
Percorso relativo: questo è il percorso dal quale ci si trova attualmente nel filesystem. Se mi trovassi in location / home / bart / documents e volessi accedere a una directory all’interno di Documents denominata tax, non devo specificare l’intero percorso dalla radice come / home /Bart / Documents / tax, posso semplicemente andare su tax / invece.
Ora che sai come funzionano i percorsi, abbiamo solo bisogno di qualcosa che ci aiuti a passare alla directory che vogliamo. Fortunatamente, abbiamo cd o “cambia directory” per farlo.
$ cd / home / bart / immagini
Quindi ora ho cambiato la posizione della mia directory in / home / bart / immagini
$ cd Hawaii
Notate come ho appena usato il nome della cartella? È perché ero già in / home / bart / immagini
Può essere sempre stancante navigare con percorsi assoluti e relativi tutto il tempo, fortunatamente ci sono alcune scorciatoie per aiutarti.
. (directory corrente): questa è la directory in cui ti trovi attualmente.
.. (directory principale): Ti porta nella directory sopra la tua corrente.
~ (home directory): Questa directory viene impostata automaticamente sulla “home directory”. Come / home / bart
– (directory precedente): Questo ti porterà alla directory precedente in cui ti trovavi.
Altri comandi terminale Linux: ls (List Directories)
Ora che sappiamo come muoverci nel sistema, come possiamo capire cosa è presente all’interno della cartella? Bene, possiamo usare il meraviglioso comando ls per elencare i contenuti della directory. Il comando ls elencherà directory e file nella directory corrente per impostazione predefinita, tuttavia è possibile specificare il percorso in cui si desidera elencare le directory.
$ ls
$ ls / Bart / pete
È uno strumento abbastanza utile, ti mostra anche informazioni dettagliate sui file e le directory che stai guardando.
Si noti inoltre che non tutti i file in una directory saranno visibili. Nomi di file che iniziano con il (.) sono nascosti, puoi comunque visualizzarli con il comando ls e passare il flag -a (a per tutti).
$ ls -a
C’è anche un altro utile comando ls, -l, che mostra un elenco dettagliato di file. Questo ti mostrerà informazioni dettagliate, partendo da sinistra: permessi dei file, numero di collegamenti, nome del proprietario, gruppo del proprietario, dimensione del file, data / ora dell’ultima modifica e nome del file / directory.
Affianco ai comandi possiamo aggiungere degli argomenti (argomenti o opzioni, qualunque cosa tu voglia chiamarlo) per aggiungere più funzionalità. In precedenza abbiamo aggiunto -a e -l, bene puoi aggiungerli entrambi insieme ls -la.
L’ordine degli argomenti determina in quale ordine va, la maggior parte delle volte questo non ha importanza, quindi puoi anche fare ls -al
$ ls -la
Comando touch
Impariamo a creare dei nuovi file. Un modo molto semplice è usare il comando touch. Touch ti consente di creare nuovi file vuoti.
$ touch mynewfile
Il touch viene anche utilizzato per modificare i timestamp su file e directory esistenti. Provalo, fai una ls -l su un file e annota il timestamp, esegui il comando Touch su quel file e aggiornerà il timestamp.
Esistono molti altri modi per creare file che permettono di aprire un editor di testo dal terminale Linux come nano.
Comando cat
Abbiamo visto come muoverci nei file, ma prima impariamo come leggere un file. Un comando semplice da usare è il comando cat, abbreviazione di concatenato, non solo mostra il contenuto del file ma può combinare più file e mostrarne l’output.
$ cat dogfile birdfile
Non è eccezionale per la visualizzazione di file di grandi dimensioni ed è pensato solo per contenuti brevi. Ci sono molti altri strumenti che usiamo per visualizzare file di testo più grandi di cui parleremo successivamente.
Comando Less
Se stai visualizzando file di testo più grandi di un semplice output, utilizziamo il comando Less. Il testo viene visualizzato in modo impaginato, quindi puoi navigare attraverso un file di testo pagina per pagina. Una volta che hai il comando less, puoi effettivamente usare altri comandi da tastiera per navigare nel file.
Utilizzare il seguente comando per il comando Less:
- q – Usato per uscire dal comando Less e tornare alla shell.
- Pagina su, Pagina giù, Su e giù – Navigare usando i tasti freccia e i tasti pagina.
- g – Passa all’inizio del file di testo.
- G – Sposta alla fine del file di testo.
- / cerca: è possibile cercare un testo specifico all’interno del documento di testo. Prefazione delle parole che si desidera cercare con /
- h – Se hai bisogno di un piccolo aiuto su come usare il comando Less
Comando Copia CP
Iniziamo a fare alcune copie di questi file. Proprio come copiare e incollare file in altri sistemi operativi, la shell ci offre un modo ancora più semplice di farlo
$ cp mycoolfile / home / bart / Documents / cooldocs
mycoolfile è il file che si desidera copiare e / home / bart / Documents / cooldocs è il punto in cui si sta copiando il file.
È possibile copiare più file e directory e utilizzare i caratteri jolly. Un carattere jolly è un carattere che può essere sostituito da una selezione basata su pattern, offrendo maggiore flessibilità con le ricerche. È possibile utilizzare i caratteri jolly in ogni comando per una maggiore flessibilità.
- * il carattere jolly dei caratteri jolly, viene utilizzato per rappresentare tutti i singoli caratteri o qualsiasi stringa.
- ? usato per rappresentare un personaggio
- [] utilizzato per rappresentare qualsiasi carattere tra parentesi
$ cp * .jpg / home / bart / immagini
Ciò copierà tutti i file con estensione .jpg nella directory corrente nella directory Pictures. Un comando utile è usare il flag -r, questo copierà ricorsivamente i file e le directory all’interno di una directory.
Prova a fare un cp in una directory che contiene un paio di file nella tua cartella Documents. Non ha funzionato, vero? Bene, perché dovrai copiare anche i file e le directory all’interno con il comando -r.
$ cp -r Pumpkin / / home / bart / Documents
Una cosa da notare, se copi un file in una directory che ha lo stesso nome file, il file verrà sovrascritto con qualsiasi cosa tu stia copiando. Questo non è un problema se si dispone di un file che non si desidera sovrascrivere accidentalmente. È possibile utilizzare il flag -i (interattivo) per richiedere all’utente di sovrascrivere un file.
Comando mkdir (Crea Cartella)
Avremo bisogno di alcune directory per archiviare tutti questi file su cui stiamo lavorando. Il comando mkdir (Crea directory) è utile per questo, creerà una directory se non esiste già. Puoi anche creare più directory contemporaneamente.
$ mkdir libri dipinti
Puoi anche creare sottodirectory contemporaneamente con -p (flag parent).
$ mkdir -p books / hemmingway / favourites
La Command Line Linux: lista comandi terminale
Non riesco in un unico post ad elencarti tutti i comandi che possiamo dare in pasto al terminale ma per farti cosa gradita al seguente link puoi scaricare un file con tutti i comandi della Command Line Linux. Clicca qui!
Conclusione
In questo secondo articolo abbiamo visto i comandi base della Command Line Linux. Ti aspetto per il prossimo post sui comandi per la gestione e manipolazione dei file di testo da terminale.