web-dev-qa-db-fra.com

Obtenir les commandes précédentes du terminal qui correspondent à la commande actuellement saisie

Dans certains terminaux, vous pouvez faire quelque chose comme ça ...

Tapez une commande

nmap -sn 192.168.1.1/24

Continuez ensuite à faire autre chose dans le terminal pendant un moment. Ensuite, vous pouvez taper

nmap

puis appuyez simplement sur le  key et il indexera toutes les commandes qui ont commencé avec ce que vous avez tapé, dans ce cas, nmappar exemple.

Mon exemple était assez court, mais vous saisissez parfois une très longue commande que vous souhaitez exécuter à nouveau, et je sais que vous pouvez appuyer sur  jusqu'à ce que vous le retrouviez, mais cela passe par la commande chaque et peut prendre un certain temps si vous l'avez tapé il y a longtemps.

Y a-t-il un moyen de faire en sorte que cela fonctionne dans le terminal d'Ubuntu?

7
Ryan Stull

Oui, il existe un moyen très simple de rechercher dans l'historique de vos commandes. Au terminal, appuyez sur Ctrl-R pour commencer une recherche, vous pouvez taper nmapet la recherche s’effectuera dans la dernière commande à l’aide de nmap.

Si vous ne voulez pas que la dernière commande contenant le mot 'nmap' mais une autre plus loin dans le passé, vous pouvez appuyer sur Ctrl-R encore autant de fois que vous le souhaitez.

19
Robobenklein

Pour y parvenir, je préfère utiliser une nouvelle cartographie du Up et Down les clés de la recherche dans l'historique de Bash. Pour ce faire, ajoutez les éléments suivants à .inputrc:

"\e[A": history-search-backward
"\e[B": history-search-forward

Après avoir rechargé votre Shell, appuyez sur Up ou Down sur une invite vide parcourra toutes les commandes et en appuyant sur Up ou Down après avoir tapé, par exemple, nmap naviguera à travers toutes les commandes qui ont commencé avec ce que vous avez tapé.

5
José Luis

J'utilise toujours history c'est plus pratique pour moi de voir toutes les commandes que je tape, par exemple:

history

vous liste toutes les commandes que vous avez tapées pendant un moment

history | grep nmap

liste uniquement les commandes avec nmap

history | grep nmap | tail -10

history | grep nmap | head -10

liste les dernières et 10 premières commandes avec nmap

puis copiez et collez-le à nouveau.

4
JoKeR

Si vous êtes en mode vi sous bash (set -o vi), vous pouvez passer en mode commande (appuyez sur Esc), puis tapez /whatever_you_want, suivi de Enter.

It will search whatever you want, and you can scroll with j and k keys. Hit enter when you found the right command.

To be able to type commands when you have hitted Esc, vous devez cliquer sur i (vi).

Le retour au mode shell "normal" s'effectue via set -o emacs.

2
Michael Hooreman