Ubuntu, come tutte le distribuzioni Linux, consente di dare comandi diretti attraverso il terminale che può essere attivato nei seguenti modi:
- Da Applicazioni > Accessori > Terminale.
- premendo contemporaneamente CTRL + ALT + F1. A tutto schermo appare il 1° terminale dei sei disponibili (F1, F2, F3, F4, F5, F6). Per ritornare a lavorare in modalità grafica premere CTRL + ALT + F7.
La necessità di ricorrere al Terminale nasce dal fatto che attraverso la riga di comando è possibile eseguire operazioni molto efficaci, che in certi casi risultano quasi impossibili utilizzando l’interfaccia grafica.
Inoltre è possibile ripetere o correggere un comando dato precedentemente semplicemente richiamandolo con le frecce su o giù da tastiera o con il comando history.
Principali comandi Linux
Segue un elenco dei principali comandi di Linux. Un comando può avere una serie di opzioni che solitamente sono indicate con il segno “-“
<comando> <-opzione1> <-opzione2> …
Ogni spazio bianco separa il comando da ogni opzione.
Esempio
$ ls -l
help: manuale dei comandi
<comando> –help è la guida che spiega la sintassi del comando
$ ls –help | E’ la guida che spiega la sintassi del comando ls |
$ ls –help | less | consente di visualizzare la guida del comando ls su più pagine video (vedi comando less) |
cd: cambio directory (cartella)
cd <directory> consente di cambiare la directory corrente in quella indicata in <directory> (change directory)
$ cd Desktop | se la directory corrente è home porta nella directory Desktop |
$ cd .. | porta della directory superiore (o padre) |
$ cd /var | in qualunque directory ci si trovi porta nella directory /var |
$ cd ~ oppure cd | porta della directory home dell’utente (/home/[nome utente]) |
$ cd – | porta della directory precedente |
pwd: mostra la directory corrente
pwd: questo comando ci permette di sapere in che directory ci troviamo
ls: lista il contenuto di una directory (cartella)
ls <opzioni> [<directory>] visualizza il contenuto di una directory (list)
-a lista anche i file nascosti
-l mostra tutte le informazioni per ogni file (formato lungo)
-k dimensione dei file è in Kb (normalmente è in byte).
-F classifica i file a seconda del tipo.
$ ls -l | contenuto della directory corrente in formato lungo |
$ ls -a / | contenuto della directory iniziale (root) compresi i file nascosti |
$ ls -lah | contenuto della directory corrente in formato lungo |
$ ls -R | elenco ricorsivo |
cp: copia file e directory
cp: questo comando ci permette di copiare un file o una directory (copy)
-r copia le directory e le sottodirectory ricorsivamente
$ cp file1 cart1 | copia file1 dentro la directory cart1 |
$ cp -r cart1 cart2 | copia tutta la directory cart1 dentro a 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 |
$ cp -rv cart1 cart2 | copia tutta la directory cart1 dentro a cart2 visualizzando l’operazione (verbose) |
mv: muove o rinomina un file o una directory
mv: con questo comando è possibile spostare file o directory (move). Può essere anche utilizzato per rinominare un file o una directory.
-i chiede la conferma
$ mv vecchio nuovo | rinomina il file vecchio in nuovo |
$ mv file1 cart1 | sposta il file file1 dentro la directory cart1 |
rm: rimuove un file o una directory
rm con questo comando è possibile cancellare uno o più file (remove)
-rf cancella ricorsivamente sia le cartelle che il loro contenuto
$ rm file1 file2 | cancella file1 e file2 |
$ rm *.* | cancella TUTTO il contenuto della directory corrente. Le eventuali directory presenti non saranno rimosse. Da usare con cautela ! |
$ rm -rf cart1 | cancella tutto il contenuto della directory cart1 |
rmdir: rimuove una directory vuota
rmdir: con questo comando è possibile cancellare una o più directory vuote (remove directory)
$ rmdir prova | cancella la directory vuota prova |
mkdir: crea una directory
mkdir: con questo comando è possibile creare una directory (make directory)
$ mkdir prova | crea la directory prova |
pwd: mostra la directory corrente
pwd: con questo comando è possibile sapere in quale directory ci troviamo (print working directory)
$ pwd | Se l’utente ziopixel si trova nella cartella principale visualizza /home/ziopixel |
chmod: modificare i permessi di un file
chown con questo comando è possibile modificare il permessi di un file.
Per un approfondimento dettagliato sui permessi vedi http://it.wikipedia.org
Il parametro -R consente di modificare ricorsivamente i permessi delle directory indicate e del loro contenuto.
$ chmod 0755 file1 | imposta lettura, scrittura ed esecuzione per il proprietario, e lettura ed esecuzione per gruppo ed altri per file1 |
$ sudo chmod -R 0755 dir1 | imposta lettura, scrittura ed esecuzione per il proprietario, e lettura ed esecuzione per gruppo ed altri per la directory di1 e per i file contenuti |
$ chmod u+rwx file1 | imposta lettura, scrittura ed esecuzione per il proprietario lasciando inalterati gli altri permessi |
$ chmod ugo+rwx file1 | imposta lettura, scrittura esecuzione per tutti (u user, g group, o other) |
$ chmod ugo-x file1 | rimuove il permesso di esecuzione a tutti |
chown: modificare il proprietario di un file
chown: con questo comando è possibile modificare il proprietario di un file.
Il parametro -R consente di modificare ricorsivamente i permessi delle directory indicate e del loro contenuto.
$ chown nome1 file1 | rende il file1 proprietario di nome1 |
$ chown nome1:gruppo1 file1 | rende il file1 proprietario di nome1 e del gruppo1 |
$ chown -R nome1:gruppo1 dir1 | rende la directory dir1 e i file contenuti proprietari di nome1 e del gruppo1 |
$ sudo chown -R root:root drupal | rende la directory drupal e i file contenuti proprietari di root e del root |
cat: visualizza il contenuto di uno o più file
cat con questo comando è possibile visualizzare il contenuto di uno o più files
$ cat file1 | Visualizza il contenuto del file1 |
$ cat file1 file2 > file3 | crea file3 con il contenuto di file1 e file2 |
$ cat file1 file2 >> file3 | aggiunge il contenuto di file1 e file2 al file3 |
$ cat file1 -n | Visualizza il contenuto del file1 numerandolo |
$ tac file1 | Visualizza il contenuto del file1 in ordine inverso |
more: visualizza il contenuto di un file su più pagine video
more: con questo comando è possibile visualizzare il contenuto di un file in più pagine video. Il tasto di Invio fa avanzare la visualizzazione riga per riga mentre la barra spaziatrice fa avanzare di pagine video. Per interrompere utilizzare CTRL+Z
$ more file1 | Visualizza il contenuto del file1 in pagine video |
$ ls -l | more | visualizza il contenuto della directory corrente in formato lungo su più pagine video (vedi comando ls) |
less: più efficiente di more visualizza il contenuto di un file su più pagine video
less: A differenza di more è possibile scorrere il testo avanti e indietro. Per interrompere utilizzare CTRL+Z
$ less file1 | Visualizza il contenuto del file1 in pagine video |
$ ls -l | less | visualizza il contenuto della directory corrente in formato lungo su più pagine video (vedi comando ls) |
head – tail visualizza le prime / ultime righe
$ head -<n> file | visualizza le prime <n> righe di file |
$ tail -<n> file | visualizza le ultime <n> righe di file |
find: ricerca di files / directory
$ find . -name “*.tmp” | ricerca dei files temporanei *.tmp nella directory corrente |
$ find . -name “*.tmp” -exec rm {} \; | ricerca ed eliminazione dei files temporanei nella directory corrente |
Comandi di sistema
free: mostra lo stato della memoria
free: con questo comando è possibile visualizzare lo stato della memoria.
zipixel@zpxc321:~$ free
buff/cache condivisi gratuiti totali utilizzati disponibili
Mem: 16305172 1212028 12705336 150888 2387808 14619256
Swap: 17092604 0 17092604
zipixel@zpxc321:~$
df: spazio libero su disco
df: con questo comando è possibile visualizzare lo spazio libero su disco
$ df -h | Visualizza il contenuto dello spazio libero su disco utilizzando G,M,K byte |
zipixel@zpxc321:~$ df -h
File system Dim. Usati Dispon. Uso% Montato su
tmpfs 1,6G 3,2M 1,6G 1% /run
/dev/sda6 101G 17G 79G 18% /
tmpfs 7,8G 0 7,8G 0% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
/dev/sda1 285M 6,1M 279M 3% /boot/efi
/dev/sda7 322G 8,3G 297G 3% /home
tmpfs 1,6G 124K 1,6G 1% /run/user/1000
/dev/sdd1 1,9T 659G 1,2T 36% /media/zipixel/TOSHIBA2T
/dev/sdc1 1,9T 689G 1,2T 37% /media/zipixel/TOUSB2T
/dev/sdb2 3,7T 2,3T 1,5T 61% /media/zipixel/Maxtor4T
zipixel@zpxc321:~$
top: mostra i processi attualmente in esecuzione
top: questo comando visualizza i processi attualmente in esecuzione e le informazioni importanti relative a tali processi.
zipixel@zpxc321:~$ top top - 15:18:00 up 5 days, 5:27, 2 users, load average: 0,18, 0,06, 0,01 Tasks: 231 total, 1 running, 230 sleeping, 0 stopped, 0 zombie %Cpu(s): 1,7 us, 1,2 sy, 0,0 ni, 97,0 id, 0,0 wa, 0,0 hi, 0,2 si, 0,0 st MiB Mem : 15923,0 total, 12409,7 free, 1180,8 used, 2332,6 buff/cache MiB Swap: 16692,0 total, 16692,0 free, 0,0 used. 14279,5 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 973 avahi 20 0 8288 4840 3804 S 1,0 0,0 12:59.95 avahi-daemon 1590 nx 20 0 1351832 128992 14228 S 0,7 0,8 24:08.37 nxserver.bin 107230 zipixel 20 0 13256 4240 3368 R 0,7 0,0 0:00.13 top 14 root 20 0 0 0 0 I 0,3 0,0 5:41.55 rcu_sched 3107 zipixel 20 0 4074784 196924 117240 S 0,3 1,2 13:12.11 cinnamon 3125 zipixel 20 0 377212 29532 23188 S 0,3 0,2 15:04.19 xapp-sn-watcher 3432 zipixel 20 0 1427616 141304 104016 S 0,3 0,9 20:21.43 qbittorrent 83974 zipixel 20 0 972988 78936 54024 S 0,3 0,5 1:07.77 cinnamon-screen 96847 root 20 0 0 0 0 I 0,3 0,0 0:01.98 kworker/1:1-events 97894 root 20 0 0 0 0 I 0,3 0,0 0:00.31 kworker/u4:1-events_freezable_power_ 97992 zipixel 20 0 9976 3584 3324 S 0,3 0,0 0:04.59 bash 1 root 20 0 168024 13556 8340 S 0,0 0,1 0:43.47 systemd
Una volta lanciato top si possono utilizzare i seguenti comandi
q - per uscire da top
u - ordina per utente
M - ordina per uso della memoria
P - ordina per l'uso del processore
h - visualizza la guida (help)
k - termina un processo
n - modifica il numero di processi visualizzati
lshw: lista hardware del computer
lshw: con questo comando è possibile avere una lista di tutti i dispositivi che compongono l’hardware del computer
$ sudo lshw | lista completa di tutti i dispositivi hardware del computer |
$ sudo lshw -short | lista abbreviata di tutti i dispositivi hardware del computer |
zipixel@zpxc321:~$ sudo lshw -short
Percorso H/W Dispositivo Classe Descrizione
==============================================================
system ZBOX-CI321NANO (NA)
/0 bus ZBOX-CI321NANO
/0/0 memory 64KiB BIOS
/0/3d processor Intel(R) Celeron(R) 2961Y @ 1.10GHz
/0/3d/3e memory 512KiB L2 cache
/0/3d/3f memory 128KiB L1 cache
/0/3d/40 memory 2MiB L3 cache
/0/41 memory 16GiB Memoria di sistema
/0/41/0 memory 8GiB SODIMM DDR3 Sincrono 1333 MHz (0,8 ns)
/0/100 bridge Haswell-ULT DRAM Controller
/0/100/2 /dev/fb0 display Intel Corporation
/0/100/3 card0 multimedia Haswell-ULT HD Audio Controller
uname: informazioni sul sistema
uname: con questo comando è possibile sapere se il processore è a 32 o 64 bit
$ uname -a | informazioni complete |
$ sudo lshw -short | lista abbreviata di tutti i dispositivi hardware del computer |
grep: ricerca stringhe
Il comando grep
in Linux viene utilizzato per cercare una stringa di testo all’interno di uno o più file. Ecco alcuni esempi utili per comprendere meglio come utilizzare il comando grep
:
- Cerca una parola in un file:
perl grep "parola" nome_file.txt
Questo comando cerca la parola “parola” all’interno del file “nome_file.txt”.
- Cerca una parola in tutti i file all’interno di una directory:
bash: grep "parola" /directory/*
Questo comando cerca la parola “parola” in tutti i file presenti nella directory “directory”.
- Cerca una parola in tutti i file all’interno di una directory e sottodirectory:
bash: grep -r "parola" /directory/
Questo comando cerca la parola “parola” in tutti i file presenti nella directory “directory” e nelle sue sottodirectory.
- Cerca una parola ignorando maiuscole e minuscole:
perl: grep -i "parola" nome_file.txt
Questo comando cerca la parola “parola” all’interno del file “nome_file.txt”, ignorando la differenza tra maiuscole e minuscole.
- Cerca una parola e stampa le linee corrispondenti:
bash: grep "parola" nome_file.txt | cat -n
Questo comando cerca la parola “parola” all’interno del file “nome_file.txt” e stampa le linee corrispondenti insieme al numero di linea.
- Cerca una parola escludendo alcune linee:
perl: grep "parola" nome_file.txt | grep -v "parola_esclusa"
Questo comando cerca la parola “parola” all’interno del file “nome_file.txt”, ma esclude le linee che contengono la parola “parola_esclusa”.
Questi sono solo alcuni esempi utili di come utilizzare il comando grep in Linux per cercare una stringa di testo all’interno di uno o più file.
Il comando grep inoltre può essere utilizzato in combinazione con altri comandi, come ad esempio ps
, per filtrare e visualizzare solo le informazioni pertinenti. Ecco un esempio di come utilizzare grep
con ps
:
perl: ps aux | grep "nome_processo"
Questo comando visualizza tutti i processi in esecuzione nel sistema utilizzando il comando ps aux. La pipeline |
invia l’output di ps aux al comando grep, che filtra solo le righe che contengono la stringa “nome_processo”. Questo può essere utile per trovare un processo specifico all’interno dell’elenco di processi in esecuzione.
Inoltre, grep può essere utilizzato con altri comandi come find, ls e tail per cercare informazioni specifiche all’interno di file, elenchi di directory o log di sistema. Utilizzando grep in combinazione con altri comandi, puoi raffinare la ricerca e ottenere solo le informazioni pertinenti.
Rete
nast: strumento di analisi della rete
nast: con questo strumento è possibile analizzare lo stato della rete
$ sudo nast -m | mappa dei dispositivi connessi alla rete |
ifconfig: stato delle connessioni di rete
ifconfig: con questo strumento è possibile sapere lo stato di connessone della rete (LAN, WAN) e l’indirizzo IP assegnato alle schede
$ ifconfig | stato di connessone della rete |
Creare un file iso
Creare una iso con tutti i file della cartella corrente
sudo mkisofs -r -o iso_da_masterizzare.iso .
Importante il punto finale
Gestione cartelle compresse .tar
tar: crea/decomprime archivi compressi
Comprimere file1 file2 in archivio.tar.gz
$ tar -cvzf archivio.tar.gz file1 file2 | c= crea, v=verbose, z=comprimi, f=nome archivio (ES archivio.tar.gz) |
$ tar -xvf archivio.tar.gz | x=estrai, v=verbose, f=nome archivio (ES archivio.tar.gz) |
Utility
VncViewer
Questo potente strumento consente di visualizzare quello che avviene su un altro Computer
Impostazioni pc host
Per prima cosa bisogna impostare il pc a cui ci si vuole connettere (host). Andare su Sistema > preferenze > Desktop remoto
attivare [ ] Consentire agli altri utenti di visualizzare il proprio desktop. Se si vuole controllare anche il pc remoto occorre attivare anche
Consentire agli altri utenti di controllare il proprio desktop.
Impostazioni pc server
Dare da terminale il comando
vncviewer <opzioni> <indirizzo-IP>:<porta>
-shared : consente la condivisione della connessione con altri client
-viewonly : con questa opzione non è possibile interagire sul computer remoto
-fullscreen : con questa opzione il PC server viene visualizzato a tutto schermo. Premendo F8 compare una finestra pop-up per terminare vncviewer o disabilitare il fullscreen
$ vncviewer -viewonly -fullscreen 192.168.100.1:0 | Visualizza a pieno schermo ciò che avviene sul pc con indirizzo 192.168.100.1 |
NoMachine
NoMachine è un software di desktop remoto che consente agli utenti di accedere e controllare un computer da un altro dispositivo. Può essere utile per lavorare da casa, accedere a file e programmi su un computer remoto, o per fornire supporto tecnico a distanza.
Per installare NoMachine su Linux Debian, puoi seguire questi passaggi:
- Visita il sito web ufficiale di NoMachine all’indirizzo https://www.nomachine.com/ e scarica l’ultima versione per Linux Debian.
- Apri il terminale sul tuo computer Debian e naviga nella cartella in cui hai scaricato il file di installazione di NoMachine.
- Esegui il comando
sudo dpkg -i nome_file.deb
sostituendonome_file.deb
con il nome del file di installazione di NoMachine. - Attendere che l’installazione sia completata.
- Avvia NoMachine dal menu delle applicazioni o dal terminale eseguendo il comando
nxclient
.
Una volta avviato NoMachine, puoi configurarlo per accedere e controllare un computer remoto tramite l’indirizzo IP del computer e le credenziali di accesso.