Comandi di base per la gestione del file system
Ho introdotto nell'articolo precedente, consultabile qui, i concetti base relativi al mondo del pinguino. Oggi andiamo a vedere alcune operazioni di base che si possono svolgere mediante linea di comando su un sistema Ubuntu-like.
Che cos'è la linea di comando?
Shell, terminale e riga di comando sono termini che indicano un dispositivo a interfaccia testuale. Può servire a svolgere gran parte delle mansioni in un sistema operativo: muoversi attraverso il file system gestirlo, scaricare, installare o rimuovere programmi, per configurare l'hardware, per creare script e molte altre cose.
Fondamentalmente è un modo alternativo alla comune interfaccia grafica per gestire la macchina. Infatti possiamo svolgere esattamente tutte le operazioni che svolgiamo mediante interfaccia grafica utilizzando la linea di comando.
Tipicamente, un normale terminale Ubuntu si presenta così.
Vediamo alcune operazioni che si possono svolgere mediante terminale.
Come avvio il terminale?
Abbiamo due modi per utilizzare il terminale: avviare la macchina in modalità terminale oppure avviare la shell da interfaccia grafica.
Per avviarlo da interfaccia grafica:
- Ubuntu 18.04 e successivi: selezionare il menù delle applicazioni e digitare terminale;
- Rilasci precedenti: selezionare il pulsante Ubuntu e digitare terminale;
Manuale e sintassi dei comandi
Quando ci troviamo a digitare comandi, può capitare che non ci si ricordi la sintassi o la funzione di alcune opzioni che si possono passare. In tal caso ci vengono in soccorso due comandi: man
e help
.
help
Il comando help
è quello atto a ricordarci la sintassi del comando che stiamo utilizzando. Vediamo come si usa.
ls --help
è la guida che spiega la sintassi del comando ls
;
ls --help | less
: consente di visualizzare la guida del comando ls su più pagine video;
man
Il comando man
ci mostra le pagine del manuale relativo al comando che vogliamo utilizzare, nel caso in cui esista.
Ci basterà scrivere:
man <comando>
dove con <comando> si intende il comando di cui vogliamo consultare la pagina di manuale.
Navigazione attraverso il file system
Dobbiamo prima di tutto capire com'è strutturato il file system in ambiente Ubuntu. In questo ambiente il file system è rappresentato come un albero, la cui radice (root) è il nodo padre di tutti.
Mediante linea di comando possiamo anche scorrere in lungo e in largo il nostro file system. Il comando che ci viene in soccorso è cd
. Vediamo come funziona.
cd Desktop
se la directory corrente è home ci porta nella cartella Desktop. Generalmente possiamo sostituire Desktop con il nome di qualsiasi directory purchè sia una sotto-directory di quella in cui ci troviamo. in alternativa ci troviamo obbligati ad utilizzare un path assoluto per raggiungere la cartella;cd ..
ci permette di spostarci dalla directory in cui ci troviamo alla directory padre;cd /directory
da qualunque cartella ci troviamo ci permette di spostarci nella cartella directory;cd ~
oppurecd
porta nella directory home dell'utente;cd -
porta nella directory precedente;
Mostrare la cartella corrente
pwd
mostra la cartella corrente in cui ci troviamo.
Mostrare il contenuto di una cartella
Nel momento in cui vogliamo comnsultare il contenuto di una cartella, il comando ls
ci viene in soccorso. Vediamo alcuni esempi di utilizzo.
ls -l
mostra il contenuto della cartella in formato lungo;ls -la
mostra il contenuto della cartella in formato lungo includendo i file nascosti;ls -S
mostra la lista dei file ordinati in base alla dimensione;ls -X
mostra la lista dei file ordinati in base alla loro estensione;
Copiare file e directory
In questo caso il comando che giunge in nostro soccorso è il comando cp
. Vediamo come si usa.
cp file1 cart1
copia il file chiamato file1 nella cartella cart1. Possiamo anche utilizzare i path, assoluti o relativi che siano, di entrambi gli elementi;cp -r cart1 cart2
copia tutto il contenuto della cartella cart1 nella cartella cart2;sudo cp -a cart1 cart2
copia tutta la directory cart1 dentro a cart2 mantenendo gli stessi permessi e le informazioni su data e ora di creazione
Muovere o rinominare file e cartelle
Il comando che utilizziamo è il comando mv
.
mv vecchio nuovo
rinomina il file vecchio in nuovo;mv file1 cart1
muove il file file1 dentro la cartella cart1;
Rimuovere file e cartelle, creare cartelle
Il comando che utilizziamo è rm
.
Vediamo come si usa.
rm file1 file2 ...
rimuove i file file1, file2 e tutti gli altri elencati dopo;rm *.*
rimuove tutto il contenuto della directory corrente. Va usato con cautela! Il comando si può modificare scrivendorm *.estensione
rimuovendo tutti i file con estensione .estensione;rm -rf cart1
rimuove tutto il contenuto della cartella cart1;
Nel caso in cui volessimo rimuovere una cartella, purchè vuota, useremo il comando rmdir cartella
.
Nel caso in cui volessimo creare una cartella, utilizzeremo il comando mkdir cartella
, creando così una directory vuota chiamata cartella.
Visualizzare il contenuto di file
Il comando che ci permette di visualizzare il contenuto di uno o più files è il comando cat
. Vediamone alcuni esempi. E' buona norma scrivere esplicitamente l'estensione del file, al fine di evitare ambiguità tra eventuali file con lo stesso nome ma estensione diversa.
cat file
mostra il contenuto del file denominato file;cat file1 file2 > file3
crea il file file3 che contiene il contenuto di file1 e file2;cat file1 file2 >> file3
aggiunge a file3 il contenuto di file1 e file2;tac file
visualizza il contenuto di file ma in ordine inverso;
Se vogliamo visualizzare il contenuto di un file su più pagine video non ricorreremo al comando cat
ma al comando more
. Il tasto di Invio fa avanzare la visualizzazione riga per riga mentre la barra spaziatrice fa avanzare di pagine video
- se vogliamo visualizzare il contenuto di un file su più pagine video scriveremo
more file
; - se vogliamo visualizzare il contenuto di una directory su più pagine video scriveremo
ls -l | more
;
Se invece vogliamo visualizzare il contenuto di file o directory sempre su più pagine video ma con la possibilità di scorrerlo avanti e indietro utilizzeremo il comando less
.Per interrompere utilizzare CTRL+Z.
less file
visualizza il contenuto del file1 in pagine video;ls -l | less
visualizza il contenuto della directory corrente in formato lungo su più pagine video;
Abbiamo dato una panoramica molto generale sui comandi di base di Ubuntu. Più avanti, affrontando altri aspetti del mondo del pinguino, introdurremo nuovi comandi. Per ora, sperimentate gente, sperimentate!
Alessio Mungelli
Computer Science student at UniTo (University of Turin), Network specializtion, blogger and writer. I am a kind of expert in Java desktop developement with interests in AI and web developement. Unix lover (but not Windows hater). I am interested in Linux scripting. I am very inquisitive and I love learning new stuffs.
Articoli correlati
Un approccio a Java: Il ciclo while
Ciao a tutti e bentornati! Dopo aver fatto una breve, ma corposa, introduzione sui cicli, andiamo oggi a vedere finalmente le prime implementazioni che utilizzano quello che abbiamo definito ciclo precondizionale. In Java, come…
Un approccio a Java: I cicli - Introduzione
Ciao a tutti e bentornati! Sino ad ora, abbiamo parlato di variabili e di strutture di selezione, andando a considerare alcuni degli aspetti fondamentali di questi due concetti. Teoricamente, per…
Un approccio a Java: Le variabili - caso d'uso
Ciao a tutti amici e bentornati! Dopo l'introduzione fatta sulle variabili, cerchiamo di analizzare alcune criticità che si possono presentare in situazioni alquanto comuni. Partiamo quindi analizzando degli esempi pratici. Esempio 1: divisione…
Un approccio a Java: Le variabili
Ciao a tutti e bentornati! Quest'oggi inizieremo un percorso che ci porterà a studiare, ed eventualmente ripassare, quelle che sono le basi della programmazione. Inizieremo parlando di variaibli. Introduzione Chiunque voglia approcciarsi al…
Microsoft rilascia il Free Linux Forensics e Rootkit Malware Detection Service FRETA
Il team di Microsoft Information Systems Audit ha annunciato una nuova iniziativa volta a scoprire le prove forensi di attacchi contro i sistemi Linux, nella speranza di rilevare la presenza…
Hashmap con Concatenamento: hashing, collisioni e prime funzioni
Oggi andremo a vedere dei concetti strettamente legati alle hashmap. I concetti che andremo a vedere sono quelli di hashing e collisioni. Hashing L'idea dell'hashing con concatenamento è quella di creare una sorta di array di…
Hashmap con concatenamento: liste di trabocco
In questa breve serie di articoli andremo a vedere com'è possibile realizzare in C la struttura dati Hashmap. Nell'implementazione andremo ad usare le liste doppiamente concatenate come strutture dati ausiliarie. Andiamo…
Linux per Principianti: Guida all'installazione di Ubuntu
Abbiamo dato precedentemente una panoramica su qualche aspetto di base dei sistemi Unix e in particolar modo Ubuntu. Abbiamo infatti fatto un'introduzione, dopodichè abbiamo parlato di terminale Ubuntu e infine abbiamo parlato…
Linux per Principianti: I permessi
Nei precedenti articoli abbiamo fatto una breve introduzione al mondo Unix e nell'articolo successivo abbiamo parlato di comandi base per la gestione del file system. Oggi andremo a parlare di permessi. Come esempio prenderemo sempre…
Linux per Principianti: Introduzione
Se hai pensato di migrare da Windows a un sistema operativo Unix, o Linux nello specifico ci sono cose che dovresti sapere. L'obiettivo è quello di dare le informazioni essenziali…
Java Strutture Dati: Liste Concatenate
Con il 2020 andiamo ad esaminare un nuovo aspetto della programmazione: le strutture dati. Spesso capita a tutti di utilizzare strutture messe a disposizione dai vari linguaggi di programmazione. L'obiettivo sarà…
Java Algoritmi di Ordinamento: Selection Sort
Andiamo oggi ad analizzare in dettaglio un algoritmo di ordinamento non molto efficiente ma piuttosto utilizzato in diversi ambiti. Stiamo parlando del Selection Sort. Vediamo meglio in dettaglio. Intuizione L'idea alla base è quella…