.

domenica 26 aprile 2015

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 [tab] → 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 [tab] → 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.




Nessun commento :

Posta un commento