De quelle configuration ai-je besoin pour utiliser la flèche vers le haut pour exécuter la commande précédente? Avec Mac, je peux utiliser la flèche vers le haut pour réexécuter la commande que je viens d’exécuter, mais cela ne semble pas fonctionner avec mon shell bash.
J'utilise 8.04 (je ne peux pas utiliser la dernière distribution à cause de problèmes de version de compilateur).
Je n'ai rien changé puisqu'il s'agit d'une nouvelle installation avec VMWare Fusion sur Mac.
Assurez-vous que votre historique est activé. Vous pouvez vérifier l'état actuel en exécutant:
set -o
La sortie doit contenir (notez la ligne history on
):
histexpand on
history on
ignoreeof off
Si ce n'est pas activé, vous devez exécuter set -o history
. Pour que cette modification soit persistante, vous devez l'ajouter à ~/.bashrc
:
set -o history
Si vous souhaitez exécuter la commande précédente, vous pouvez également exécuter la commande suivante:
!!
Event Designators
An event designator is a reference to a command line entry in the history list.
! Start a history substitution, except when followed by a blank, newline,
carriage return, = or ( (when the extglob Shell option is
enabled using the shopt builtin).
!n Refer to command line n.
!-n Refer to the current command line minus n.
!! Refer to the previous command. This is a synonym for `!-1'.
!string
Refer to the most recent command starting with string.
!?string[?]
Refer to the most recent command containing string. The trailing ?
may be omitted if string is followed immediately by a newline.
^string1^string2^
Quick substitution. Repeat the last command, replacing string1 with
string2. Equivalent to ``!!:s/string1/string2/'' (see Modifiers below).
!# The entire command line typed so far.
Si vous utilisez Bash, vous pouvez également utiliser les raccourcis par défaut pour parcourir l'historique:
Ctrl + N: Commande suivante
Commandes de manipulation de l'historique previous-history (C-p) Extrait la commande précédente de la liste de l'historique, en revenant dans la liste. next-history (C-n) Récupère la commande suivante dans la liste d'historique, puis avance dans la liste.
Assurez-vous que vous utilisez réellement bash. Un casse-tête courant consiste à créer un nouvel utilisateur avec useradd
au lieu de adduser
ou l'application Users and groups (GUI). Dans le premier cas, le jeu de shell par défaut est /bin/sh
. Exécutez chsh
(change shell) pour vous assurer qu'il est défini sur /bin/bash
.
En terminal entrez:
gedit ~/.inputrc
Puis copier coller et sauvegarder:
"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char
À partir de maintenant, dans le terminal, vous pouvez effectuer une recherche incrémentielle. Tout ce que vous avez à faire pour rechercher une commande précédente consiste à entrer les deux ou trois premières lettres et la flèche dirigée vers le haut vous y conduisant rapidement.