10 utilità che “forse” non sai sulla Bash shell di Linux

La Bash è una Shell testuale utilizzata nella maggior parte dei sistemi Linux per impartire comandi via terminale.

Permette di eseguire comandi più particolareggiati ed interagire maggiormente con i programmi in esecuzione.
In questo post voglio elencare una serie di funzionalità ed utilità che ci consentono di essere più produttivo nel lavoro frequente col terminale.

Nota: Il post non vuole essere una guida esaustiva sui comandi o sulle funzioni della Bash.
Per questo rimando all’ottima guida di Machtelt Garrels, tradotta in italiano e pubblicata al seguente indirizzo: Guida bash 1.11.pdf

Ecco l’elenco di 10 utilità della Bash.

1 – Premendo il tasto tab durante la digitazione, si avrà l’auto-completamento del percorso o del comando in fase di scrittura.

  • es. cd /et → si autocompleta in cd /etc/

Se non c’è l’unicità nella stringa da completare, il sistema elenca le varie possibilità, onde facilitarne l’individuazione.

  • es. ls  → il sistema ci restituisce l’elenco dei comandi filtrati per le iniziali “ls”
    ls           lsb_release  lsinitramfs  lspci        lsusb
    lsattr       lscpu        lsmod        lspgpot
    lsblk        lshw         lsof         lss16toppm

2 – Tutti i comandi digitati (a dir la verità vi è un limite impostato nel file di configurazione .bashrc e verificabile col comando echo $HISTFILESIZE) sono memorizzati in una cronologia.

Muovendo le frecce direzionali verso l’alto o il basso, si scorre nella cronologia dei comandi eseguiti.
Tutta la cronologia è memorizzata in righe di testo in un file nascosto chiamato .bash_history presente nella Home dell’utente.

Nota: In alcune distribuzioni potrebbe non essere presente il file di configurazione .bashrc nella Home dell’utente. Per crearlo, eseguire una copia da /etc:
cp /etc/bash.bashrc ~/.bashrc
e renderlo operativo attraverso il comando:
source ~/.bashrc

3 – Per ricercare un comando già impartito e presente in cronologia basta eseguire la combinazione CTRL-r e cominciare a digitare quanto desiderato.
Il sistema cercherà la prima occorrenza di quanto digitato a ritroso nella cronologia.
Per continuare a sfogliare secondo il filtro, continuare a premere CTRL-r.
CTRL+c cancella la ricerca. ESC permette di editare il comando mostrato.
Se si vuole invece eseguire il comando mostrato a display, premere Enter.

4 – Il comando History elenca i comandi eseguiti.
Se si vuole navigare attraverso la cronologia, si può far seguire il pipeline | ed il comando less

  • es. history | less

Con le frecce alto e basso, si può scorrere tra gli elementi.

Per eseguire direttamente un comando senza scriverlo, è possibile richiamarlo digitando il numero corrispondente (elencato nel listato mostrato precedentemente) con la preposizione !

  • es. !155 per eseguire il 155esimo comando

5 – Nella Bash è possibile impostare degli alias che abbreviano la digitazione di comandi magari con molteplici opzioni.

  • es. digitando ll (elle elle) la mia distribuzione Linux mi restituirà l’elenco di tutti i files in unica colonna nel formato esteso (opzione -alF)

Per verificare gli alias attualmente impostati, digitare il comando alias, senza alcun parametro, ed il sistema ne restituirà l’elenco.
Per impostare un nuovo “alias”, digitare

  • alias cdh=’cd ~’ per andare direttamente nella home dell’utente

L’alias così impostato non è permanente ed è attivo solo nella sessione corrente.
Per renderlo definitivo, inserirlo in uno dei files di configurazione che vengono letti all’avvio della Bash, ad es. nel file .bashrc presente in Home utente.

6 – Aggiunta della pipeline | e del comando more per elencare il risultato di comando una schermata alla volta

  • es. ls -l | more

Per avanzare un rigo alla volta premere il tasto Enter, per avanzare di una schermata, premere la barra spaziatrice.

7 – Per indirizzare (memorizzare) il risultato di un comando in un file di testo, utilizzare l’oggetto “>”

  • es. ls *.doc > elenco_doc.txt

Che scrive il risultato dell’elenco dei files con estensione .doc nel file di testo elenco_doc.txt.
Il doppio segno di maggiore “>>”, accoda altre informazioni ad un file esistente.

8 – Per eseguire un comando e disimpegnare la shell, digitare il comando seguito dall’oggetto “&”

  • es. firefox &

9 – Per digitare più comandi in un unico rigo ed eseguirli in sequenza, separarli con il pipeline ;

  • es. cd ~ ; ls

Per lanciare due comandi in sequenza, ma eseguire il secondo solo se il primo viene eseguito con successo, utilizzare il pipeline &&

  • es. sudo apt-get update && sudo apt-get upgrade

10 – Per conoscere in quale directory siamo, utilizzare il comando pwd

  • es. pwd
    /home/tecnopassopasso

Buona shell a tutti.

Se pensi che l'articolo che possa essere d'aiuto a qualcuno condividi, grazie.

Giuseppe Guida

Ho da sempre la passione per Internet e le nuove tecnologie. Mi interesso particolarmente dell'ottimizzazione delle risorse informatiche, dell'open source, dei servizi web e cyber-sicurezza | Seguimi su Twitter @tecnopassopasso

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *