Table des matières

Shell

Guide Bash du débutant, version française du livre Bash Guide for Beginners par Machtelt Garrels.

Guide d'utilisation du Shell pour débutant sur commentcamarche.net.

Control Keys:

Commandes

sed

How to match a single quote in sed if the expression is enclosed in single quotes ?
solution n°1 (encosing with double quote):
sed "/L'été/.../"


solution n°2 (shell escaping…) :

sed '/L\'été/.../'

Tips

Redirection flux standard

tag: stderr, redirect

Avec linux et windows, pour rediriger la sortie d'erreur standard (stderr = 2) vers la sortie standard (stdout = 1) il faut faire :

 cat toto.txt 2<&1

Et pour rediriger tout ça dans un fichier :

 cat toto.txt >output.log 2<&1

Ou en utilisant la commande tee, qui fait un “T” vers le fichier et stdout:

 cat toto.txt | tee output.log

Un “raccourci” avec Bash pour rediriger stderr sur stdout, équivalent de 2>&1 :

command &> file

Remplacer dans un fichier

pour remplacer PASSWORD('horde') du fichier fichier_entree par PASSWORD('newpass') dans fichier_sortie (pas sûr que ce soit ce que tu veux faire), tu dois mettre dans ton script shell

np='newpass'
sed -e "s/PASSWORD('horde')/PASSWORD('$np')/g" < fichier_entree > fichier_sortie

Effacer des fichiers selon leur âge

find  /tmp/ -amin +120 -type f  -delete 
find . -daystart -ctime -8 | xargs ls
# puis
find . -daystart -ctime -8 | xargs rm -fr
find -ctime 9 -exec rm -f  {} \; 

Extraire des champs

Je voudrais extraire le password de /etc/shadow

On peut faire en 1 seule commande awk

awk -F: '/^user/ {print $2}' /etc/shadow

ou sed, mais c'est pas forcément plus léger (ni plus lisible) que ta solution

sed -ne '/^user/ s/[^:]*:\([^:]*\).*/\1/p' /etc/shadow

ou

cat /etc/shadow | awk -F":" '{print $2}'

Session/Script déconnectée

Comment lancer un script et se déconnecter avant la fin de son exécution ?

ou les deux ?

# nohup ./script.sh &