J'ai cherché, mais rien trouvé à ce sujet. Je cherche une fonctionnalité en bash, en utilisant un terminal.
Il y a bien longtemps, j'avais un utilisateur sur un système Debian et un ami m'a configuré avec une fonction de recherche historique pratique (je crois avoir utilisé tcsh à l'époque), où je taperais le début d'une commande précédente, en appuyant sur la flèche vers le haut, et il ferait une recherche, basée sur la chaîne partielle.
Par exemple, si mon histoire est:
./script.pl
./script.pl arg1
cat output
cat output | grep yada
Et je tape .
, et appuyez sur flèche vers le haut, il me montrer: ./script.pl arg1
. Appuyez de nouveau dessus et ça se verrait ./script.pl
, etc.
Très bien, il serait effectuer une grep
.bash_history. Y at-il un moyen d'obtenir cette fonctionnalité?
Réponses:
Mettez les lignes suivantes dans votre
~/.inputrc
:Les lignes commençant par
#
sont des commentaires. Je ne me souviens pas de ce qui est en arrière et de ce en avant. Expérimentez avec. Peut-être que vous devez basculer en arrière et en avant.Un peu d'information de base:
Bash utilise readline pour gérer l'invite.
~/.inputrc
est le fichier de configuration pour readline. Notez que cela s'appliquera également à d'autres logiciels utilisant la bibliothèque readline, par exemple IPython .Lisez le manuel de bash pour plus d’informations sur readline. Vous y trouverez également d'autres commandes readline liées à l'historique .
Pour obtenir les codes d'échappement des touches de direction, vous pouvez effectuer les opérations suivantes:
cat
dans un terminal (justecat
, pas d'autres arguments).^[[A
pour la flèche vers le haut et^[[B
pour la flèche vers le bas.^[
par\e
.la source
$include /etc/inputrc
, de préférence sur la première ligne.Créez un fichier nommé setup_readline.sh avec le mode 644 dans /etc/profile.d/ avec le contenu suivant, connectez-vous et vérifiez vos clés préférées:
Je pense que c'est le meilleur moyen de le faire. Principalement si vous utilisez des systèmes de gestion de la configuration tels que chef, marionnette, etc.
Et la configuration du système reste intacte!
la source
screen
. Ce qui est étrange, c’est que d’autres raccourcis .inputrc fonctionnent, mais pas ceux-là. Donc, j'utilise les deux solutions maintenant.Ctrl + R vous donnera ce genre de fonctionnalité. Commencez à taper une commande partielle et elle viendra avec les anciennes avec lesquelles vous pourrez naviguer avec les flèches haut et bas. Plus d'infos: http://www.nuxified.org/blog/ctrl_r_in_the_bash_shell
la source
Ctrl+r
Pour compléter la réponse de lesmana concernant "~ / .inputrc" que je devrais créer sous mon Trusty 14.04, vérifiez / ajoutez "~ / .bashrc" (la première ligne existe déjà dans mon "~ / .bashrc"):
C'est déjà expliqué en français dans https://doc.ubuntu-fr.org/terminal?&#pour_completer_les_commandes_a_partir_de_l_historique .
la source
Vous voudrez peut-être essayer https://github.com/dvorka/hstr qui fournit un filtrage simple et multiligne simple de l’historique Bash basé sur une métrique (quand, combien de temps et la longueur des commandes est important) - vous pouvez utiliser touches fléchées pour naviguer facilement dans l'historique:
Il peut être facilement lié à Ctrl-ret / ouCtrl-s
la source
La solution suivante combine et étend certaines des approches mentionnées ci-dessus: ajoutez les lignes suivantes à votre
~/.bash_aliases
fichier (inutile de le faire~/.inputrc
) pour obtenir le comportement suivant:Reconnectez-vous au shell (ou exécutez-le
source ./bash_aliases
) pour appliquer les modifications.la source