samedi 29 avril 2006
Astuces bash et autres en vrac
Par Christophe, samedi 29 avril 2006 à 05:48 :: Informatique
Le man étant "un peu" long (man bash | wc -l => 4917), il n'est pas facile de trouver des astuces permettant d'utiliser son shell plus vite.
Personnellement, j'utilise celles qui suivent tout le temps, et je ne sais pas trop comment je ferais sans :
Ne pas avoir à retaper les parties de comandes
- La plus simpe et la plus utile :
!^corresponds au premier argument de la commande précédente,!$correponds ainsi au dernier arguement
Exemple, pour lister les éléments d'une volume venant d'être monté, quel que soit son pwd :
# mount -t vfat /dev/sda1 /media/cleusb # cd !$ && ls
Ce n'est ici qu'un exemple parmi d'autres, mais je peux vous jurer qu'une fois utilisé, il est impossible de s'en passer. Notez que la c'est la ligne "cd /media/cleusb && ls" qui est notée dans l'historique.
- Les deux autres plus simples,
!!et!*qui remplacent respectivement la dernière commande (avec tous ses arguments) et tous les arguments de la dernière commande - Pour accéder aux élements de la dernière commande particulièrement, il faut utiliser
!:x, x remplacant le numéro d'une partie, avec!:0pour le nom de la commande. Exemple :
# ls -l truc1.x truc2.y # ... // résultat de la commande # rm !:2
... ce qui supprimera truc1.x .
Alias et autre trucs utiles dans .bashrc
Alias
Il y a beaucoup de chance qu'il y aie déjà des choses comme " alias ls='ls --color=auto' " dans votre ~/.bashrc, on peut en ajouter beaucoup d'autres, le premier sera :
alias more='less'
... pour ceux (moi) qui ont l'habitude de taper "more" pour regarder ce qu'il y a dans un fichier texte, parce que more, ça suxe vraiment (impossible de remonter dans la lecture du fichier).
Variables
zik=/home/user/docs/zik
... permet de faire des trucs genre
$ mv album_fraichement_dled $zik
Notez que cd $zik/artist marchera (avec un dossier 'artist' dans '/home/user/docs/zik' bien entendu), et que la complétion y est vaguement utilisable, en entourant le nom de variable avec des guillemets.
Autre
Rajoutez-y :
export HISTCONTROL=ignoredups
pour ne pas doubler les lignes dans l'historique (.bash_history je rappelle), ce qui permet d'économiser de la place, et de faire rentrer plus de commandes (différentes).
Notez que je n'ai pas mentionné la complétion insensible à la casse et les CDPATH car ils peuvent mener à faire des erreurs, et sont à manier avec précaution... c'est à dire réveillé, cafféiné pour les cafféineux, désalcoolisé pour les bièreux.
Ceux qui veulent aller (vraiment) plus loin avec les shells, devraient essayer zsh (qui supporte l'utf-8, sissi), c'est bluffant.
:: aucun commentaire ::

