Quando si eseguono comandi, a volte forse è necessario eseguire un comando con l'argomento dell'ultimo comando. Come puoi farlo?
Naturalmente, salvo l'uso dei tasti freccia e Deltasti: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Quando si eseguono comandi, a volte forse è necessario eseguire un comando con l'argomento dell'ultimo comando. Come puoi farlo?
Naturalmente, salvo l'uso dei tasti freccia e Deltasti: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Risposte:
Ad esempio, se si esegue questo comando:
mkdir long_path_here/new_dir
molto probabilmente vorresti andare nella directory creata di recente. Puoi farlo usando le prossime "scorciatoie":
cd
Esc.- digitare cd
e dopo premere Escseguito da .(non contemporaneamente). Se il comando precedente non ha argomenti, otterrai il comando precedente stesso.cd !*
- in questo caso otterrai tutti gli argomenti dal comando precedente. Se il comando precedente non ha argomenti, non otterrai nulla.cd
Alt+ .- digitare cd
e dopo premere Alte .(contemporaneamente). In effetti, usando questo modo e continuando a premere .(senza rilasciare Alt), otterrai l'ultimo argomento per ogni comando dalla storia. Se un comando non ha argomenti, otterrai il comando stesso.In generale: <command>
Esc.oppure <command> !*
oppure <command>
Alt+ ..
Ci sono alcune scorciatoie se vuoi tutti gli argomenti dal comando precedente o solo l'ultimo argomento.
<command> !*
<command> !$
Esempi:
ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/
ls foo/ bar/
ls !$ # Gives the results of ls bar/
Se si desidera un singolo argomento da un elenco di argomenti del comando precedente, è possibile utilizzare <command> !!:<argNumber>
Esempio:
ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/
!
nella versione arg singola, ad es !:2
. Supponendo bash predefinito.
!^
al posto di !:1
.
Menzionato !*
ed !$
è una buona cosa, ma quando devi fare un po 'di modifica delle scorciatoie readline vengono in aiuto!
Ad esempio, invece degli innumerevoli ↑←←←... ←→→DelDelDel... Delpuoi semplicemente premere ↑ Ctrl-a( vai all'inizio della riga) Alt+d(elimina fino alla fine della parola)
Per maggiori informazioni man readline
e cercare Default key bindings
.
Per prendere l' n
argomento th dal tuo comando precedente, digita Alt+ n
+ Alt_. Ad esempio, dopo:
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
digitando echo
seguito da Alt2Alt_ti darà questo al prossimo prompt:
$ echo 2
Lo "screenshot" dopo aver colpito Alt2è:
(arg: 2) echo
Puoi ripetere Alt_più volte per ottenere in successione l' n
argomento dei comandi precedenti.
Un'altra idea utile è definire l'alias r="fc -s"
. Quindi, è possibile effettuare sostituzioni di comandi:
$ echo 1
1
$ r echo=history
history 1
27755 history 1