Lors de l'exécution de commandes, je souhaite parfois exécuter une commande avec les arguments précédents. Pour ce faire, vous pouvez utiliser ce raccourci:
$ mkdir /tmp/new
$ cd !!:*
Parfois, au lieu d'utiliser find, j'éclate une boucle d'une ligne si j'ai besoin d'exécuter un tas de commandes sur une liste de fichiers.
for file in *.wav; do lame "$file" "$(basename "$file" .wav).mp3" ; done;
La configuration des options d'historique de ligne de commande dans mon .bash_login (ou .bashrc) est vraiment utile. Ce qui suit est un ensemble de paramètres que j'utilise sur mon Macbook Pro.
La configuration de ce qui suit fait que bash efface les commandes en double dans votre historique:
export HISTCONTROL="erasedups:ignoreboth"
J'ai également augmenté la taille de mon histoire assez haut. Pourquoi pas? Cela ne semble rien ralentir sur les microprocesseurs actuels.
export HISTFILESIZE=500000
export HISTSIZE=100000
Une autre chose que je fais est d'ignorer certaines commandes de mon historique. Pas besoin de se souvenir de la commande exit.
export HISTIGNORE="&:[ ]*:exit"
Vous voulez certainement définir histappend. Sinon, bash écrase votre historique lorsque vous quittez.
shopt -s histappend
Une autre option que j'utilise est cmdhist. Cela vous permet d'enregistrer les commandes multilignes dans l'historique en une seule commande.
shopt -s cmdhist
Enfin, sous Mac OS X (si vous n'utilisez pas le mode vi), vous voudrez réinitialiser <CTRL> -S pour ne pas être arrêté de défilement. Cela empêche bash de pouvoir l'interpréter comme une recherche vers l'avant.
stty stop ""