La storia di Bash può fare molte cose utili e la ricerca con Strg-r
quella menzionata da Terry Wang è importante. Ma è anche possibile fare esattamente quello che hai chiesto.
Puoi ripetere il comando precedente con !!
. Con questo, puoi anche modificare il comando precedente. Se ad esempio hai dimenticato di ottenere i privilegi di root per un comando
apt-get install a-long-list-of-packages
non è necessario ripetere la digitazione di nuovo. Invece chiama e basta
sudo !!
Se si desidera eseguire nuovamente il comando in una posizione specifica della cronologia, è possibile utilizzare !
, ad esempio
!3
per rieseguire il comando in posizione 3. Tenere presente che questo conta dall'alto. Quindi, se stai memorizzando 500 comandi nella tua cronologia, !1
sarebbe "500 comandi fa". Puoi anche usare numeri negativi. Per esempio
!-2
eseguirà nuovamente il secondo ultimo comando.
Puoi anche rieseguire l'ultimo comando iniziato con una stringa come
!apt-
che rifarebbe l'ultima riga che inizia con "apt-". Se vuoi l'ultimo comando in cui la stringa appare in qualsiasi punto della linea, puoi usare qualcosa di simile
!?pt-ge
Ci sono cose più interessanti che la storia di Bash può fare. Solo per dare un'idea della vasta gamma di possibilità, è possibile accedere in modo specifico a un parametro di un comando dalla cronologia. Così
!-5:3:p
stampa il terzo parametro sul quinto dall'ultimo comando.
EDIT: Per quanto riguarda il commento di Rudie di seguito, con le impostazioni standard queste espansioni della storia bash vengono effettivamente eseguite direttamente. Probabilmente è meglio descritto in questo modo: una chiamata simile !-3
viene sostituita dalla shell con il terzo ultimo comando della cronologia e quindi eseguito l'input (con la sostituzione). Quindi se digiti !-3
e premi ENTER
e il tuo ultimo comando era ls ~
, è in effetti lo stesso che se avessi digitato di ls ~
nuovo e premuto ENTER
"da solo".
Se non lo desideri, puoi impostare l'opzione shell histverify
. Per impostare e annullare le opzioni della shell, potresti voler leggere il shopt
comando. Con histverify
set, una chiamata come !-3
scrive solo la sostituzione dalla cronologia alla riga di comando, ma non la esegue direttamente. Devi, per dirla in fretta, premere ENTER
te stesso il cruciale - o astenersi da esso, se lo desideri.