GNU/Linux >> Linux Esercitazione >  >> Linux

Usando la cronologia di bash per ottenere un comando precedente, copialo e poi "eseguilo" ma con il comando commentato

Suggerirei invece di usare il comando history, di usare ctrl+r e inizia a digitare quel comando. Quando premi un tasto freccia come per andare a modificarlo, uscirà dal riconoscimento del completamento automatico e ti consentirà di modificare prima dell'esecuzione.

AGGIORNAMENTO:inoltre, se vuoi scorrere i diversi comandi che contengono la stringa appena digitata, continua a premere ctrl+r


In realtà, puoi semplicemente aggiungere :p al comando per stamparlo senza eseguirlo effettivamente. Ad esempio:

$ ls -la
$ !!:p

Stamperà ls -la come il comando precedente senza eseguirlo, e puoi semplicemente premere (su) per trovarlo e modificarlo.

Puoi anche fare

!123:p

per stampare il 123° comando come comando precedente.


Puoi anche provare fc comando per modificare il comando nella cronologia.

WIKI dice,

​fc​ è un programma standard su Unix che elenca o modifica e riesegue i comandi precedentemente immessi in una shell interattiva. fc è un integrato comando in bash guscio; aiuto fc mostrerà le informazioni sull'utilizzo.

Oltre alla ricerca incrementale inversa (Ctrl +R ), abbiamo altre bash scorciatoie:

Da man bash :

previous-history (C-p)
    Fetch the previous command from the history list, moving back in the list. 
next-history (C-n)
    Fetch the next command from the history list, moving forward in the list. 
beginning-of-history (M-<)
    Move to the first line in the history. 
end-of-history (M->)
    Move to the end of the input history, i.e., the line currently being entered. 
reverse-search-history (C-r)
    Search backward starting at the current line and moving 'up' through the history as necessary. This is an incremental search. 
forward-search-history (C-s)
    Search forward starting at the current line and moving 'down' through the history as necessary. This is an incremental search. 
non-incremental-reverse-search-history (M-p)
    Search backward through the history starting at the current line using a non-incremental search for a string supplied by the user. 
non-incremental-forward-search-history (M-n)
    Search forward through the history using a non-incremental search for a string supplied by the user.
yank-nth-arg (M-C-y)
    Insert the first argument to the previous command (usually the second word on the previous line) at point. With an argument n, insert the nth word from the previous command (the words in the previous command begin with word 0). A negative argument inserts the nth word from the end of the previous command. Once the argument n is computed, the argument is extracted as if the "!n" history expansion had been specified.
yank-last-arg (M-., M-_)
    Insert the last argument to the previous command (the last word of the previous history entry). With an argument, behave exactly like yank-nth-arg. Successive calls to yank-last-arg move back through the history list, inserting the last argument of each line in turn. The history expansion facilities are used to extract the last argument, as if the "!$" history expansion had been specified. 
shell-expand-line (M-C-e)
    Expand the line as the shell does. This performs alias and history expansion as well as all of the shell word expansions. See HISTORY EXPANSION below for a description of history expansion. 
history-expand-line (M-^)
    Perform history expansion on the current line. See HISTORY EXPANSION below for a description of history expansion.
insert-last-argument (M-., M-_)
    A synonym for yank-last-arg. 
operate-and-get-next (C-o)
    Accept the current line for execution and fetch the next line relative to the current line from the history for editing. Any argument is ignored. 
edit-and-execute-command (C-xC-e)
    Invoke an editor on the current command line, and execute the result as shell commands.

Linux
  1. Copia e incolla nella riga di comando di Linux con xclip

  2. Suggerimenti Bash per tutti i giorni dalla riga di comando

  3. Capire il punto esclamativo (!) In Bash?

  4. Usando –exclude con il comando Du?

  5. trova e copia il file usando Bash

Copia i file in modo sicuro con il comando SCP

CentOS / RHEL:come ottenere la data e l'ora del comando eseguito nell'output del comando della cronologia

'&&' vs. '&' con il comando 'test' in Bash

Eseguire nuovamente il comando precedente con argomenti diversi

Come ottenere solo l'utente, il pid e il comando eseguito per un processo specifico? (Ubuntu 11.10)

Esegui il comando in bash senza salvare nella cronologia