Nei sistemi UNIX è possibile premere le frecce superiore e inferiore per navigare attraverso i comandi precedenti. Questo è estremamente utile.
A volte, salgo e trovo un comando che voglio riutilizzare, ma con alcune variazioni. Se faccio tali modifiche, non ho modo di riavere il comando originale, a meno che non lo acceda history
.
Esiste un modo per "annullare" le modifiche al comando nella cronologia a cui si accede tramite le chiavi?
La mia attuale soluzione alternativa è anteporre #
a al comando. In questo modo il comando corrente viene eseguito come commento, quindi non accade nulla. Quindi, posso navigare di nuovo attraverso i comandi con i tasti. Il problema è che il comando che stavo usando potrebbe essere molto lontano nell'elenco, quindi risalire duecento volte è un po '. Anche Control + R non è una soluzione, dal momento che forse non ricordo esattamente quello che stavo cercando.
Esempio
Ho digitato il seguente "50 comandi fa":
ls -l /etc/httpd/conf/
Ora sono salito su quella linea e l'ho cambiato in
ls -l /etc/init.d/
ma non ha premuto invio. Ora voglio tornare di ls -l /etc/httpd/conf/
nuovo.
Il mio ambiente
$ echo $SHELL
/bin/bash
$ echo $TERM
xterm
ksh
il comportamento qui differisce, a quanto pare. E le opzioni di modifica della cronologia dipendono anche dalla modalità di modifica scelta. Nella ksh
modalità vi, ad esempio, la vecchia voce non viene sovrascritta e posso anche emettere un comando di annullamento, come in vi
, con 'u'.
ksh
, ma è bene sapere che esiste qualcosa del genere.
ksh
esempio, è possibile modificare le voci della cronologia e richiamarle senza eliminare la "versione precedente" della voce; hai tutti i comandi invocati disponibili.