Visualizzazione post con etichetta Linux. Mostra tutti i post
Visualizzazione post con etichetta Linux. Mostra tutti i post

venerdì 3 febbraio 2023

Linux: Comando dir

In Linux il comando più utilizzato per visualizzare il contenuto di una cartella (e non solo) è, senza ombra di dubbio, ls. Molti utenti ignorano che in Linux è presente anche il comando dir che ha l'unico scopo di mostrare il contenuto di una cartella.

Sintassi

La sintatti base del comando dir è
dir [options] [Directory] [Files]

in cui
  • options: Si tratta di parametri opzionali che possono essere utilizzati per controllare l'output del comando dir.
  • Directory: È la directory il cui contenuto deve essere elencato.
  • Files: È un elenco di file specifici che devono essere elencati.

Utilizzo

L'uso più elementare del comando dir è quello di elencare il contenuto della directory corrente e per farlo basta digitare dir senza alcuna opzione e premere invio. Se non viene specificata alcuna directory, infatti, il comando dir elenca il contenuto della directory di lavoro corrente.
Come visibile in FIG 1, l'output del comando dir viene ordinato in ordine alfabetico.
Visualizzare elenco file con il comando dir
FIG 1 - Visualizzare elenco file con il comando dir

Il comando dir, a differenza del comando ls, per impostazione predefinita non visualizza l'output a colori. Per abilitare la visualizzazione a colori è possibile utilizzare l'opzione --color.
dir --color
Output a colori
FIG 2 - Output a colori

I colori permettono di identificare rapidamente determinati file o cartelle in base al loro colore. Ad esempio:
VerdeBianco: File regolari
Blu: Directory
Ciano: Collegamenti simbolici
Rosso: Collegamenti interrotti
Giallo: File del dispositivo

Utilizzando l'opzione -l, l'output viene visualizzato come un lungo elenco. Per ciascun file vengono visualizzate informazioni come permessi, proprietà, timestamp, ecc.
dir -l
Visualizzazione come elenco
FIG 3 - Visualizzazione come elenco
Altre opzioni di visualizzazione come elenco sono:
-1: elenca le voci in una singola colonna
-C: elenca le voci in colonne
-m: elenca le voci in un formato separato da virgole.

L'opzione -m è particolarmente utile quando si vuole generare rapidamente un elenco di file che altri programmi o script possono utilizzare. L'apprendimento automatico è un esempio di come questa opzione possa essere utile.
dir -m
Elenco separato da virgole
FIG 4 - Elenco separato da virgole
In Linux i file il cui nome inizia con un punto (.) sono file nascosti e, per impostazioni predefinita, non vengono visualizzati. Per visualizzare i file nascosti va utilizzata l'opzione -a.
dir -a
Visualizzazione file nascosti
FIG 5 - Visualizzazione file nascosti
Nell'output vengono visualizzate anche due voci speciali (dette pseudo-file): . (directory corrente) e .. (directory padre). Per non visualizzarle nell'output si utilizza l'opzione -A (abbreviazione di "almost-all").
dir -A
Visualizzazione file nascosti senza gli pseudo-file
FIG 6 - Visualizzazione file nascosti senza gli pseudo-file

Utilizzando l'opzione -F, abbreviazione di "classify", viene aggiunto un carattere dopo ogni voce per indicare il tipo di file. Questa informazione permette di identificare rapidamente alcuni tipi di file.
dir -F

I caratteri aggiunti per ogni voce sono:
  • \ per le directory
  • @ per i collegamenti
  • * per i file eseguibili
  • | per FIFO (named pipes)
Classify
FIG 7 - Classify

Un opzione simile è --file-type, che si comporta in maniera simile a -F  ma non mostra * per i file eseguibili.
dir --file-type

L'opzione --ignore consente di specificare tipi di file da non visualizzare/ignorare. Ad esempio il comando
dir --ignore="New*" --ignore="*.txt"
non visualizza i file il cui nome inizia per "New" o che hanno estensione .txt.
Escludere la visualizzazione di alcuni file
FIG 8 - Escludere la visualizzazione di alcuni file
Anche il comando dir supporta l'opzione -h (abbreviazione di "human-readable") che visualizza le informazioni, come la dimensione dei file, in maniera più comprensibile per gli utenti. È consigliabile utilizzare l'opzione -l insieme a -h.
dir -l -h
Visualizzazione human-readable
FIG 9 - Visualizzazione human-readable

Per visualizzare i file in base alle loro dimensioni, si utilizza l'opzione -S (opzione utile per individuare i file che occupano maggiore spazio)
dir -S -l
Come si può vedere nella schermata seguente, i file che occupano più spazio sono visualizzati in alto.
Ordinare file per dimensione
FIG 10 - Ordinare file per dimensione




mercoledì 25 gennaio 2023

Linux: Svuotare la cache dei DNS

Il servizio DNS funziona come un sistema di traduzione, traducendo i nomi di dominio in indirizzi IP e viceversa; in genere si appoggia a un server gestito dal proprio provider di connettività o a server pubblici liberamente accessibili come quelli forniti da Google, Cloudflare, OpenDNS, ecc. 
Generalmente i sistemi operativi mantengono una cache locale per velocizzare l'accesso alle risorse utilizzate più spesso ed evitare di effettuare ogni volta una chiamata al server DNS remoto. Tuttavia, all'interno della cache del DNS, possono crearsi inconsistenze che impediscono l'accesso ad alcuni siti o alla visualizzazione di contenuti non aggiornati. In questi casi è utile poter eliminare il contenuto della cache DNS in modo tale da interrogare nuovamente il server DNS per una corretta risoluzione dell'URL.

Non tutte le distribuzioni Linux hanno abilitato di default la cache dei DNS. Per verificarlo basta eseguire il seguente comando dalla finestra terminale
systemctl is-active systemd-resolved
se il sistema risponde con Active allora la cache è abilitata.
Verifica abilitazione cache DNS
FIG 1 - Verifica abilitazione cache DNS

Per abilitare la cache dei DNS bisogna abilitare ed avviare il servizio systemd-resolved con i comandi
sudo systemctl enable systemd-resolved.service
sudo systemctl start systemd-resolved.service

Per disabilitare la cache dei DNS
sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved.service

Con il comando
resolvectl statistics
Vengono visualizzate informazioni sintetiche principali sullo stato della cache come il numero di elementi memorizzati.

Per svuotare la cache dei DNS il comando da eseguire è
resolvectl flush-caches





sabato 24 dicembre 2022

Linux: Monitorare la velocità di clock dei core del processore

Per monitorare costantemente la velocità di clock dei core del processore basta lanciare, da una finestra Terminale, il comando
watch -n0.2 grep -e MHz -e processor /proc/cpuinfo
Clock dei core della CPU
FIG 1 - Clock dei core della CPU





sabato 30 luglio 2022

Linux: Comando timeout

Il comando timeout fa parte del pacchetto GNU core utilities installato in quasi tutte le distribuzioni Linux e può essere utilizzato nel caso in cui si vuole eseguire un comando che non dispone di un'opzione di timeout incorporata.
L'utility a riga di comando timeout, infatti, consente di eseguire un comando specificato e terminarlo, se è ancora in esecuzione, dopo un determinato periodo di tempo. 

Sintassi

timeout [OPZIONI] DURATA COMMANDO [ARG]…

La DURATA può essere specificata con un numero intero positivo o un numero in virgola mobile, seguito da un suffisso opzionale di unità:
s - secondi (default)
m - minuti
h - ore
d - giorni

Se non viene specificata alcuna unità, l'impostazione predefinita è secondi. Se la durata è impostata a zero, il timeout associato è disabilitato.

Utilizzo di timeout

Di seguito viene mostrato, con alcuni semplici esempi, come può essere utilizzato il comando di timeout.

timeout 5 ping 8.8.8.8
Termina il comando ping dopo 5 secondi
Linux, timeout
FIG 1 - Linux, timeout

timeout 1.2m ping 8.8.8.8
Termina il comando ping dopo 1 minuto e 20 secondi

Per eseguire un comando che richiede privilegi elevati basta anteporre sudo al comando timeout.
sudo timeout 1.2m ping 8.8.8.8

Invio di uno specifico segnale

Se non viene specificato alcun segnale, il timeout invia il segnale SIGTERM al comando gestito quando viene raggiunto il limite di tempo. È possibile specificare quale segnale inviare utilizzando l'opzione -s (--signal).
Per visualizzare l'elenco di tutti i segnali disponibili si utilizza il comando
kill -l
kill, elenco segnali disponibili
FIG 2 - kill, elenco segnali disponibili


sudo timeout 1m -s SIGKILL ping 8.8.8.8
sudo timeout 1m -s 9 ping 8.8.8.8
I comandi sopra riportati inviano il segnale SIGKILL per terminare il comando ping dopo un minuto. Il segnale può essere specificato all'interno del comando indicando il nome (SIGKILL) oppure il numero corrispondente (9).

Forzare la chiusura del processo con l'opzione -k

SIGTERM può essere catturato o ignorato da alcuni processi. In queste situazioni, il processo continuerà a funzionare dopo l'invio del segnale di terminazione.
Per assicurarsi che il comando monitorato venga terminato, va utilizzata l'opzione -k (--kill-after) seguita da un periodo di tempo. In questo modo, dopo il raggiungimento del limite di tempo indicato, il comando di timeout invia il segnale SIGKILL al programma gestito che non può essere catturato o ignorato.

Nell'esempio seguente, timeout esegue il comando ping per un minuto e, se non viene terminato, lo termina dopo dieci secondi.
sudo timeout -k 10 1m ping 8.8.8.8

Return code

Il comando timeout restituisce, come codice di ritorno, 124 quando viene raggiunto il limite di tempo, in caso contrario viene restituito il codice di ritorno del comando gestito.

Per visualizzare il return code del comando anche quando viene raggiunto il limite di tempo, si  utilizza l'opzione --preserve-status:
timeout --preserve-status 10 ping 8.8.8.8

Eseguire il comando in primo piano

Per impostazione predefinita, il timeout esegue il comando gestito in background. Per eseguire il comando in primo piano si utilizza l'opzione --foreground:
timeout --foreground 3m ./scriptfile.sh

Questa opzione è utile quando si vuole eseguire un comando interattivo che richiede l'input dell'utente.



lunedì 11 aprile 2022

Linux: Visualizzare l'Easter egg di Vim

Per visualizzare l'Easter egg incluso nell'editor di testo Vim:
  • Da una finestra terminale avviare l'editor digitando vim seguito da invio.
  • Digitare :smile e premere invio

VIM Easter egg
FIG 1 - VIM Easter egg





venerdì 4 febbraio 2022

Linux: Divertirsi con la shell bash (3)

Da terminare incollare ed eseguire il seguente codice per visualizzare caratteri casuali che scorrono dall'alto verso il basso stile Matrix.

while :;do echo $LINES $COLUMNS $(( $RANDOM % $COLUMNS)) $(printf "\U$(($RANDOM % 500))");sleep 0.05;done|gawk '{a[$3]=0;for (x in a){o=a[x];a[x]=a[x]+1;printf "\033[%s;%sH\033[2;32m%s",o,x,$4;printf "\033[%s;%sH\033[1;37m%s\033[0;0H",a[x],x,$4;if (a[x] >= $1){a[x]=0;} }}'


Matrix
FIG 1 - Matrix




giovedì 19 novembre 2020

Linux: Divertirsi con la shell bash (2)

Per poter funzionare, il comando mostrato in questo articolo deve essere eseguito in un emulatore di terminale che permette la visualizzazione dei colori a 24bit, inoltre deve essere installato bc.

In Kali Linux è possibile procedere come indicato di seguito:
  • Avviare la finestra terminale;
  • Procedere all'installazione di bc eseguendo il comando 
    sudo apt-get install bc

    Kali Linux - Installazione bc
    FIG 1 - Kali Linux, Installazione bc

  • Eseguire il seguente comando per visualizzare un piacevole effetto di colori all'interno della finestra terminale 
    p=3.14;for i in $( seq 0 0.04 100 );do r=$( printf "128+127*s($i)\n" |bc -l |cut -d. -f1) g=$( printf "128+127*s($i+$p*(1/3))\n" |bc -l |cut -d. -f1 ) b=$( printf "128+127*s($i+$p*(2/3))\n" |bc -l |cut -d. -f1 ); printf "\e[48;2;$r;$g;${b}m\n"; sleep 0.015; done

    Kali Linux - Effetto colori
    FIG 2 - Kali Linux, Effetto colori





martedì 24 settembre 2019

Linux: Easter Egg Debian/Ubuntu

APT (Advanced Packaging Tool) è il gestore dei pacchetti software utilizzato enlle distrubuzioni Linux Debian/Ubuntu. Tale tool nasconde un Easter egg. Aprire il terminale di una distribuzione Linux basata su Debian/Ubuntu ed eseguire i seguenti comandi:
apt moo
apt moo moo
apt moo moo moo

Se è installato aptitude provare ad eseguire anche:
aptitude moo -v
aptitude moo -vv
aptitude moo -vvv
aptitude moo -vvvv
aptitude moo -vvvvv


Linux, apt moo Easter Egg
FIG 1 - Linux, apt moo Easter Egg





venerdì 20 settembre 2019

Linux: Monitorare i processi in real time utilizzando l'utility Watch

Lavorando in ambiente Linux da terminale qualche volta può essere necessario eseguire un comando ripetutamente. In Linux tale operazione è resa possibile dall'utility watch.

Possiamo utilizzare tale utility per eseguire ripetutamente il comando ps e visualizzare, in tempo reale, informazioni relative ai processi in esecuzione. Per raggiungere tale scopo basta digitare il seguente comando da terminale

watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'


Linux, Monitoring in tempo reale dei processi in esecuzione
FIG 1 - Linux, Monitoring in tempo reale dei processi in esecuzione


mercoledì 18 settembre 2019

Linux: Divertirsi con la shell bash

Avviare la finestra terminale, incollare ed eseguire il seguente codice per vedere il cursore rimbalzare nella finestra e scrivere il manuale bash.

man bash | sed 's/./&\n/g' | awk -v mx=$COLUMNS -v my=$LINES 'BEGIN{x=y=e=f=1}{if(x==mx||!x){e*=-1};if(y==my||!y){f*=-1};x+=e;y+=f;printf "\033[%s;%sH%s",y,x,$1;for (a=0;a<400000;a++){}}' 


Linux, divertirsi con la shell bash
FIG 1 - Linux, divertirsi con la shell bash




domenica 24 giugno 2018

Linux: Nascondere l'output di un comando all'interno della Shell

Per nascondere l'output di un comando all'interno della Shell è possibile redirezionarlo verso /dev/null. Nei sistemi operativi Unix-like /dev/null (null device, ovvero dispositivo nullo) non è altro che un file virtuale, non presente su memoria di massa, che scarta, non memorizzando, tutti i dati che gli vengono inviati. Proprio per tale caratteristica /dev/null viene soprannominato bit bucket (cestino per bit).



La sintassi è molto semplice e fa uso dell'operatore > per la redirezione dell'output:
comando > /dev/null
Il comando sopra indicato permette di ignorare il flusso standard output (stdout) inviandolo a /dev/null.

Per nascondere l'output del comando compreso gli errori si utilizza
comando &> /dev/null
In questo modo viene ignorato sia il flusso stdout (standard output) che quello stderr (standard error).

Linux, redirezione dell'output
FIG 1 - Linux, redirezione dell'output




martedì 30 gennaio 2018

Kali Linux: Installazione Fonts Microsoft Core

Chi lavora in ambiente Linux spesso si scontra con documenti e/o pagine web che utilizzano caratteri diffusissimi in ambiente Windows ma che non sono installati sul proprio sistema operativo.
Per rimediare a tale inconveniente è possibile installare il pacchetto di font Microsoft Core che contiene, fra gli altri, i font Arial, Arial BlackComic Sans MS, Courier New, Times New Roman e Verdana.

Innanzitutto è necessario aggiornare l'elenco dei pacchetti eseguendo il seguente comando dalla finestra terminale:
sudo apt-get update

Per installare il pacchetto dei font, sempre dalla finestra terminale, eseguire il comando
sudo apt-get install ttf-mscorefonts-installer


Kali Linux, Fonts Microsoft Core
FIG 1 - Kali Linux, Fonts Microsoft Core