Come posso richiamare un comando specifico dalla cronologia dei comandi, senza eseguirlo


13

Ad esempio, in bash posso digitare !xyzquale eseguirà l'ultimo comando che ho digitato a partire da xyz.

Come posso visualizzare l'ultimo comando che ho digitato a partire xyzma senza eseguirlo?
ad esempio, quindi posso modificare i parametri prima dell'esecuzione ....

Risposte:


20

Puoi farlo in questo modo: al prompt dei comandi premi Ctrl+ re quindi digita il comando che desideri richiamare, nel tuo caso xyz. Questo ti mostrerà il comando completo senza eseguirlo.


1
Più utile della !notazione, perché è possibile premere Ctrl-r più volte per scorrere ulteriormente nella cronologia delle corrispondenze. Quando arrivi nel posto giusto, puoi provare a eseguire non con Invio ma con Ctrl-o per ottenere molti profitti.
kubanczyk

12

Provare !xyz:p; richiamerà il comando nella parte superiore della cronologia senza eseguirlo, quindi ad esempio la freccia su può accedervi immediatamente per l'editing interattivo.

Per inciso, faccio una pratica di fare questo quando ricordo i comandi con una regexp che potrebbe concepibilmente scavare qualcosa di dannoso, da quando un frettoloso !r, inteso a ricordare il rsync ...comando più recente , tirato indietro ed eseguito un rm *che era stato spinto in pila più recentemente di rsync.


Grazie, è una buona pratica. Ho fatto lo stesso con un rm -rf ./*mai stato così grato per un periodo. Cordiali saluti Ha !xyz:pfunzionato, grazie, ma ha richiesto alcuni tasti in più rispetto alla soluzione ctrl-r.
Mtl Dev

@MtlDev yes; Trovo che la soluzione ^ R EMACSfunzioni meglio per gli uomini, mentre il percorso! Funziona meglio per gli violatori come me.
MadHatter

1
  1. Eseguire il comando seguente. Fa eco all'ultimo comando eseguito. puoi copiare e modificare il comando. Questo comando è stato testato in debian.

    storia | coda -2 | storia grep -v | taglia -d '' -f4-

  2. Oppure Tenere premuto ctrl + R e digitare la lettera iniziale dell'ultimo comando. Elencherà i comandi eseguiti in precedenza in base all'input. Una volta che mostra il comando desiderato, basta premere la freccia destra per selezionare quel comando.


1
Il primo comando è così fluido !! Penso che sia più veloce prendersi cura del comando nella storia piuttosto che scrivere tutto questo ^ __ ^
Grajdeanu Alex.

1

Se la ricerca della cronologia inversa non è riuscita, eseguire le seguenti operazioni:

$ history | grep WHAT_YOU_LOOK_FOR

O:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.