[shell] Quelques commandes bash en dehors du .bash_history
Un petit tuyau, probablement déjà très connu mais utile tout de même : si vous souhaitez tapez une commande sans qu’elle apparaisse dans le .bash_history, vous pouvez taper depuis bash (interpréteur de commande par défaut lorsque vous utilisez une console/un terminal sous GNU/Linux) :
`cat `
ou $( cat )
Puis [Ctrl]+[D] une fois que vous êtes prêt à exécuter.
(Attention, ne pas se tromper avec les différents guillemets, faites soit un copier-coller, soit [Alt-Gr] avec le symbole sous la touche “7″ au dessus des lettres pour un clavier azerty.)
Tapez ensuite votre commande !
Qu’est-ce que cela fait exactement ?
Si vous tapez cat tout seul, cat redirige l’entrée standard (le clavier) vers la sortie standard (l’écran). Vous connaissez surement le principe des redirections (avec “<”, “>”, et “>>”) et des “pipes” (avec “|”)? Bien en fait ` COMMANDE ` est similaire : la sortie de COMMANDE est exploitée comme si elle avait été saisie dans la ligne à l’invite de l’interpréteur de commande.
Un exemple :
mkdir temp-` date +%Y%m%d_%H%M%S`
(Pour créer un dossier temporaire “horodaté”, note : vous pouvez utiliser ça dans un script bien entendu…)
Une fois cela compris, vous devriez comprendre la logique derrière ` cat`…
Limitations :
- Une seule commande à la fois, le point-virgule ou le retour à la ligne n’y changeant rien…
- En examinant .bash_history, on sait quelque chose est camouflé (on ne sait juste pas quoi) : on y voit ` cat` sans savoir ce qui a été réellement fait…
- N’utilisez jamais ça pour passer des mots de passe ou données sensibles en ligne de commande : en accédant à la liste des processus (avec ps par exemple) au bon moment, tout est grillé !
- Il est possible de lancer bash (éventuellement depuis bash lui même) en lui indiquant de ne pas sauvegarder d’historique !
- De nombreux programmes en apparence innocents (tel que vim, emacs) permettent d’exécuter des commandes directement, sans les mettre dans le .bash_history , ce qui limite l’intérêt de la méthode décrite…
En bref, vous l’aurez sûrement compris ce post a plus pour but d’attirer votre attention sur la “command substitution” de l’interpréteur bash à l’aide de quelques exemples pratiques…
Vous trouverez bien sûr dans le manuel de référence de bash, bien plus pour satisfaire votre curiosité…
Autres petits trucs sur bash sur ce (we)blog:
- le “reverse i-search” avec [Ctrl]+[R] : je ne peux pas m’en passer !
- créer un répertoire et des (sous-…-) sous répertoires en un seul coup avec mkdir -p
[shell] Quelques commandes bash en dehors du .bash_history
(fr) Commenter cet article - Partager - Lire un autre article (Blog de David Dallet)
(en) Comment this post - Share It - Read another post on David Dallet's Weblog