Lors de l'exécution de commandes, vous devez parfois exécuter une commande avec l'argument de la dernière commande. Comment pouvez-vous faire cela?
Bien sûr, sauf l'utilisation des touches fléchées et Del clés: ↑←←←...←→→DelDelDel...Del<new_command>
.
Par exemple, si vous exécutez cette commande:
mkdir long_path_here/new_dir
très probablement, vous voudrez aller dans le répertoire récemment créé. Vous pouvez le faire en utilisant les "raccourcis" suivants:
cd
name__ Esc. - tapez cd
et après avoir appuyé sur Esc suivi par . (pas dans le même temps). Si la commande précédente n'a pas d'argument, vous obtiendrez la commande précédente elle-même.cd !*
- dans ce cas, vous obtiendrez tous les arguments de la commande previuos. Si la commande précédente n'a pas d'argument, vous n'obtiendrez rien.cd
name__ Alt+. - tapez cd
et après avoir appuyé sur Alt et . (dans le même temps). En fait, en utilisant cette façon et en continuant à appuyer sur . (sans libérer Alt), vous obtiendrez le dernier argument pour chaque commande de l'historique. Si une commande n'a pas d'argument, vous obtiendrez la commande elle-même.En général: <command>
Esc. ou <command> !*
ou <command>
Alt+..
Il existe quelques raccourcis si vous voulez tous les arguments de la commande précédente, ou juste le dernier argument.
<command> !*
<command> !$
Exemples:
ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/
ls foo/ bar/
ls !$ # Gives the results of ls bar/
Si vous voulez un seul argument parmi une liste d'arguments de la commande précédente, vous pouvez utiliser <command> !!:<argNumber>
Exemple:
ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/
Mentionné !*
et !$
est une bonne chose, mais lorsque vous devez faire un peu de modification, les raccourcis en lecture-lecture viennent vous aider!
Par exemple, au lieu des innombrables ↑←←←...←→→DelDelDel...Del vous pouvez simplement appuyer sur ↑Ctrl-a(saute au début de la ligne) Alt+d(supprimer jusqu'à la fin du mot)
Pour plus d’informations, man readline
et recherchez Default key bindings
.
Pour prendre l'argument n
th de votre commande précédente, tapez Alt+ n
+Alt_. Par exemple, après:
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
en tapant echo
suivi de Alt2Alt_ vous donnera ceci à la prochaine invite:
$ echo 2
La "capture d'écran" après avoir touché Alt2 est:
(arg: 2) echo
Vous pouvez répéter Alt_ plusieurs fois pour obtenir successivement l'argument n
th des commandes précédentes.
Une autre idée utile consiste à définir l’alias r="fc -s"
. Ensuite, vous pouvez faire des substitutions de commande:
$ echo 1
1
$ r echo=history
history 1
27755 history 1