jeudi 25 juillet 2013

Aide mémoire BASH / lignes de commandes Linux

Il m'arrive d'avoir besoin faire des manipulations en mode console sous mes serveurs Debian.
Il y a les commandes indispensables, tellement courante que l'on ne peut pas les oublier (ls, cd, rm, etc.), et les autres utilisées  une fois par an, ou moins.

Au fur à mesure des années je me suis constitué une liste "aide-mémoire" pour ne pas avoir à les rechercher.

Rechercher des fichiers nommés index.html dans le répertoire courant :
find . -name index.html

Recherche des fichiers contenant de la chaîne XXX dans tous le répertoire YYY, en récursif :
rgrep --color -e XXX  YYY
rgrep --exclude-dir=ZZZ --color -e XXX  YYY : pour exclure le répertoire ZZZ

Recherche dans l'historique des commandes
Ctrl + R
Ctrl + R pour remonter l'historique

Recherche dans l'historique de toutes les commandes lancées qui contiennent le mot "XXX"
history | grep XXX

Recherche dans les logs de toutes les lignes contenant la chaine "XXX"
grep --color -e "XXX" /var/log/monlog.log

Voir les dernières connexions SSH à la console :
last | head

Afficher l'espace disponible sur le disque / les partitions
df -h

Afficher la taille d'un dossier :
du -sh /chemin/repertoire
-s : n'affiche que le total.
-h : de façon lisible pour un humain.

Documentation complète sur la recherche :
http://technique.arscenic.org/commandes-linux-de-base/la-gestion-des-fichiers-et/article/la-recherche-de-fichier-ou-dans


Aide mémoire spécifique à la programmation en script BASH :


Générer une liste d’id unique basée sur le temps:
for i in $(seq 1 100); do sleep 1; date ‘+%s’  ; done
Cette commande est utile dans un programme qui doit enregistrer un id unique par exemple.

# Date et heure du jour
heure=$(date +%d-%m-%Y)
echo $heure

# Boucle FOR
for ((i = 0; i <= 10; i += 1))
do
echo $i
done

# Boucle For dans plusieurs éléments
for a in toto tata
do
echo $a
done

# Boucle WHILE
i=0
while ((i <= 10))
do
echo $i
((i += 1))
done

# IF
if rm $1 2>/dev/null
then echo $1 a ete supprime
else echo $1 n\'a pas ete supprime
fi

if [[ $1 == $a ]]
then echo OUI
else echo >&2 NON
fi

# Envoyer un mail :
# il faut postfix installé et paramétré
echo "Bonjour, ici c'est le corps du mail, bonne réception" | mail -s "Sujet du mail" moi@mondomaine.fr


J'espère qu'elle sera utile à quelqu'un.
Si vous voyez d'autres commandes indispensables, n'hésitez pas à les mettre en commentaire.


Aucun commentaire:

Enregistrer un commentaire