Shell::Commande history

novembre 10, 2007

 Sous fedora cette commande retient les 1000 dernières lignes d’exécution du shell. Pour changer cette valeur il faut modifier la variable d’environement HISTSIZE dans le fichier /etc/profile :

HISTSIZE=100000

Une autre option très intéressante : $HISTTIMEFORMAT

Retrouvez plus d’info sur cette note : http://blog.uggy.org/post/2006/07/05/98-petits-trucs-pour-configurer-l-historique-du-bash

 Attention, un après usage de ces commandes, j’ai découvert que pour qu’elles soient effectives dans un terminal genre xterm il faut les placer dans le fichier ~/.bashrc, ça peut sembler normal … mais xterm ne récupère pas les infos dans profile. Peux être que ça ne me ferait pas de mal de relire le fonctionnement de tout cela ….

Plus précisément, un générateur de ‘mot’ de n lettres. Je l’ai pondu pour obtenir une liste de mots aléatoires nécessaire à un projet.

Pour fonctionner il utilise principalement:
$RANDOM : renvoi un entier compris entre 0 et 32767
$(( EXPR )) : in interpréteur mathématique intégré au bash
${#VAR}: renvoi le nombre de caractères dans une chaîne bash (le length du bash)
${VAR:P:N} : renvoi une sous chaîne de la chaîne VAR qui commence au P ième caractère et de longueur N (substr du bash).

Il s’agit donc d’un petit concentré des essentiels du bash.

gen_word.sh [le nombre de lettres, 10 par défaut]

#!/bin/bash

N_LETTRES=10

if [ "$1" != "" ]
then
N_LETTRES=$1
fi

ALPHA=’abcdefghijklmnopqrstuvwxyz’;

MOT=”"
for ((i = 0; i < $N_LETTRES; i += 1))
do
CHIFFRE=$(( $RANDOM % ${#ALPHA}));
printf ${ALPHA:$CHIFFRE:1};
done
printf “\n”
exit 0

Mod : la commande exit permet de terminer le processus.

un exit 0 en fin de script c’est un fin de processus correct et des exit 1,2,3 etc… pour stopper le
script avec erreur.

C’est un probleme connu, à moins d’utiliser un certificat, il est difficile de se connecter en ssh sans taper le mot de passe.
Le blog que j’ai cité tout à l’heure a une solution :

expect -c ’spawn ssh addrServeur cat /etc/passwd’ -c ‘expect password:’ -c ’send P4ssw0Rd\n’ -c ‘expect eof’

Source : http://unixjunkie.blogspot.com/2006/01/two-cool-bash-tricks.html

Voici juste un avant gout :

exec 5<> /dev/tcp/www.google.com/80
printf "GET / HTTP/1.0\n\n" >&5
cat <&5
exec 5>&-

et

diff <(find dir1) <(find dir2)

le blog :
http://unixjunkie.blogspot.com/
la page en question :
http://unixjunkie.blogspot.com/2006/01/two-cool-bash-tricks.html
Je conseil surtout la lecture des commentaires !!