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





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?
http://www.tldp.org/LDP/abs/html/
Più che una guida è la bibbia
Gentilissimo, ti ringrazio