Affichage des articles dont le libellé est script bash. Afficher tous les articles
Affichage des articles dont le libellé est script bash. Afficher tous les articles

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.