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:
- Ctrl-S : Pause Display
- Ctrl-Q : Restart Display
- Ctrl-C : Cancel Operation
- Ctrl-U : Cancel Line
- Ctrl-D : Signal End of File
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 ?
- Le lancer avec '&' à la fin de la ligne de commande.
- Le lancer avec la commande 'nohup'.
ou les deux ?
# nohup ./script.sh &