24 giugno, 2019
ghis - grep | history non mi funziona da script e allora alias
OOPS! 😶 ho già scritto tutto nel titolo, posso lasciare vuoto il post! Ma non si usa e allora racconto.
Mi capita spesso di richiamare comandi; per questo c'è history e il file ~/.bash_history e i tasti freccia su e giù e altro ancora (chi ha detto fc?) ma alle volte --sapete la memoria, la mia-- devo scorrere e --ma c'è grep!
$ history | grep chmod
1021 chmod +x meter
1214 chmod +x pter
1673 chmod +x cdl-ck-1
1674 chmod +x cdl-ck-2
1871 chmod +x ptw0
1927 history | grep chmod
ah! ecco, il nome era cdl-ck-2, mnemonico (kwasy). In questo caso non serve ma lo so anch'io (quindi presumibilmente tutti) che per ri-eseguire un comando si può usare !N dove N è il numero indicato, per esempio !1927 ripete history | grep chmod.
Comodo, se un comando lo ripeti due volte lo ripeterai ancora e allora conviene farci lo script (cit. riportata male ma la sostanza è quella). Solo che non funziona. Ultimamente ci abbiamo provato, PLG, EL, BA, io e altri ancora che adesso dimentico di citare. Inizialmente avevamo pensato (PLG e me) che l'indagine classica --googlare Stack Overflow e il web tutto-- ci avrebbe rivelato cosa non andava e come fare ma niente, qualcuno riporta varianti del nostro script:
#!/bin/bash
echo 'cerco per' $1
history | grep $1
ma eseguito (notare l'echo per il debug) non è come si sperava:
$ bash ghis chmod
cerco per chmod
$
🤢 Panico? no, nope! 💥 si può fare l'alias:
$ alias ghis
alias ghis='history | grep'
$
sì, l'avevo già fatto prima di scrivere queste note, messo nel file ~/.bash_aliases ed è già attivo (altrimenti per vedere subito le modifiche inserite in ~/.bash_aliases occorrerebbe attivarlo con source ~/.bash_aliases, risaputo vero?). Funziona:
$ ghis chmod
2006 history chmod | grep
2007 history | grep chmod
2008 history | grep chmod 10
2009 history 10 | grep chmod
2011 bash ghis chmod
2016 ghis chmod
$
Sì nel frattempo ho eseguito diversi altri comandi; e sto barando, riporto solo la parte finale dell'output di ghis. Un ulteriore suggerimento (lo so che lo sapete ma se del caso...) trovo molto comodo aliasare anche grep:
$ alias grep
alias grep='grep --color=auto'
$
così l'espressione cercata sarà colorata (rosso per me).
🔴
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento