Pour certains projets, je tape souvent quelques commandes, comme par exemple:
cd an/extremely/long/path/in/which/I/have/some/kinda/project
et
./runmyproject --with some --command line --options set
Voyant que je suis assez paresseux, j'essaie d'éviter de taper ces commandes en entier encore et encore. Je peux donc bien sûr beaucoup utiliser la touche Haut pour retrouver ces commandes, mais souvent, j'ai aussi tellement de commandes entre les deux, que la recherche prend encore plus de temps que la simple saisie.
Je me demande maintenant s'il existe une sorte d'utilitaire qui peut suggérer une commande complète que j'utilise beaucoup, alors que je ne l'ai pas encore entièrement tapée. Pour que je puisse par exemple taper 'cd an /' et qu'il suggère déjà le reste du chemin car je l'ai tellement utilisé le mois dernier.
J'ai trouvé quelque chose appelé Bash Smart Complete. Mais c'est un peu "stupide" en ce qu'il ne regarde pas les commandes que j'ai utilisées auparavant. Je viens également de trouver cette réponse SO , qui suggère de mettre les commandes que j'utilise beaucoup dans un fichier. Cependant, cela ne répond pas suffisamment en ce que je devrais créer un nouveau fichier pour chaque fois que je démarre de nouveaux projets ou que je change de dossier ou d'argument de programme.
Quelqu'un connaît-il un autre utilitaire ou un autre moyen d'y parvenir? Ou, quelqu'un pourrait-il savoir comment je pourrais modifier le Bash Smart Complete afin qu'il puisse regarder les commandes que j'ai utilisées au cours du dernier mois et terminer la commande qui correspond et qui a été le plus utilisée au cours du mois dernier?
[MODIFIER] Voici quelques réponses vraiment intéressantes. Je n'ai encore marqué aucune réponse définitive. Non pas parce que je n'aime pas les réponses, j'aime bien, mais parce qu'aucun d'eux n'est un gagnant absolu. Je pense que le Finalterm est un excellent projet. Malheureusement, il est encore assez rugueux sur les bords. Par exemple; il ne prend pas encore en charge le copier-coller. Cependant, je garderais un œil sur ce projet, car quand il arrivera à maturité, je pense que ce sera une excellente application de terminal. Quant aux autres réponses; soit ils ont suggéré de créer un alias, ce qui n'est pas ce que je veux faire car cela crée du travail supplémentaire au lieu de le supprimer, ou d'utiliser Ctrl + R, ce qui est génial (je ne le savais pas!). Quelques personnes ont suggéré d'utiliser Ctrl + R, donc je ne peux pas vraiment mettre une réponse en surbrillance.
Donc, pour l'instant, j'utilise définitivement Ctrl + R, et à l'avenir, je pourrais utiliser Finalterm.
Merci pour toutes les bonnes réponses les gars!
la source
zsh
. Il offre tout ce que vous demandez et bien plus encore. Passer de bash à zshRéponses:
Si les commandes sont souvent utilisées, elles sont enregistrées dans les pistes bash de l'historique des commandes dans
.bash_history
.Maintenant, l'astuce: vous pouvez inverser la recherche dans cet historique pour réexécuter les commandes en appuyant sur CTRL-r .
En mode de recherche d'historique inverse, bash affiche en direct, au fur et à mesure de la frappe , la commande la plus récente de l'historique qui commence par votre entrée donnée. Appuyez ensuite sur Entrée pour accepter et exécuter la commande proposée. Continuez à appuyer sur CTRL-R pour passer aux anciennes commandes avec le même préfixe.
C'est intégré dans bash, pas besoin de personnaliser les scripts ou d'installer le logiciel :) C'est l'une des fonctionnalités les plus utiles de bash, à mon humble avis.
la source
Collez (Ctrl-Maj-V) ce qui suit dans un écran de terminal:
Quittez (Ctrl-D) l'écran du terminal, puis ouvrez à nouveau le terminal.
Maintenant, vous pouvez simplement taper les deux premiers caractères, puis appuyez sur Haut ou Bas pour faire défiler la liste filtrée
la source
Durée finale
Il y a cette très prometteuse App terminal appelé terme final . Parmi ses nombreuses fonctionnalités, il a également un historique de commandes de remémoration, afin que vous puissiez ensuite le sélectionner. Voici quelques fonctionnalités supplémentaires:
Vous pouvez en savoir plus à ce sujet dans cet article .
Voici le site des créateurs. http://finalterm.org/
Pour l'installer
avertissement
J'ai dit que c'était prometteur. Le seul problème est qu'il s'agit de la version 0.1. Donc, certaines choses aiment
vim
etnano
ne fonctionnent pas encore bien. J'ai également remarqué qu'il ne prend pas encore en charge le glisser-déposer et le copier-coller. Mais il a la fonctionnalité que vous demandez. À mesure que le logiciel évolue, il deviendra l'un des meilleurs terminaux pour le bureau.Capture d'écran
Voici la fonction en action:
J'espère que cela t'aides.
* Je suis sur Saucy, c'est pourquoi j'ai une formation en salamandre :)
la source
Utilisez un
alias
pour l'ensemble de votre commande ou ajoutez le répertoire dans votre$PATH
. De plus, vous n'avez pas besoin de changer les répertoires à l'endroit où votre exécutable (ou script, ou autre) doit être exécuté, c'est donc assez simple. Les deux méthodes nécessitent que vous redémarriez le terminal que vous utilisez avant que les modifications prennent effet.Voici comment créer un
bash
alias
pour votre exemple (ajoutez la ligne suivante à votre~/.bashrc
fichier):De cette façon, tout ce que vous devez faire est d'entrer
runmyproject
dans le terminal où que vous soyez, sans avoir à spécifier d'options / arguments.Vous pouvez également ajouter votre chemin de projet dans votre
$PATH
variable d'environnement. Pour ce faire, ajoutez les lignes suivantes dans votre~/.bashrc
fichier:Dans ce cas, vous devrez toujours spécifier vos options / arguments pour votre exécutable lors de son exécution.
la source
Lorsque je me retrouve fréquemment à devoir passer à un répertoire comme celui-ci:
Je ferais juste ça une fois:
Et à partir de là, utilisez:
Quand cela vient à:
J'utiliserais la recherche d'historique bash. À l'invite de commande, appuyez simplement sur Ctrl-R et tapez «runmy». Voila, toute la commande avec toutes les options telles qu'elle a été entrée pour la dernière fois est là pour être rentrée. Si je n'aimais pas les options que j'ai utilisées la dernière fois et que je voulais regarder les commandes précédentes, je continuerais d'appuyer sur Ctrl-R pour parcourir toutes les commandes précédentes qui contenaient "runmy".
La recherche d'historique Ctrl-R pourrait également aider avec la commande 'cd', si vous n'aimez pas l'idée du lien symbolique. [Ctrl-R] / proj est très susceptible de ramener la dernière commande que vous avez utilisée pour cd dans ce répertoire.
Plutôt que d'ajouter un alias ou de passer à un shell spécial, je préfère toujours apprendre à utiliser les fonctionnalités bash conçues pour aider avec ce genre de choses. De cette façon, je peux utiliser les mêmes fonctionnalités sur des machines distantes ou si je dois m'asseoir sur le terminal d'un collègue.
la source
appuyez sur control + r sur votre clavier - cela vous mettra en mode d'historique inversé et vous pouvez taper la partie que vous connaissez et la commande entière affichera
Il existe d'autres moyens répertoriés ici
http://www.talug.org/events/20030709/cmdline_history.html
J'ai plutôt tendance à utiliser le contrôle R
la source
Essayez ceci ... Cela fonctionne pour toutes les commandes de votre fichier historique ... c'est la même chose que Ctrl+ R, mais je pense que c'est plus intuitif :)
Éditer
/etc/inputrc
décommenter ou ajouter ces deux lignes
déconnexion / connexion
puis essayez d'écrire une commande répertoriée dans l'historique ...
comme...
écrire
et appuyez sur
Page Upou Page Dnpour naviguer dans votre fichier d'historique à la recherche de commandes commençant par "ls"
Si vous avez tout fait correctement, il devrait compléter automatiquement votre commande ...
la source