Venant d'un monde FreeBSD, je souhaite que le terminal Linux se comporte comme FreeBSD, en particulier la version 9.1, essentiellement lorsque vous tapez cd
le terminal et appuyez sur la flèche "vers le haut", vous pouvez parcourir toutes les commandes de l'historique en commençant par cd
ce qui vous fait gagner beaucoup de temps.
Je ne sais pas comment activer cette fonctionnalité dans Linux Debian ou CentOS, ce qui m'oblige à taper le tout, quelqu'un pourrait-il m'aider.
bindkey -k (up|down) history-search-(back|for)ward
mon.tcshrc
comme décrit ici . Cool!Réponses:
Ajoutez ce qui suit à
~/.inputrc
:Explication
~/.inputrc
est le fichier de configuration pour GNU readline . De nombreux shells, y comprisbash
ettcsh
utilisent readline pour l'édition en ligne de commande. Les deux lignes ci-dessus indiqueront à readline d'appeler sa fonctionnalité de recherche d'historique lorsque les séquences d'échappement pour la touche flèche vers le haut (\e[A
) et la touche flèche vers le bas (\e[B
) sont rencontrées.la source
Last word
est souvent un chemin que je veux essayer dans divers clichés obscurs. Et Shift F12 pour me remettre à éditer toute la dernière ligne depuis le début.~/.inputrc
est un outil pratique.Ce qui se passe, c'est que FreeBSD et Linux utilisent des shells différents par défaut. FreeBSD utilise par défaut tcsh , qui avait de meilleures fonctionnalités interactives que bash dans le passé (mais bash a rattrapé) mais des fonctionnalités de script nettement pires .
La façon la plus simple d'obtenir l'environnement auquel vous êtes habitué serait de passer votre shell en tcsh sous Linux. À condition que tcsh soit installé à l'échelle du système (si ce n'est pas le cas, demandez à votre administrateur système de l'installer), exécutez
chsh -s tcsh
pour changer votre shell par défaut.Alternativement, vous pouvez configurer bash pour avoir cette commande à laquelle vous êtes habitué. Par défaut, les flèches Upet Downnaviguent entre toutes les commandes de l'historique, pas seulement celles qui commencent par le préfixe que vous avez tapé. Pour changer cela au comportement auquel vous êtes habitué, placez les lignes suivantes dans le fichier d'initialisation de bash, qui se trouve
.bashrc
dans votre répertoire personnel. Exécutez. ~/.bashrc
ou démarrez un nouveau shell pour relire le fichier d'initialisation.Les séquences d'échappement sont ce que votre terminal envoie au shell lorsque vous appuyez sur une touche fléchée. Uppeut être
\eOA
(évasion,O
,A
) ou en\e[A
fonction de votre terminal, et de même pour Down.Par défaut, bash propose différentes liaisons de touches pour rechercher l'historique des commandes. Vous pouvez appuyer sur Ctrl+ R, puis saisir quelques caractères pour rechercher une commande contenant cette sous-chaîne n'importe où sur la ligne. Appuyez sur Ctrl+ Spour avancer au lieu de reculer. La recherche est incrémentielle (c.-à-d. Que vous tapez); Alt+ Pet Alt+ Nvous donnent une recherche non incrémentielle.
Au lieu de bash et tcsh, vous pouvez passer à zsh, qui a des fonctionnalités intéressantes que l'on ne trouve pas dans d'autres shells . Zsh a Ctrl+ Ret Ctrl+ Spar défaut, tout comme bash. Pour obtenir Upet Downcomme vous l'avez fait dans tcsh, mettez les lignes suivantes
~/.zshrc
:Si vous souhaitez utiliser le même shell partout, vous pouvez également utiliser bash ou zsh sur FreeBSD, à condition que le port soit installé (encore une fois, demandez à votre administrateur système).
la source
tcsh
est disponible pour la plupart des distributions Linux. Essayez d'installer letcsh
package, puis exécutez-lechsh -s /bin/tcsh
pour en faire votre shell par défaut.la source
D'autres réponses s'y attaquent, mais si vous en voulez plus, jetez un œil à https://github.com/zsh-users/zsh-history-substring-search
Prezto ( https://github.com/sorin-ionescu/prezto ) regorge également de goodies zsh.
la source