Usare la history – 2a parte


Continuo qui un argomento trattato un po di tempo fa, cioè l’uso della history in BASH


Per prima cosa rivediamo la nostra history:
history|tail -4
510 ping 192.168.0.1
511 ifconfig eth1
512 ls -l gnome3-0.1.tar.gz
513 ls apache2.conf

come avevamo visto precedentemente per far riferimento all’ultimo argomento passato al comando precedente potevamo usare il !$, ad esempio:
more !$
una volta premuto invio, questa istruzione sarà “traformata” in
more apache2.conf
Non esiste solo questa di opzione, se ne possono usare anche di altre:

  • 0 Restituisce il comando lanciato
  • :n Restituisce l’n-esimo argomento
  • ^ Restituisce il primo argomento (come dire 1)
  • $ Restituisce l’ultimo argomento (come dire !$)
  • :n-m Restituisce gli argomenti da n a m

facciamo un esempio, supponiamo di aver scritto:
echo Questa prova serve per vedere come funziona la history
echo !$

e otteniamo “history”
echo Questa prova serve per vedere come funziona la history
echo !:0

e otteniamo “echo”
echo Questa prova serve per vedere come funziona la history
echo !:3

e otteniamo “serve”
echo Questa prova serve per vedere come funziona la history
echo !^

e otteniamo “Questa”
echo Questa prova serve per vedere come funziona la history
echo !:2-4

e otteniamo “prova serve per”
Ora, vediamo altre opzioni interessanti…

  • h Rimuovi il file, lascia solo il percorso
  • r Rimuove l’ultima estensione del file (es. .tar.bz2 -> .tar)
  • e Rimuove tutto tranne l’estensione
  • t Rimuove tutto tranne il file

ma facciamo degli esempi
echo /etc/X11/xorg.conf
echo !$:h

ed otteniamo “/etc/X11”
echo /etc/X11/xorg.conf
echo !$:r

ed otteniamo “/etc/X11/xorg”
echo /etc/X11/xorg.conf
echo !$:e

ed otteniamo “.conf”
echo /etc/X11/xorg.conf
echo !$:t

ed otteniamo “xorg.conf”
Ora un ultima opzione, per me utilissima…. p
echo /etc/X11/xorg.conf
ls !$:t:p

stampa il comando “trasformato” ma non lo esegue realmente, questo può essere certamente utile per essere sicuri di non fare danni!😀
Per eseguirlo realmente o si scrive !! e si preme invio, o si preme la freccetta in su della tastiera e si preme invio.
Le opzioni possono ovviamente essere usate combinandole, ad esempio:
echo /etc/X11/xorg.conf
echo !:1:t:r

3 thoughts on “Usare la history – 2a parte

  1. mk66 ha detto:

    Forte!
    Ho appena letto e provato un esempio di comando cui ho fatto seguire il comando man !:0 e mi ha aperto la pagina man del comando precedente..😀
    Dopo aver letto la pagina man, premendo q sono tornato esattamente dov’ero e ho ripreso il comando precedente.. praticamente fa proprio quello che avevo chiesto nell’altro commento😀

    Mi puoi mica indicare qualche guida online (oltre ai tuoi fantastici articoli) per imparare a usare bene il terminale?

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...