Prima lezioni sull’utilizzo di Linux, come utilizzare il terminale e capire i primi comandi

Prima lezioni sull’utilizzo di Linux, come utilizzare il terminale e capire i primi comandi

linux

Questa è la prima di una serie di lezioni, realizzate dal team di Pa007World, tramite le quali vogliamo spiegare di volta in volta un pezzettino di Linux partendo proprio dai comandi base; in questo modo chiunque potrà iniziare ad utilizzare linux ed entrare a far parte del fantastico mondo del pinguino imparando e soprattutto capendo bene quello che fa ogni volta che digita un comando!

La guide saranno diverse e non seguiranno un programma predefinito quindi di volta in volta saprete quello che conterrà la lezione.

Guida Linux, i comandi base come utilizzarli e capirli

Come prima guida ho pensato di farvi un bell’elenco dei principali comandi che servono ogni giorno nell’utilizzo del nostro sistema Linux, grazie ai quali potrete sfruttare al meglio il vostro pinguino prendendo familiarità con il tanto odiato terminale.

Prima di passare ai comandi parliamo proprio del terminale, nei moderni sistemi Linux abbiamo sempre (o quasi) un’interfaccia grafica semplice e intuitiva che ci permette di fare quasi tutto senza dover ricorrere al terminale, in generale però il terminale ci sarà molto utile in tantissime situazioni quindi è bene saperlo usare.

Su Linux oltre al terminale grafico che di solito troviamo tra gli accessori, abbiamo a disposizione ben 6 console che possono lavorare in parallelo e che potete raggiungere cliccando la combinazione di tasti Alt+Fn dove n è un numero che potete variare da 1 a 6; ognuna di queste console vi chiederà di effettuare nuovamente l’accesso prima di essere utilizzabile.

Adesso che sapete come accedere ad un terminale o ad una console partiamo dall’utilizzo di questo strumento cercando di capire quello che ci troviamo davanti e come sfruttarlo  al meglio; la riga che vi trovate davanti sarà di questo genere:

Utente@Host:/home$

In questa riga voi vedete:

  • Utente -> Nome dell’utente che sta utilizzando il terminale;
  • Host -> Nome della macchina host su cui state operando (utile quando si opera in remoto);
  • /home -> Indica la cartella corrente;
  • $ -> Indica il tipo di Utente;
  • Infine qui nella riga non si vede ma avrete il cursore tramite il quale digiterete i vostri comendi.

Una volta capito cosa vuol dire quella riga che ci ritroviamo sempre all’apertura e durante l’utilizzo del nostro terminale adesso passiamo all’inserimento sottolineando un funzionalità che vi permetterà di risparmiare tantissimo tempo durante l’utilizzo del terminale, quella di cui sto parlando è l’autocompletamento accessibile tramite il tasto TAB.

Durante l’inserimento di vari comandi è molto comune che non vi ricordiate la sintassi completa di un comando lungo ma solo l’inizio, stessa cosa per i nomi di file molto lunghi quindi cliccando sul tasto TAB il terminale cercherà di completare il comando in base alle lettere già inserite dandovi o l’unico disponibile o una lista dei possibili disponibili.

Finita questa prima introduzione andiamo a visionare i comandi principali che dovrete imparare per potervi muovere al meglio all’interno del sistema.

Comando cd [directory]

Questo comando permette all’utente di cambiare la directory corrente. La sintassi è molto semplice e di facile utilizzo infatti basterà che voi digitiate il comando cd seguito dal path della directory che volete raggiungere; per quanto riguarda il path può essere un path relativo o un path assoluto, questo significa che potrete inserire il percorso a partire dalla cartella in cui vi trovate a scendere sull’albero oppure partire dalla radice e seguire qualsiasi percorso.

Esempi:

// vai alla cartella madre della corrente
cd ..
// vai a /tmp path assoluto
cd /tmp
// vai alla home
cd ~
//altro modo di andare alla home
cd

Comando ls [opzioni] [nome…]

Questo comando permette di visualizzare i nomi di file o il contenuto delle directory indicate. Se non specificate la directory viene prese in considerazione la directory corrente, e di norma vengono ignorati i file (nascosti) che iniziano con il ‘.’ (punto). Di default il comando genera un output formattato per colonne se questo è diretto allo standard output (cioè al terminale), mentre viene formattato su un’unica colonna se diretto da altre parti, utile per la gestione dell’output in elaborazioni automatiche.

Principali Opzioni:

-a   | –all -> Con questa opzione vengono elencati tutti i file compresi quelli nascosti;

-A  | –almost-all : Elenca tutti gli elementi tranne i riferimenti alla directory corrente (.) o alla madre (..);

-F  | –classify : Questa aggiunge all’output un carattere finale per ogni elemento diverso in base al tipo dell’elemento:

  • * eseguibile;
  • / directory;
  • @ collegamento simbolico;
  • | pipe con nome o FIFO;
  • = socket;

-i   | –inode : Scrive accanto ad ogni nome il numero di inode che lo identifica nell’albero del file system;

-l   | –format=long | –format=verbose : In questo caso visualizza oltre ai nome anche il tipo, i permessi, la quantità di collegamenti fisici, il nome dell’utente proprietario, il nome del gruppo, la dimensione in byte e la data di ultima modifica.

-R  | –recursive: Esegue il comando ricorsivamente sulle cartelle contenute in quella indicata quindi visualizza tutto l’albero sotto la cartella presa in esame.

-r   | –reverse: ordina gli elementi in ordine inverso rispetto a quello normale.

-S   | –sort=size:  ordina gli elementi in base alla dimensione in modo decrescente.

-t    | –time=time: ordina il contenuto delle directory in funzione della data: dalla più recente. Di default si riferisce alla data di modifica.

-u   | –time=time | –time=access | –time=use: ordina il contenuto della directory utilizzando la data di accesso. Se viene usata insieme a -t l’elenco viene ordinato in base alla data di accesso.

-w   | –n_colonne | –width n_colonne: serve a definire la larghezza a disposizione per stampare l’elenco. L’argomento dell’opzione si riferisce  al numero di caratteri utilizzabili.

-X   | –sort=extension: così si riordina in base all’estensione, in pratica in base al nome dopo l’ultimo punto e hanno precedenza i file senza punti.

-x : elenca i componenti della directory per linee invece che per colonne.

Esempi:

//comando generico senza opzioni opera su cartella correnti
$ ls
//come prima ma mostrando tutti gli attributi
$ ls -l
//ottengo elenco file con estensione .conf con piu o meno estensioni
$ ls *.conf oppure $ ls *.conf -l
//visualizzare tutti i file nel sottoalbero in modo ricorsivo
$ ls -R

Comando mkdir [opzioni] directory…

Questo comando serve a creare nuove directory.

Esempi:

//crea la cartella prova all'interno della cartella corrente
$mkdir prova

Comando rmdir [opzioni]  directory…

Elina le directory specificate soltanto de queste sono vuote.

Principali opzioni:

-p   | –parents : con questa opzione cancella anche la directory padre se queste rimane vuota dopo l’ultima eliminazione e così a salire nell’albero.

Esempi:

//elimina directory
rmdir /prova

Comando cp [opzioni] origine destinazione

Questo comando serve a copiare uno o più file all’interno di un’unica destinazione. Se specificate il nome di due file il primo viene copiato sul secondo, in pratica si genera una copia con il nome del secondo; se il secondo nome è una cartella allora viene copiato il primo file all’interno della cartella indicata con il suo nome di origine. Inoltre potete anche indicare più file sorgenti e una directory destinazione in cui verranno copiati tutti i file. Per copiare le directory bisogna inserire opzioni particolari specificate di seguito.

Principali opzioni:

-a : Equivale a -dpR ed è utile per l’archiviazione o in generale per copiare collegamenti simbolici cosi come sono.

-d : Per copiare i collegamenti simbolici mantenendoli come tali, al posto di copiare il file a cui gli stessi si riferiscono.

-f : Sovrascrivere forzatamente i file di destinazione.

-p : Mantenere le proprietà e i permessi originali.

-r : copiare le directory ricorsivamente, copiando tutte le non-directory e i link simbolici (FIFO e file speciali) tutti come fossero file normali. L’utilizzo di questa opzione però va preso con le pinze perché il comando potrebbe impiantarsi soprattutto se non si conosce il sotto-albero che si vuole spostare. Al suo posto si consiglia l’utilizzo di -R spiegata sotto.

-R : Copia le directory ricorsivamente, rispettando anche le non-directory.

Esempi:

//copiare il contenuto della cartella /home/paolo/ in ~/prova copiando anche sottocartelle contenute, inoltre se ~/prova esiste e non è una cartella, questo file viene sovrascritto e perso.
$ cp -r /home/paolo/ ~/prova

//copia di una cartella /home/paolo/prova in /home
$ cp -R /home/paolo/prova /home/

Comando mv [opzioni] origine destinazione

Serve per spostare file e cartelle. Potete spostare un file singolo in un altro o in una cartella, potrete spostare anche più file e in questo caso la destinazione deve essere per forza una cartella. In Linux non si può rinominare direttamente un file ma bisogna utilizzare questo comando spostandolo in un altro nome magari nella stessa destinazione.

Esempi:

//Cambiare il nome della directory ~/prova in prova1
$mv ~/prova prova1

Comandi touch [opzioni] file…

Questo comando serve a cambiare la data e l’ora di ultimo accesso al file. Se non viene specificata nessuna data viene utilizzata quella del sistema. Se il file specificato non esiste ne viene creato uno vuoto con il nome specificato.

Opzioni principali:

-a   | –time=atime | –time=access | –time=use : Cambia soltanto la data di accesso.

-c   | –no-create : Non vengono creati i file che non esistono.

-m | –time=mtime | –time=modify : Cambia solo la data di aggiornamento.

-r file_di_riferimento | –file file_di_riferimento : Riproduce gli stessi dati (data e ora) del file indicato.

-t [[AA]AA]MMGGhhmm[.ss] : Usa l’argomento (mese, giorno, ore, minuti, secolo, anno, secondi) al posto della data corrente.

Esercitazione:

//creare file nuovo
$ touch ~/nuovo
//cambiare data del file nuovo facendola risalire al 05/05 alle 13:20
$ touch -t 05051320 ~/nuovo
//cambiare la data del file nuovo facendola risalire al 05/05/2013 13:20
$ touch -t 201305051320 ~/nuovo

Questi sono i primi comandi che vi proponiamo  e vi invitiamo ad iniziare ad utilizzarli e provarli così da renderli vostri, per ogni dubbio o correzione potete commentare e chiedere qualsiasi tipo di aiuto, inoltre vi ricordo di seguirci perché pubblicheremo altri comandi su articoli successivi e continueremo dopo i comandi a spiegarvi tante chicche per utilizzare al meglio Linux.

 

pa007

Founder di Pa007World. Laureato in Ingegneria Informatica all'Università di Pisa e studente di Master of Science in Embedded Computing Systems presso la Scuola Superiore Sant'anna e l'Università di Pisa. Appassionato da sempre di informatica e tecnologia. Home page: http://www.pa007world.com